diff --git a/ArmVirtPkg/ArmVirtCloudHv.dsc b/ArmVirtPkg/ArmVirtCloudHv.dsc index 3ccf82d61c..bf1e554720 100644 --- a/ArmVirtPkg/ArmVirtCloudHv.dsc +++ b/ArmVirtPkg/ArmVirtCloudHv.dsc @@ -155,6 +155,11 @@ gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|3 gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x20000 + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + [PcdsFixedAtBuild.AARCH64] # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point, # if the entry point version is >= 3.0. AARCH64 OSes cannot assume the diff --git a/ArmVirtPkg/ArmVirtKvmTool.dsc b/ArmVirtPkg/ArmVirtKvmTool.dsc index 845dda9eec..175420787d 100644 --- a/ArmVirtPkg/ArmVirtKvmTool.dsc +++ b/ArmVirtPkg/ArmVirtKvmTool.dsc @@ -167,6 +167,11 @@ # gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16 + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + [PcdsPatchableInModule.common] # # This will be overridden in the code diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index 867f835e49..b579348e4f 100644 --- a/ArmVirtPkg/ArmVirtQemu.dsc +++ b/ArmVirtPkg/ArmVirtQemu.dsc @@ -233,6 +233,11 @@ # System Memory Size -- 128 MB initially, actual size will be fetched from DT gArmTokenSpaceGuid.PcdSystemMemorySize|0x8000000 + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + [PcdsFixedAtBuild.AARCH64] # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point, # if the entry point version is >= 3.0. AARCH64 OSes cannot assume the diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc index 3288398d4a..6003836415 100644 --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc @@ -181,6 +181,11 @@ gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|3 gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x20000 + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + [PcdsPatchableInModule.common] # we need to provide a resolution for this PCD that supports PcdSet64() # being called from ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.c, diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc index a7d7ab7fa0..77f52be0c3 100644 --- a/ArmVirtPkg/ArmVirtXen.dsc +++ b/ArmVirtPkg/ArmVirtXen.dsc @@ -103,6 +103,11 @@ # gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + [PcdsPatchableInModule.common] # we need to provide a resolution for this PCD that supports PcdSet64() # being called from ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.c, diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index 100bfa0a60..a57ab435b2 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -2305,17 +2305,23 @@ # @Prompt Remove X permission from WX sections. gEfiMdePkgTokenSpaceGuid.PcdImageLoaderRemoveXForWX|FALSE|BOOLEAN|0x40001021 - ## Indicates the UEFI image file formats supported outside FVs.

+ ## Indicates the UEFI image file formats supported outside FVs. + # UE is experimental and not enabled by default. + # For correct usage in a platform which opts in to UE support, this should + # be overridden globally, not within individual modules.

# BIT0 - PE.
# BIT1 - UE.
# @Prompt Supported UEFI image file formats outside FVs. - gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportNonFv|0x02|UINT8|0x40002000 + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportNonFv|0x01|UINT8|0x40002000 - ## Indicates the UEFI image file formats supported inside FVs.

+ ## Indicates the UEFI image file formats supported inside FVs. + # UE is experimental and not enabled by default. + # For correct usage in a platform which opts in to UE support, this should + # be overridden globally, not within individual modules.

# BIT0 - PE.
# BIT1 - UE.
# @Prompt Supported UEFI image file formats inside FVs. - gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03|UINT8|0x40002001 + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x01|UINT8|0x40002001 ## Set image protection policy. The policy is applied for each source individually. # If a bit is set, aligned images from this source will be protected and diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.dsc b/OvmfPkg/IntelTdx/IntelTdxX64.dsc index 0116043217..2d12d6770e 100644 --- a/OvmfPkg/IntelTdx/IntelTdxX64.dsc +++ b/OvmfPkg/IntelTdx/IntelTdxX64.dsc @@ -491,6 +491,11 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xFFFFFFFFFFFFFF45 !endif + # + # Firmware volume is PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x01 + ################################################################################ # # Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index b65a1ba9f3..70da076c40 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -599,6 +599,11 @@ gEfiMdePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x70000000 !endif + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + ################################################################################ # # Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 888977b6cb..2a3a1f6284 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -566,6 +566,11 @@ gEfiMdePkgTokenSpaceGuid.PcdControlFlowEnforcementPropertyMask|0x1 + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + [PcdsFixedAtBuild.IA32] # # The NumberOfPages values below are ad-hoc. They are updated sporadically at diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 259d90af5c..b490bc3e7d 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -626,6 +626,11 @@ gEfiMdePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x00000003 !endif + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + ################################################################################ # # Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayloadPkg.dsc index a08aa0249c..e1f658b948 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -484,6 +484,11 @@ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsGet.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY !endif + # + # Firmware volume supports UE, and may require PE. + # + gEfiMdePkgTokenSpaceGuid.PcdUefiImageFormatSupportFv|0x03 + [PcdsPatchableInModule.X64] !if $(NETWORK_DRIVER_ENABLE) == TRUE gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections|TRUE