--- /dev/null
+/** @file\r
+ EDKII extented HII IFR guid opcodes.\r
+\r
+Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __MDEMODULE_HII_H__\r
+#define __MDEMODULE_HII_H__\r
+\r
+#define NARROW_CHAR 0xFFF0\r
+#define WIDE_CHAR 0xFFF1\r
+#define NON_BREAKING_CHAR 0xFFF2\r
+\r
+///\r
+/// State defined for password statemachine \r
+///\r
+#define BROWSER_STATE_VALIDATE_PASSWORD 0\r
+#define BROWSER_STATE_SET_PASSWORD 1\r
+\r
+\r
+///\r
+/// HII specific Vendor Device Path Node definition.\r
+///\r
+#pragma pack(1)\r
+typedef struct {\r
+ VENDOR_DEVICE_PATH VendorDevicePath;\r
+ UINT32 Reserved;\r
+ UINT64 UniqueId;\r
+} HII_VENDOR_DEVICE_PATH_NODE;\r
+#pragma pack()\r
+\r
+///\r
+/// HII specific Vendor Device Path definition.\r
+///\r
+typedef struct {\r
+ HII_VENDOR_DEVICE_PATH_NODE Node;\r
+ EFI_DEVICE_PATH_PROTOCOL End;\r
+} HII_VENDOR_DEVICE_PATH;\r
+\r
+///\r
+/// GUIDed opcodes defined for EDKII implementation\r
+///\r
+#define EFI_IFR_TIANO_GUID \\r
+ { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }\r
+\r
+#pragma pack(1)\r
+\r
+///\r
+/// EDKII implementation extension opcodes, new extension can be added here later.\r
+///\r
+#define EFI_IFR_EXTEND_OP_LABEL 0x0\r
+#define EFI_IFR_EXTEND_OP_BANNER 0x1\r
+#define EFI_IFR_EXTEND_OP_TIMEOUT 0x2\r
+#define EFI_IFR_EXTEND_OP_CLASS 0x3\r
+#define EFI_IFR_EXTEND_OP_SUBCLASS 0x4\r
+\r
+///\r
+/// Label opcode\r
+///\r
+typedef struct _EFI_IFR_GUID_LABEL {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_LABEL\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ ///\r
+ /// Label Number\r
+ ///\r
+ UINT16 Number;\r
+} EFI_IFR_GUID_LABEL;\r
+\r
+#define EFI_IFR_BANNER_ALIGN_LEFT 0\r
+#define EFI_IFR_BANNER_ALIGN_CENTER 1\r
+#define EFI_IFR_BANNER_ALIGN_RIGHT 2\r
+\r
+///\r
+/// Banner opcode\r
+///\r
+typedef struct _EFI_IFR_GUID_BANNER {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_BANNER\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ EFI_STRING_ID Title; ///< The string token for the banner title\r
+ UINT16 LineNumber; ///< 1-based line number\r
+ UINT8 Alignment; ///< left, center, or right-aligned\r
+} EFI_IFR_GUID_BANNER;\r
+\r
+///\r
+/// Timeout opcode\r
+///\r
+typedef struct _EFI_IFR_GUID_TIMEOUT {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_TIMEOUT\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ UINT16 TimeOut; ///< TimeOut Value\r
+} EFI_IFR_GUID_TIMEOUT;\r
+\r
+#define EFI_NON_DEVICE_CLASS 0x00\r
+#define EFI_DISK_DEVICE_CLASS 0x01\r
+#define EFI_VIDEO_DEVICE_CLASS 0x02\r
+#define EFI_NETWORK_DEVICE_CLASS 0x04\r
+#define EFI_INPUT_DEVICE_CLASS 0x08\r
+#define EFI_ON_BOARD_DEVICE_CLASS 0x10\r
+#define EFI_OTHER_DEVICE_CLASS 0x20\r
+\r
+///\r
+/// Device Class opcode\r
+///\r
+typedef struct _EFI_IFR_GUID_CLASS {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_CLASS\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ UINT16 Class; ///< Device Class from the above\r
+} EFI_IFR_GUID_CLASS;\r
+\r
+#define EFI_SETUP_APPLICATION_SUBCLASS 0x00\r
+#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01\r
+#define EFI_FRONT_PAGE_SUBCLASS 0x02\r
+#define EFI_SINGLE_USE_SUBCLASS 0x03\r
+\r
+///\r
+/// SubClass opcode\r
+///\r
+typedef struct _EFI_IFR_GUID_SUBCLASS {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_SUBCLASS\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ UINT16 SubClass; ///< Sub Class type from the above\r
+} EFI_IFR_GUID_SUBCLASS;\r
+\r
+///\r
+/// GUIDed opcodes support for framework vfr.\r
+///\r
+#define EFI_IFR_FRAMEWORK_GUID \\r
+ { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 } }\r
+\r
+///\r
+/// Two extended opcode are added, new extension can be added here later.\r
+/// One is for framework OneOf question Option Key value,\r
+/// Another is for framework vareqval.\r
+///\r
+#define EFI_IFR_EXTEND_OP_OPTIONKEY 0x0\r
+#define EFI_IFR_EXTEND_OP_VAREQNAME 0x1\r
+\r
+///\r
+/// Store the framework vfr option key value\r
+///\r
+typedef struct _EFI_IFR_GUID_OPTIONKEY {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_FRAMEWORK_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_OPTIONKEY\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ ///\r
+ /// OneOf Questiond ID binded by OneOf Option\r
+ ///\r
+ EFI_QUESTION_ID QuestionId;\r
+ ///\r
+ /// The OneOf Option Value.\r
+ ///\r
+ EFI_IFR_TYPE_VALUE OptionValue;\r
+ ///\r
+ /// The Framework OneOf Option Key Value.\r
+ ///\r
+ UINT16 KeyValue;\r
+} EFI_IFR_GUID_OPTIONKEY;\r
+\r
+///\r
+/// Store the framework vfr vareqval name number\r
+///\r
+typedef struct _EFI_IFR_GUID_VAREQNAME {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_FRAMEWORK_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_VAREQNAME\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ ///\r
+ /// Question ID of the Numeric Opcode created.\r
+ ///\r
+ EFI_QUESTION_ID QuestionId;\r
+ ///\r
+ /// For vareqval (0x100), NameId is 0x100.\r
+ /// This value will converte to a Unicode String following this rule.\r
+ /// sprintf(StringBuffer, "%d", NameId)\r
+ /// The the Unicode String will be used as a EFI Variable Name.\r
+ ///\r
+ UINT16 NameId;\r
+} EFI_IFR_GUID_VAREQNAME;\r
+\r
+#pragma pack()\r
+\r
+extern EFI_GUID gEfiIfrTianoGuid;\r
+extern EFI_GUID gEfiIfrFrameworkGuid;\r
+\r
+#endif\r
+\r
-/** @file\r
- This file defines NvData Hob GUIDs for System Non Volatile HOB entries \r
- and the corresponding hob data structure. NvData Hob can be used to report \r
- the region of the system non volatile data for the specific purpose, \r
- such as FTW region, Error log region.\r
- \r
- It also defines NvDataFv GUID. \r
+/** @file \r
+ This file defines NvDataFv GUID and FTW working block structure header.\r
This guid can be used as FileSystemGuid in EFI_FIRMWARE_VOLUME_HEADER if \r
this FV image contains NV data, such as NV variable data.\r
This guid can also be used as the signature of FTW working block header.\r
#define EFI_SYSTEM_NV_DATA_FV_GUID \\r
{0xfff12b8d, 0x7696, 0x4c8b, {0xa9, 0x85, 0x27, 0x47, 0x7, 0x5b, 0x4f, 0x50} }\r
\r
-#define EFI_SYSTEM_NV_DATA_HOB_GUID \\r
- {0xd6e5092d, 0xc7b2, 0x4872, {0xaf, 0x66, 0xfd, 0xc0, 0xe6, 0xf9, 0x5e, 0x78} }\r
-\r
///\r
-/// Hob entry for NV data region\r
+/// NvDataFv GUID used as the signature of FTW working block header.\r
///\r
-typedef struct {\r
- EFI_GUID SystemNvDataHobGuid; ///> EFI_SYSTEM_NV_DATA_HOB_GUID\r
- EFI_GUID SystemNvDataFvGuid; ///> Guid specifies the NvData Fv for the specific purpose, such as FTW, Error Log.\r
- EFI_LBA StartLba; ///> The starting logical block index.\r
- UINTN StartLbaOffset; ///> Offset into the starting block at which to the start of NvData region.\r
- EFI_LBA EndLba; ///> The last logical block index.\r
- UINTN EndLbaOffset; ///> Offset into the last block at which to the end of Nvdata region.\r
- UINT32 DataTypeSignature; ///> NvData type in the specified NV range.\r
-} NV_SYSTEM_DATA_GUID_TYPE;\r
+extern EFI_GUID gEfiSystemNvDataFvGuid;\r
\r
-extern EFI_GUID gEfiSystemNvDataHobGuid;\r
+#define WORKING_BLOCK_VALID 0x1\r
+#define WORKING_BLOCK_INVALID 0x2\r
\r
///\r
-/// NvDataFv GUID used as the signature of FTW working block header.\r
+/// EDKII Fault tolerant working block header\r
+/// The header is immediately followed by the write queue data.\r
///\r
-extern EFI_GUID gEfiSystemNvDataFvGuid;\r
+typedef struct {\r
+ ///\r
+ /// System Non Volatile FV Guid\r
+ ///\r
+ EFI_GUID Signature;\r
+ ///\r
+ /// 32bit CRC caculated for this header\r
+ ///\r
+ UINT32 Crc;\r
+ ///\r
+ /// Working block valid bit\r
+ ///\r
+ UINT8 WorkingBlockValid : 1;\r
+ UINT8 WorkingBlockInvalid : 1;\r
+ UINT8 Reserved : 6;\r
+ UINT8 Reserved3[3];\r
+ ///\r
+ /// Total size of the following write queue range.\r
+ ///\r
+ UINT64 WriteQueueSize;\r
+ ///\r
+ /// Write Queue data\r
+ /// UINT8 WriteQueue[WriteQueueSize];\r
+ ///\r
+} EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER;\r
\r
#endif\r
+++ /dev/null
-/** @file\r
- EDKII extented HII IFR guid opcodes.\r
-\r
-Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef __MDEMODULE_HII_H__\r
-#define __MDEMODULE_HII_H__\r
-\r
-#define NARROW_CHAR 0xFFF0\r
-#define WIDE_CHAR 0xFFF1\r
-#define NON_BREAKING_CHAR 0xFFF2\r
-\r
-///\r
-/// State defined for password statemachine \r
-///\r
-#define BROWSER_STATE_VALIDATE_PASSWORD 0\r
-#define BROWSER_STATE_SET_PASSWORD 1\r
-\r
-\r
-///\r
-/// HII specific Vendor Device Path Node definition.\r
-///\r
-#pragma pack(1)\r
-typedef struct {\r
- VENDOR_DEVICE_PATH VendorDevicePath;\r
- UINT32 Reserved;\r
- UINT64 UniqueId;\r
-} HII_VENDOR_DEVICE_PATH_NODE;\r
-#pragma pack()\r
-\r
-///\r
-/// HII specific Vendor Device Path definition.\r
-///\r
-typedef struct {\r
- HII_VENDOR_DEVICE_PATH_NODE Node;\r
- EFI_DEVICE_PATH_PROTOCOL End;\r
-} HII_VENDOR_DEVICE_PATH;\r
-\r
-///\r
-/// GUIDed opcodes defined for EDKII implementation\r
-///\r
-#define EFI_IFR_TIANO_GUID \\r
- { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }\r
-\r
-#pragma pack(1)\r
-\r
-///\r
-/// EDKII implementation extension opcodes, new extension can be added here later.\r
-///\r
-#define EFI_IFR_EXTEND_OP_LABEL 0x0\r
-#define EFI_IFR_EXTEND_OP_BANNER 0x1\r
-#define EFI_IFR_EXTEND_OP_TIMEOUT 0x2\r
-#define EFI_IFR_EXTEND_OP_CLASS 0x3\r
-#define EFI_IFR_EXTEND_OP_SUBCLASS 0x4\r
-\r
-///\r
-/// Label opcode\r
-///\r
-typedef struct _EFI_IFR_GUID_LABEL {\r
- EFI_IFR_OP_HEADER Header;\r
- ///\r
- /// EFI_IFR_TIANO_GUID\r
- ///\r
- EFI_GUID Guid;\r
- ///\r
- /// EFI_IFR_EXTEND_OP_LABEL\r
- ///\r
- UINT8 ExtendOpCode;\r
- ///\r
- /// Label Number\r
- ///\r
- UINT16 Number;\r
-} EFI_IFR_GUID_LABEL;\r
-\r
-#define EFI_IFR_BANNER_ALIGN_LEFT 0\r
-#define EFI_IFR_BANNER_ALIGN_CENTER 1\r
-#define EFI_IFR_BANNER_ALIGN_RIGHT 2\r
-\r
-///\r
-/// Banner opcode\r
-///\r
-typedef struct _EFI_IFR_GUID_BANNER {\r
- EFI_IFR_OP_HEADER Header;\r
- ///\r
- /// EFI_IFR_TIANO_GUID\r
- ///\r
- EFI_GUID Guid;\r
- ///\r
- /// EFI_IFR_EXTEND_OP_BANNER\r
- ///\r
- UINT8 ExtendOpCode;\r
- EFI_STRING_ID Title; ///< The string token for the banner title\r
- UINT16 LineNumber; ///< 1-based line number\r
- UINT8 Alignment; ///< left, center, or right-aligned\r
-} EFI_IFR_GUID_BANNER;\r
-\r
-///\r
-/// Timeout opcode\r
-///\r
-typedef struct _EFI_IFR_GUID_TIMEOUT {\r
- EFI_IFR_OP_HEADER Header;\r
- ///\r
- /// EFI_IFR_TIANO_GUID\r
- ///\r
- EFI_GUID Guid;\r
- ///\r
- /// EFI_IFR_EXTEND_OP_TIMEOUT\r
- ///\r
- UINT8 ExtendOpCode;\r
- UINT16 TimeOut; ///< TimeOut Value\r
-} EFI_IFR_GUID_TIMEOUT;\r
-\r
-#define EFI_NON_DEVICE_CLASS 0x00\r
-#define EFI_DISK_DEVICE_CLASS 0x01\r
-#define EFI_VIDEO_DEVICE_CLASS 0x02\r
-#define EFI_NETWORK_DEVICE_CLASS 0x04\r
-#define EFI_INPUT_DEVICE_CLASS 0x08\r
-#define EFI_ON_BOARD_DEVICE_CLASS 0x10\r
-#define EFI_OTHER_DEVICE_CLASS 0x20\r
-\r
-///\r
-/// Device Class opcode\r
-///\r
-typedef struct _EFI_IFR_GUID_CLASS {\r
- EFI_IFR_OP_HEADER Header;\r
- ///\r
- /// EFI_IFR_TIANO_GUID\r
- ///\r
- EFI_GUID Guid;\r
- ///\r
- /// EFI_IFR_EXTEND_OP_CLASS\r
- ///\r
- UINT8 ExtendOpCode;\r
- UINT16 Class; ///< Device Class from the above\r
-} EFI_IFR_GUID_CLASS;\r
-\r
-#define EFI_SETUP_APPLICATION_SUBCLASS 0x00\r
-#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01\r
-#define EFI_FRONT_PAGE_SUBCLASS 0x02\r
-#define EFI_SINGLE_USE_SUBCLASS 0x03\r
-\r
-///\r
-/// SubClass opcode\r
-///\r
-typedef struct _EFI_IFR_GUID_SUBCLASS {\r
- EFI_IFR_OP_HEADER Header;\r
- ///\r
- /// EFI_IFR_TIANO_GUID\r
- ///\r
- EFI_GUID Guid;\r
- ///\r
- /// EFI_IFR_EXTEND_OP_SUBCLASS\r
- ///\r
- UINT8 ExtendOpCode;\r
- UINT16 SubClass; ///< Sub Class type from the above\r
-} EFI_IFR_GUID_SUBCLASS;\r
-\r
-///\r
-/// GUIDed opcodes support for framework vfr.\r
-///\r
-#define EFI_IFR_FRAMEWORK_GUID \\r
- { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 } }\r
-\r
-///\r
-/// Two extended opcode are added, new extension can be added here later.\r
-/// One is for framework OneOf question Option Key value,\r
-/// Another is for framework vareqval.\r
-///\r
-#define EFI_IFR_EXTEND_OP_OPTIONKEY 0x0\r
-#define EFI_IFR_EXTEND_OP_VAREQNAME 0x1\r
-\r
-///\r
-/// Store the framework vfr option key value\r
-///\r
-typedef struct _EFI_IFR_GUID_OPTIONKEY {\r
- EFI_IFR_OP_HEADER Header;\r
- ///\r
- /// EFI_IFR_FRAMEWORK_GUID\r
- ///\r
- EFI_GUID Guid;\r
- ///\r
- /// EFI_IFR_EXTEND_OP_OPTIONKEY\r
- ///\r
- UINT8 ExtendOpCode;\r
- ///\r
- /// OneOf Questiond ID binded by OneOf Option\r
- ///\r
- EFI_QUESTION_ID QuestionId;\r
- ///\r
- /// The OneOf Option Value.\r
- ///\r
- EFI_IFR_TYPE_VALUE OptionValue;\r
- ///\r
- /// The Framework OneOf Option Key Value.\r
- ///\r
- UINT16 KeyValue;\r
-} EFI_IFR_GUID_OPTIONKEY;\r
-\r
-///\r
-/// Store the framework vfr vareqval name number\r
-///\r
-typedef struct _EFI_IFR_GUID_VAREQNAME {\r
- EFI_IFR_OP_HEADER Header;\r
- ///\r
- /// EFI_IFR_FRAMEWORK_GUID\r
- ///\r
- EFI_GUID Guid;\r
- ///\r
- /// EFI_IFR_EXTEND_OP_VAREQNAME\r
- ///\r
- UINT8 ExtendOpCode;\r
- ///\r
- /// Question ID of the Numeric Opcode created.\r
- ///\r
- EFI_QUESTION_ID QuestionId;\r
- ///\r
- /// For vareqval (0x100), NameId is 0x100.\r
- /// This value will converte to a Unicode String following this rule.\r
- /// sprintf(StringBuffer, "%d", NameId)\r
- /// The the Unicode String will be used as a EFI Variable Name.\r
- ///\r
- UINT16 NameId;\r
-} EFI_IFR_GUID_VAREQNAME;\r
-\r
-#pragma pack()\r
-\r
-#endif\r
-\r
+++ /dev/null
-/** @file\r
-\r
- Capsule Architectural Protocol is responsible to tag UEFI2.0 capsule runtime services\r
- are ready in EFI_RUNTIME_SERVICES table.\r
-\r
-Copyright (c) 2006 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef __ARCH_PROTOCOL_CAPSULE_ARCH_H__\r
-#define __ARCH_PROTOCOL_CAPSULE_ARCH_H__\r
-\r
-//\r
-// Global ID for the Capsule Architectural Protocol\r
-//\r
-#define EFI_CAPSULE_ARCH_PROTOCOL_GUID \\r
- { 0x5053697e, 0x2cbc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54 }}\r
-\r
-extern EFI_GUID gEfiCapsuleArchProtocolGuid;\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
-\r
- The header structure of FTW working block region.\r
-\r
-Copyright (c) 2006 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef __EFI_WORKING_BLOCK_HEADER_H__\r
-#define __EFI_WORKING_BLOCK_HEADER_H__\r
-\r
-#define WORKING_BLOCK_VALID 0x1\r
-#define WORKING_BLOCK_INVALID 0x2\r
-\r
-///\r
-/// EDKII Fault tolerant working block header\r
-/// The header is immediately followed by the write queue data.\r
-///\r
-typedef struct {\r
- ///\r
- /// System Non Volatile FV Guid\r
- ///\r
- EFI_GUID Signature;\r
- ///\r
- /// 32bit CRC caculated for this header\r
- ///\r
- UINT32 Crc;\r
- ///\r
- /// Working block valid bit\r
- ///\r
- UINT8 WorkingBlockValid : 1;\r
- UINT8 WorkingBlockInvalid : 1;\r
- UINT8 Reserved : 6;\r
- UINT8 Reserved3[3];\r
- ///\r
- /// Total size of the following write queue range.\r
- ///\r
- UINT64 WriteQueueSize;\r
- ///\r
- /// Write Queue data\r
- /// UINT8 WriteQueue[WriteQueueSize];\r
- ///\r
-} EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER;\r
-\r
-#endif\r
\r
if (!Found) {\r
//\r
- // if not find the wantted order location, add it as last item of the controller mapping item\r
+ // if not find the wanted order location, add it as last item of the controller mapping item\r
//\r
InsertTailList (&OverrideItem->DriverInfoList, &DriverImageInfo->Link);\r
OverrideItem->DriverInfoNum ++;\r
#include <Library/MemoryAllocationLib.h>\r
#include <Library/UefiBootServicesTableLib.h>\r
#include <Library/DevicePathLib.h>\r
-#include <MdeModuleHii.h>\r
+#include <Guid\MdeModuleHii.h>\r
\r
\r
//\r
\r
EFI_HII_DATABASE_PROTOCOL *gIfrLibHiiDatabase;\r
EFI_HII_STRING_PROTOCOL *gIfrLibHiiString;\r
-GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_GUID mIfrVendorGuid = EFI_IFR_TIANO_GUID;\r
\r
/**\r
ExtendedIfrSupportLib's constructor. It locates the required protocol:\r
}\r
\r
if ((((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode == EFI_IFR_GUID_OP) &&\r
- CompareGuid (&mIfrVendorGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER))) &&\r
+ CompareGuid (&gEfiIfrTianoGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER))) &&\r
(((EFI_IFR_GUID_CLASS *) OpCodeData)->ExtendOpCode == EFI_IFR_EXTEND_OP_CLASS)\r
) {\r
//\r
DebugLib\r
PcdLib\r
\r
+[Guids]\r
+ gEfiIfrTianoGuid ## CONSUMES ## GUID\r
+\r
[Protocols]\r
gEfiHiiDatabaseProtocolGuid ## CONSUMES\r
gEfiHiiStringProtocolGuid ## CONSUMES\r
ExtendOpCode = ((EFI_IFR_GUID_LABEL *) IfrOpHdr)->ExtendOpCode;\r
LabelNumber = ReadUnaligned16 ((UINT16 *)(VOID *)&((EFI_IFR_GUID_LABEL *)IfrOpHdr)->Number);\r
if ((ExtendOpCode != EFI_IFR_EXTEND_OP_LABEL) || (LabelNumber != Label) \r
- || !CompareGuid ((EFI_GUID *)(UINTN)(&((EFI_IFR_GUID_LABEL *)IfrOpHdr)->Guid), &mIfrVendorGuid)) {\r
+ || !CompareGuid ((EFI_GUID *)(UINTN)(&((EFI_IFR_GUID_LABEL *)IfrOpHdr)->Guid), &gEfiIfrTianoGuid)) {\r
//\r
// Go to the next Op-Code\r
//\r
IfrOpHdr = (EFI_IFR_OP_HEADER *) ((CHAR8 *) (IfrOpHdr) + IfrOpHdr->Length);\r
if (IfrOpHdr->OpCode == EFI_IFR_GUID_OP) {\r
ExtendOpCode = ((EFI_IFR_GUID_LABEL *) IfrOpHdr)->ExtendOpCode;\r
- if ((ExtendOpCode == EFI_IFR_EXTEND_OP_LABEL) && CompareGuid ((EFI_GUID *)(UINTN)(&((EFI_IFR_GUID_LABEL *)IfrOpHdr)->Guid), &mIfrVendorGuid)) {\r
+ if ((ExtendOpCode == EFI_IFR_EXTEND_OP_LABEL) && CompareGuid ((EFI_GUID *)(UINTN)(&((EFI_IFR_GUID_LABEL *)IfrOpHdr)->Guid), &gEfiIfrTianoGuid)) {\r
break;\r
}\r
}\r
Banner.Header.OpCode = EFI_IFR_GUID_OP;\r
Banner.Header.Length = sizeof (EFI_IFR_GUID_BANNER);\r
Banner.Header.Scope = 0;\r
- CopyMem (&Banner.Guid, &mIfrVendorGuid, sizeof (EFI_IFR_GUID));\r
+ CopyMem (&Banner.Guid, &gEfiIfrTianoGuid, sizeof (EFI_IFR_GUID));\r
Banner.ExtendOpCode = EFI_IFR_EXTEND_OP_BANNER;\r
Banner.Title = Title;\r
Banner.LineNumber = LineNumber;\r
#include <Library/IfrSupportLib.h>\r
#include <Library/PcdLib.h>\r
\r
-#include <MdeModuleHii.h>\r
+#include <Guid/MdeModuleHii.h>\r
\r
extern CONST EFI_GUID mIfrVendorGuid;\r
\r
## Hob guid for Pcd Pei Callback Function Table\r
## Include/Guid/PcdPeiCallbackFnTableHobGuid.h\r
gPcdPeiCallbackFnTableHobGuid = { 0xC625F4B2, 0xEA09, 0x4675, { 0x82, 0xD7, 0xBA, 0x36, 0x82, 0x15, 0x7A, 0x14 }}\r
+\r
+ ## Guid for EDKII implementation GUIDed opcodes\r
+ gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}\r
+ \r
+ ## Guid for Framework vfr GUIDed opcodes.\r
+ gEfiIfrFrameworkGuid = { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 }}\r
\r
## Guid to specify the System Non Volatile FV\r
## Include/Guid/SystemNvDataGuid.h\r
## Include/Guid/Performance.h\r
gPerformanceProtocolGuid = { 0x76B6BDFA, 0x2ACD, 0x4462, { 0x9E, 0x3F, 0xCB, 0x58, 0xC9, 0x69, 0xD9, 0x37 }}\r
\r
-[Protocols.common]\r
- ## Capsule Arch protocol specify capsule runtime services are installed. \r
- ## Include/Protocol/Capsule.h\r
- gEfiCapsuleArchProtocolGuid = { 0x5053697E, 0x2CBC, 0x4819, { 0x90, 0xD9, 0x05, 0x80, 0xDE, 0xEE, 0x57, 0x54 }}\r
- \r
+[Protocols.common] \r
## Load File protocol provides capability to load and unload EFI image into memory and execute it.\r
## Include/Protocol/LoadPe32Image.h\r
gEfiLoadPeImageProtocolGuid = { 0x5CB5C776, 0x60D5, 0x45EE, { 0x88, 0x3C, 0x45, 0x27, 0x08, 0xCD, 0x74, 0x3F }}\r
#\r
gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0|UINT32|0x00010010\r
\r
- ## Indicate the max size the platform can support in case of populated capsules.\r
+ ## Indicate the max size of the populated image that the platform can support.\r
+ # To support the multi populated images, the defautl supported size will \r
+ # be enlarged to 100MB that is 10 times of the single non-populated image.\r
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x6400000|UINT32|0x0001001e\r
\r
- ## Indicate the max size the platform can support in case of non-populated capsules.\r
+ ## Indicate the max size of the non-populated image that the platform can support.\r
+ # The default size is 10MB for the casule image without populated flag setting.\r
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0xa00000|UINT32|0x0001001f\r
\r
## Maximun number of performance log entries during PEI phase.\r
if (!FeaturePcdGet(PcdSupportUpdateCapsuleReset)) {\r
return EFI_UNSUPPORTED;\r
}\r
- *ResetType = EfiResetWarm;\r
- *MaxiumCapsuleSize = FixedPcdGet32(PcdMaxSizePopulateCapsule);\r
+ *ResetType = EfiResetWarm; \r
} else {\r
//\r
// For non-reset capsule image.\r
//\r
*ResetType = EfiResetCold;\r
+ }\r
+ \r
+ //\r
+ // The support max capsule image size\r
+ //\r
+ if ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0) {\r
+ *MaxiumCapsuleSize = FixedPcdGet32(PcdMaxSizePopulateCapsule);\r
+ } else {\r
*MaxiumCapsuleSize = FixedPcdGet32(PcdMaxSizeNonPopulateCapsule);\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
#include <Library/BaseLib.h>\r
#include <Library/PcdLib.h>\r
\r
-#include <MdeModuleHii.h>\r
+#include <Guid/MdeModuleHii.h>\r
\r
#include <Protocol/HiiFont.h>\r
#include <Protocol/HiiDatabase.h>\r
#include <Protocol/HiiDatabase.h>\r
#include <Protocol/HiiString.h>\r
\r
-#include <MdeModuleHii.h>\r
+#include <Guid/MdeModuleHii.h>\r
#include <Library/DebugLib.h>\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/UefiRuntimeServicesTableLib.h>\r
#include <Library/UefiBootServicesTableLib.h>\r
#include <Library/DevicePathLib.h>\r
\r
-#include <WorkingBlockHeader.h>\r
-\r
//\r
// Flash erase polarity is 1\r
//\r
\r
[FeaturePcd.common]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiPcdDatabaseSetEnabled\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdPeiPcdDatabaseGetSizeEnabled\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiPcdDatabaseExEnabled\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiPcdDatabaseCallbackOnSetEnabled\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdPeiPcdDatabaseGetSizeEnabled\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiPcdDatabaseTraverseEnabled\r
\r
[FixedPcd.common]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPcdCallBackNumberPerPcdEntry\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPcdCallBackNumberPerPcdEntry || PcdPeiPcdDatabaseCallbackOnSetEnabled\r
\r
[Depex]\r
TRUE\r
FORM_EXPRESSION *mSuppressExpression;\r
FORM_EXPRESSION *mGrayOutExpression;\r
\r
-EFI_GUID gTianoHiiIfrGuid = EFI_IFR_TIANO_GUID;\r
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID mFrameworkHiiCompatibilityGuid = EFI_IFR_FRAMEWORK_GUID;\r
-\r
-\r
/**\r
Initialize Statement header members.\r
\r
//\r
OpCodeData += ((EFI_IFR_OP_HEADER *) OpCodeData)->Length;\r
if (*OpCodeData == EFI_IFR_GUID_OP) {\r
- if (CompareGuid (&mFrameworkHiiCompatibilityGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)))) {\r
+ if (CompareGuid (&gEfiIfrFrameworkGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)))) {\r
//\r
// Specific GUIDed opcodes to support IFR generated from Framework HII VFR \r
//\r
// Vendor specific\r
//\r
case EFI_IFR_GUID_OP:\r
- if (CompareGuid (&gTianoHiiIfrGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)))) {\r
+ if (CompareGuid (&gEfiIfrTianoGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)))) {\r
//\r
// Tiano specific GUIDed opcodes\r
//\r
#include <Protocol/HiiString.h>\r
#include <Protocol/ConsoleControl.h>\r
\r
-#include <MdeModuleHii.h>\r
+#include <Guid/MdeModuleHii.h>\r
\r
#include <Library/PrintLib.h>\r
#include <Library/DebugLib.h>\r
HiiLib\r
ExtendedHiiLib\r
\r
+[Guids]\r
+ gEfiIfrTianoGuid ## CONSUMES ## GUID\r
+ gEfiIfrFrameworkGuid ## CONSUMES ## GUID\r
+\r
[Protocols]\r
gEfiHiiConfigAccessProtocolGuid ## CONSUMES\r
gEfiHiiStringProtocolGuid ## CONSUMES\r