+ ## Indicates if to shadow PEIM on S3 boot path after memory is ready.<BR><BR>\r
+ # TRUE - Shadow PEIM on S3 boot path after memory is ready.<BR>\r
+ # FALSE - Not shadow PEIM on S3 boot path after memory is ready.<BR>\r
+ # @Prompt Shadow Peim On S3 Boot.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot|FALSE|BOOLEAN|0x30001028\r
+\r
+ ## Indicates if to shadow PEIM and PeiCore after memory is ready.<BR><BR>\r
+ # This PCD is used on other boot path except for S3 boot.\r
+ # TRUE - Shadow PEIM and PeiCore after memory is ready.<BR>\r
+ # FALSE - Not shadow PEIM after memory is ready.<BR>\r
+ # @Prompt Shadow Peim and PeiCore on boot\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnBoot|TRUE|BOOLEAN|0x30001029\r
+\r
+ ## The mask is used to control memory profile behavior.<BR><BR>\r
+ # BIT0 - Enable UEFI memory profile.<BR>\r
+ # BIT1 - Enable SMRAM profile.<BR>\r
+ # BIT7 - Disable recording at the start.<BR>\r
+ # @Prompt Memory Profile Property.\r
+ # @Expression 0x80000002 | (gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfilePropertyMask & 0x7C) == 0\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfilePropertyMask|0x0|UINT8|0x30001041\r
+\r
+ ## The mask is used to control SmiHandlerProfile behavior.<BR><BR>\r
+ # BIT0 - Enable SmiHandlerProfile.<BR>\r
+ # @Prompt SmiHandlerProfile Property.\r
+ # @Expression 0x80000002 | (gEfiMdeModulePkgTokenSpaceGuid.PcdSmiHandlerProfilePropertyMask & 0xFE) == 0\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSmiHandlerProfilePropertyMask|0|UINT8|0x00000108\r
+\r
+ ## This flag is to control which memory types of alloc info will be recorded by DxeCore & SmmCore.<BR><BR>\r
+ # For SmmCore, only EfiRuntimeServicesCode and EfiRuntimeServicesData are valid.<BR>\r
+ #\r
+ # Below is bit mask for this PCD: (Order is same as UEFI spec)<BR>\r
+ # EfiReservedMemoryType 0x0001<BR>\r
+ # EfiLoaderCode 0x0002<BR>\r
+ # EfiLoaderData 0x0004<BR>\r
+ # EfiBootServicesCode 0x0008<BR>\r
+ # EfiBootServicesData 0x0010<BR>\r
+ # EfiRuntimeServicesCode 0x0020<BR>\r
+ # EfiRuntimeServicesData 0x0040<BR>\r
+ # EfiConventionalMemory 0x0080<BR>\r
+ # EfiUnusableMemory 0x0100<BR>\r
+ # EfiACPIReclaimMemory 0x0200<BR>\r
+ # EfiACPIMemoryNVS 0x0400<BR>\r
+ # EfiMemoryMappedIO 0x0800<BR>\r
+ # EfiMemoryMappedIOPortSpace 0x1000<BR>\r
+ # EfiPalCode 0x2000<BR>\r
+ # EfiPersistentMemory 0x4000<BR>\r
+ # OEM Reserved 0x4000000000000000<BR>\r
+ # OS Reserved 0x8000000000000000<BR>\r
+ #\r
+ # e.g. Reserved+ACPINvs+ACPIReclaim+RuntimeCode+RuntimeData are needed, 0x661 should be used.<BR>\r
+ #\r
+ # @Prompt Memory profile memory type.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfileMemoryType|0x0|UINT64|0x30001042\r
+\r
+ ## This PCD is to control which drivers need memory profile data.<BR><BR>\r
+ # For example:<BR>\r
+ # One image only (Shell):<BR>\r
+ # Header GUID<BR>\r
+ # {0x04, 0x06, 0x14, 0x00, 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1,<BR>\r
+ # 0x7F, 0xFF, 0x04, 0x00}<BR>\r
+ # Two or more images (Shell + WinNtSimpleFileSystem):<BR>\r
+ # {0x04, 0x06, 0x14, 0x00, 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1,<BR>\r
+ # 0x7F, 0x01, 0x04, 0x00,<BR>\r
+ # 0x04, 0x06, 0x14, 0x00, 0x8B, 0xE1, 0x25, 0x9C, 0xBA, 0x76, 0xDA, 0x43, 0xA1, 0x32, 0xDB, 0xB0, 0x99, 0x7C, 0xEF, 0xEF,<BR>\r
+ # 0x7F, 0xFF, 0x04, 0x00}<BR>\r
+ # @Prompt Memory profile driver path.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfileDriverPath|{0x0}|VOID*|0x00001043\r
+\r
+ ## Set image protection policy. The policy is bitwise.\r
+ # If a bit is set, the image will be protected by DxeCore if it is aligned.\r
+ # The code section becomes read-only, and the data section becomes non-executable.\r
+ # If a bit is clear, the image will not be protected.<BR><BR>\r
+ # BIT0 - Image from unknown device. <BR>\r
+ # BIT1 - Image from firmware volume.<BR>\r
+ # @Prompt Set image protection policy.\r
+ # @ValidRange 0x80000002 | 0x00000000 - 0x0000001F\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x00000002|UINT32|0x00001047\r
+\r
+ ## Set DXE memory protection policy. The policy is bitwise.\r
+ # If a bit is set, memory regions of the associated type will be mapped\r
+ # non-executable.<BR><BR>\r
+ #\r
+ # Below is bit mask for this PCD: (Order is same as UEFI spec)<BR>\r
+ # EfiReservedMemoryType 0x0001<BR>\r
+ # EfiLoaderCode 0x0002<BR>\r
+ # EfiLoaderData 0x0004<BR>\r
+ # EfiBootServicesCode 0x0008<BR>\r
+ # EfiBootServicesData 0x0010<BR>\r
+ # EfiRuntimeServicesCode 0x0020<BR>\r
+ # EfiRuntimeServicesData 0x0040<BR>\r
+ # EfiConventionalMemory 0x0080<BR>\r
+ # EfiUnusableMemory 0x0100<BR>\r
+ # EfiACPIReclaimMemory 0x0200<BR>\r
+ # EfiACPIMemoryNVS 0x0400<BR>\r
+ # EfiMemoryMappedIO 0x0800<BR>\r
+ # EfiMemoryMappedIOPortSpace 0x1000<BR>\r
+ # EfiPalCode 0x2000<BR>\r
+ # EfiPersistentMemory 0x4000<BR>\r
+ # OEM Reserved 0x4000000000000000<BR>\r
+ # OS Reserved 0x8000000000000000<BR>\r
+ #\r
+ # NOTE: User must NOT set NX protection for EfiLoaderCode / EfiBootServicesCode / EfiRuntimeServicesCode. <BR>\r
+ # User MUST set the same NX protection for EfiBootServicesData and EfiConventionalMemory. <BR>\r
+ #\r
+ # e.g. 0x7FD5 can be used for all memory except Code. <BR>\r
+ # e.g. 0x7BD4 can be used for all memory except Code and ACPINVS/Reserved. <BR>\r
+ #\r
+ # @Prompt Set DXE memory protection policy.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0x0000000|UINT64|0x00001048\r
+\r
+ ## PCI Serial Device Info. It is an array of Device, Function, and Power Management\r
+ # information that describes the path that contains zero or more PCI to PCI briges\r
+ # followed by a PCI serial device. Each array entry is 4-bytes in length. The\r
+ # first byte is the PCI Device Number, then second byte is the PCI Function Number,\r
+ # and the last two bytes are the offset to the PCI power management capabilities\r
+ # register used to manage the D0-D3 states. If a PCI power management capabilities\r
+ # register is not present, then the last two bytes in the offset is set to 0. The\r
+ # array is terminated by an array entry with a PCI Device Number of 0xFF. For a\r
+ # non-PCI fixed address serial device, such as an ISA serial device, the value is 0xFF.\r
+ # @Prompt Pci Serial Device Info\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo|{0xFF}|VOID*|0x00010067\r
+\r
+ ## PCI Serial Parameters. It is an array of VendorID, DeviceID, ClockRate, Offset,\r
+ # BarIndex, RegisterStride, ReceiveFifoDepth, TransmitFifoDepth information that\r
+ # describes the parameters of special PCI serial devices.\r
+ # Each array entry is 24-byte in length. The array is terminated\r
+ # by an array entry with a PCI Vendor ID of 0xFFFF. If a platform only contains a\r
+ # standard 16550 PCI serial device whose class code is 7/0/2, the value is 0xFFFF.\r
+ # The C style structure is defined as below:<BR>\r
+ # typedef struct {<BR>\r
+ # UINT16 VendorId; ///< Vendor ID to match the PCI device. The value 0xFFFF terminates the list of entries.<BR>\r
+ # UINT16 DeviceId; ///< Device ID to match the PCI device.<BR>\r
+ # UINT32 ClockRate; ///< UART clock rate. Set to 0 for default clock rate of 1843200 Hz.<BR>\r
+ # UINT64 Offset; ///< The byte offset into to the BAR.<BR>\r
+ # UINT8 BarIndex; ///< Which BAR to get the UART base address.<BR>\r
+ # UINT8 RegisterStride; ///< UART register stride in bytes. Set to 0 for default register stride of 1 byte.<BR>\r
+ # UINT16 ReceiveFifoDepth; ///< UART receive FIFO depth in bytes. Set to 0 for a default FIFO depth of 16 bytes.<BR>\r
+ # UINT16 TransmitFifoDepth; ///< UART transmit FIFO depth in bytes. Set to 0 for a default FIFO depth of 16 bytes.<BR>\r
+ # UINT8 Reserved[2];<BR>\r
+ # } PCI_SERIAL_PARAMETER;<BR>\r
+ # It contains zero or more instances of the above structure.<BR>\r
+ # For example, if a PCI device contains two UARTs, PcdPciSerialParameters needs\r
+ # to contain two instances of the above structure, with the VendorId and DeviceId\r
+ # equals to the Device ID and Vendor ID of the device; If the PCI device uses the\r
+ # first two BARs to support two UARTs, BarIndex of first instance equals to 0 and\r
+ # BarIndex of second one equals to 1; If the PCI device uses the first BAR to\r
+ # support both UARTs, BarIndex of both instance equals to 0, Offset of first\r
+ # instance equals to 0 and Offset of second one equals to a value bigger than or\r
+ # equal to 8.<BR>\r
+ # For certain UART whose register needs to be accessed in DWORD aligned address,\r
+ # RegisterStride equals to 4.\r
+ # @Prompt Pci Serial Parameters\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdPciSerialParameters|{0xFF, 0xFF}|VOID*|0x00010071\r
+\r
+ ## Serial Port Extended Transmit FIFO Size. The default is 64 bytes.\r
+ # @Prompt Serial Port Extended Transmit FIFO Size in Bytes\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|64|UINT32|0x00010068\r
+\r
+ ## This PCD points to the file name GUID of the BootManagerMenuApp\r
+ # Platform can customize the PCD to point to different application for Boot Manager Menu\r
+ # @Prompt Boot Manager Menu File\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0xdc, 0x5b, 0xc2, 0xee, 0xf2, 0x67, 0x95, 0x4d, 0xb1, 0xd5, 0xf8, 0x1b, 0x20, 0x39, 0xd1, 0x1d }|VOID*|0x0001006b\r
+\r
+ ## This PCD points to the formset GUID of the driver health management form\r
+ # The form will be popped up by BDS core when there are Configuration Required driver health intances.\r
+ # Platform can customize the PCD to point to different formset.\r
+ # @Prompt Driver Health Management Form\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDriverHealthConfigureForm|{ 0xf4, 0xd9, 0x96, 0x42, 0xfc, 0xf6, 0xde, 0x4d, 0x86, 0x85, 0x8c, 0xe2, 0xd7, 0x9d, 0x90, 0xf0 }|VOID*|0x0001006c\r
+\r
+ ## The number of bytes between registers in serial device. The default is 1 byte.\r
+ # @Prompt Serial Port Register Stride in Bytes\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1|UINT32|0x0001006d\r
+\r
+ ## This PCD to include the driver guid of VFR drivers for VarCheckHiiBin generation.<BR><BR>\r
+ # Default is gZeroGuid that means no VFR driver will be parsed for VarCheckHiiBin generation.<BR>\r
+ # If it is set to an all FFs GUID, it means all modules in all FVs will be parsed for VarCheckHiiBin generation.<BR>\r
+ # @Prompt Driver guid array of VFR drivers for VarCheckHiiBin generation.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVarCheckVfrDriverGuidArray|{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }|VOID*|0x3000103A\r
+\r
+ ## Indicates which ACPI versions are targeted by the ACPI tables exposed to the OS\r
+ # These values are aligned with the definitions in MdePkg/Include/Protocol/AcpiSystemDescriptionTable.h\r
+ # BIT 1 - EFI_ACPI_TABLE_VERSION_1_0B.<BR>\r
+ # BIT 2 - EFI_ACPI_TABLE_VERSION_2_0.<BR>\r
+ # BIT 3 - EFI_ACPI_TABLE_VERSION_3_0.<BR>\r
+ # BIT 4 - EFI_ACPI_TABLE_VERSION_4_0.<BR>\r
+ # BIT 5 - EFI_ACPI_TABLE_VERSION_5_0.<BR>\r
+ # @Prompt Exposed ACPI table versions.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x3E|UINT32|0x0001004c\r
+\r
+ ## This PCD defines the MAX repair count.\r
+ # The default value is 0 that means infinite.\r
+ # @Prompt MAX repair count\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxRepairCount|0x00|UINT32|0x00010076\r
+\r
+ ## Status Code for Capsule subclass definitions.<BR><BR>\r
+ # EFI_OEM_SPECIFIC_SUBCLASS_CAPSULE = 0x00810000<BR>\r
+ # NOTE: The default value of this PCD may collide with other OEM specific status codes.\r
+ # Override the value of this PCD in the platform DSC file as needed.\r
+ # @Prompt Status Code for Capsule subclass definitions\r
+ # @ValidList 0x80000003 | 0x00810000\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeSubClassCapsule|0x00810000|UINT32|0x00000100\r
+\r
+ ## Status Code for Capsule Process Begin.<BR><BR>\r
+ # EFI_CAPSULE_PROCESS_CAPSULES_BEGIN = (EFI_OEM_SPECIFIC | 0x00000001) = 0x00008001<BR>\r
+ # NOTE: The default value of this PCD may collide with other OEM specific status codes.\r
+ # Override the value of this PCD in the platform DSC file as needed.\r
+ # @Prompt Status Code for Capsule Process Begin\r
+ # @ValidList 0x80000003 | 0x00008001\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeProcessCapsulesBegin|0x00008001|UINT32|0x00000101\r
+\r
+ ## Status Code for Capsule Process End.<BR><BR>\r
+ # EFI_CAPSULE_PROCESS_CAPSULES_END = (EFI_OEM_SPECIFIC | 0x00000002) = 0x00008002<BR>\r
+ # NOTE: The default value of this PCD may collide with other OEM specific status codes.\r
+ # Override the value of this PCD in the platform DSC file as needed.\r
+ # @Prompt Status Code for Capsule Process End\r
+ # @ValidList 0x80000003 | 0x00008002\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeProcessCapsulesEnd|0x00008002|UINT32|0x00000102\r
+\r
+ ## Status Code for Capsule Process Updating Firmware.<BR><BR>\r
+ # EFI_CAPSULE_UPDATING_FIRMWARE = (EFI_OEM_SPECIFIC | 0x00000003) = 0x00008003<BR>\r
+ # NOTE: The default value of this PCD may collide with other OEM specific status codes.\r
+ # Override the value of this PCD in the platform DSC file as needed.\r
+ # @Prompt Status Code for Capsule Process Updating Firmware\r
+ # @ValidList 0x80000003 | 0x00008003\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdatingFirmware|0x00008003|UINT32|0x00000103\r
+\r
+ ## Status Code for Capsule Process Update Firmware Success.<BR><BR>\r
+ # EFI_CAPSULE_UPDATE_FIRMWARE_SUCCESS = (EFI_OEM_SPECIFIC | 0x00000004) = 0x00008004<BR>\r
+ # NOTE: The default value of this PCD may collide with other OEM specific status codes.\r
+ # Override the value of this PCD in the platform DSC file as needed.\r
+ # @Prompt Status Code for Capsule Process Update Firmware Success\r
+ # @ValidList 0x80000003 | 0x00008004\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdateFirmwareSuccess|0x00008004|UINT32|0x00000104\r
+\r
+ ## Status Code for Capsule Process Update Firmware Failed.<BR><BR>\r
+ # EFI_CAPSULE_UPDATE_FIRMWARE_FAILED = (EFI_OEM_SPECIFIC | 0x00000005) = 0x00008005<BR>\r
+ # NOTE: The default value of this PCD may collide with other OEM specific status codes.\r
+ # Override the value of this PCD in the platform DSC file as needed.\r
+ # @Prompt Status Code for Capsule Process Update Firmware Failed\r
+ # @ValidList 0x80000003 | 0x00008005\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdateFirmwareFailed|0x00008005|UINT32|0x00000105\r
+\r
+ ## Status Code for Capsule Resetting System.<BR><BR>\r
+ # EFI_CAPSULE_RESETTING_SYSTEM = (EFI_OEM_SPECIFIC | 0x00000006) = 0x00008006<BR>\r
+ # NOTE: The default value of this PCD may collide with other OEM specific status codes.\r
+ # Override the value of this PCD in the platform DSC file as needed.\r
+ # @Prompt Status Code for Capsule Resetting System\r
+ # @ValidList 0x80000003 | 0x00008006\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeResettingSystem|0x00008006|UINT32|0x00000106\r
+\r
+ ## CapsuleMax value in capsule report variable.\r
+ # @Prompt CapsuleMax value in capsule report variable.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleMax|0xFFFF|UINT16|0x00000107\r
+\r