Hi Sami, Ok, I will fix them in V3 and follow your suggestions, thanks for the review. Thanks, Chao On 2023/11/13 19:46, Sami Mujawar wrote: > Hi Chao, > > Thank you for this patch. > > I have a few suggestions marked inline as [SAMI]. > > Otherwise this patch looks good to me. > > With those fixed, > > Reviewed-by: Sami Mujawar > > Regards, > > Sami Mujawar > > On 06/11/2023 03:29 am, Chao Li wrote: >> Moved PcdDeviceTreeInitialBaseAddress and PcdDeviceTreeAllocationPadding >> to OvmfPkg for easier use by other architectures. >> >> Build-tested only (with "ArmVirtQemu.dsc"). >> >> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4584 >> >> Cc: Ard Biesheuvel >> Cc: Leif Lindholm >> Cc: Sami Mujawar >> Cc: Gerd Hoffmann >> Cc: Jiewen Yao >> Cc: Jordan Justen >> Signed-off-by: Chao Li >> --- >>   ArmVirtPkg/ArmVirtCloudHv.dsc                     |  2 +- >>   ArmVirtPkg/ArmVirtKvmTool.dsc                     |  2 +- >>   ArmVirtPkg/ArmVirtPkg.dec                         | 14 -------------- >>   ArmVirtPkg/ArmVirtQemu.dsc                        |  2 +- >>   ArmVirtPkg/ArmVirtQemuKernel.dsc                  |  2 +- >>   ArmVirtPkg/ArmVirtXen.dsc                         |  2 +- >>   .../ArmVirtPsciResetSystemPeiLib.inf              |  3 ++- >>   .../CloudHvVirtMemInfoPeiLib.inf                  |  3 ++- >>   .../DebugLibFdtPL011UartFlash.inf                 |  3 ++- >>   .../EarlyFdt16550SerialPortHookLib.inf            |  3 ++- >>   .../EarlyFdtPL011SerialPortLib.inf                |  3 ++- >>   .../KvmtoolPlatformPeiLib.inf                     |  5 +++-- >>   .../Library/PlatformPeiLib/PlatformPeiLib.inf     | 10 +++++----- >>   .../QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf  |  3 ++- >>   .../PrePi/ArmVirtPrePiUniCoreRelocatable.inf      |  3 ++- >>   OvmfPkg/OvmfPkg.dec                               | 15 +++++++++++++++ >>   16 files changed, 42 insertions(+), 33 deletions(-) >> >> diff --git a/ArmVirtPkg/ArmVirtCloudHv.dsc >> b/ArmVirtPkg/ArmVirtCloudHv.dsc >> index 2cb89ce10c..76c0d28544 100644 >> --- a/ArmVirtPkg/ArmVirtCloudHv.dsc >> +++ b/ArmVirtPkg/ArmVirtCloudHv.dsc >> @@ -129,7 +129,7 @@ >>     gArmTokenSpaceGuid.PcdSystemMemoryBase|0x40000000 >>       # initial location of the device tree blob passed by Cloud >> Hypervisor -- base of DRAM >> - gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000 >> + gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000 >> gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE >>     gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, >> 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, >> 0xf4, 0x66, 0x23, 0x31 } >> diff --git a/ArmVirtPkg/ArmVirtKvmTool.dsc >> b/ArmVirtPkg/ArmVirtKvmTool.dsc >> index f50d53bf15..cac4fe06d3 100644 >> --- a/ArmVirtPkg/ArmVirtKvmTool.dsc >> +++ b/ArmVirtPkg/ArmVirtKvmTool.dsc >> @@ -179,7 +179,7 @@ >>     # We are booting from RAM using the Linux kernel boot protocol, >>     # x0 will point to the DTB image in memory. >>     # >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0 >> + gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0 >>       gArmTokenSpaceGuid.PcdFdBaseAddress|0x0 >>     gArmTokenSpaceGuid.PcdFvBaseAddress|0x0 >> diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec >> index 0f2d787327..2451644844 100644 >> --- a/ArmVirtPkg/ArmVirtPkg.dec >> +++ b/ArmVirtPkg/ArmVirtPkg.dec >> @@ -42,20 +42,6 @@ >> gArmVirtTokenSpaceGuid.PcdTpm2SupportEnabled|FALSE|BOOLEAN|0x00000004 >>     [PcdsFixedAtBuild, PcdsPatchableInModule] >> -  # >> -  # This is the physical address where the device tree is expected >> to be stored >> -  # upon first entry into UEFI. This needs to be a FixedAtBuild PCD, >> so that we >> -  # can do a first pass over the device tree in the SEC phase to >> discover the >> -  # UART base address. >> -  # >> - >> gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0|UINT64|0x00000001 >> - >> -  # >> -  # Padding in bytes to add to the device tree allocation, so that >> the DTB can >> -  # be modified in place (default: 256 bytes) >> -  # >> - >> gArmVirtTokenSpaceGuid.PcdDeviceTreeAllocationPadding|256|UINT32|0x00000002 >> - >>     # >>     # Binary representation of the GUID that determines the terminal >> type. The >>     # size must be exactly 16 bytes. The default value corresponds to >> diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc >> index 30e3cfc8b9..cf306cac08 100644 >> --- a/ArmVirtPkg/ArmVirtQemu.dsc >> +++ b/ArmVirtPkg/ArmVirtQemu.dsc >> @@ -201,7 +201,7 @@ >>     gArmTokenSpaceGuid.PcdSystemMemoryBase|0x40000000 >>       # initial location of the device tree blob passed by QEMU -- >> base of DRAM >> - gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000 >> + gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000 >> gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE >>     gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, >> 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, >> 0xf4, 0x66, 0x23, 0x31 } >> diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc >> b/ArmVirtPkg/ArmVirtQemuKernel.dsc >> index b50f8e84a3..c0d079e28d 100644 >> --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc >> +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc >> @@ -198,7 +198,7 @@ >>     # Define a default initial address for the device tree. >>     # Ignored if x0 != 0 at entry. >>     # >> - gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000 >> + gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000 >>       gArmTokenSpaceGuid.PcdFdBaseAddress|0x0 >>     gArmTokenSpaceGuid.PcdFvBaseAddress|0x0 >> diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc >> index f0d15b823b..5809832e66 100644 >> --- a/ArmVirtPkg/ArmVirtXen.dsc >> +++ b/ArmVirtPkg/ArmVirtXen.dsc >> @@ -115,7 +115,7 @@ >>     # >>     gArmTokenSpaceGuid.PcdSystemMemoryBase|0x0 >>     gArmTokenSpaceGuid.PcdSystemMemorySize|0x0 >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0 >> + gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0 >>       gArmTokenSpaceGuid.PcdFdBaseAddress|0x0 >>     gArmTokenSpaceGuid.PcdFvBaseAddress|0x0 >> diff --git >> a/ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib/ArmVirtPsciResetSystemPeiLib.inf >> b/ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib/ArmVirtPsciResetSystemPeiLib.inf >> >> index 3a65706e8d..79217d296d 100644 >> --- >> a/ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib/ArmVirtPsciResetSystemPeiLib.inf >> +++ >> b/ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib/ArmVirtPsciResetSystemPeiLib.inf >> @@ -26,6 +26,7 @@ >>     EmbeddedPkg/EmbeddedPkg.dec >>     MdeModulePkg/MdeModulePkg.dec >>     MdePkg/MdePkg.dec >> +  OvmfPkg/OvmfPkg.dec >>     [LibraryClasses] >>     ArmSmcLib >> @@ -36,4 +37,4 @@ >>     HobLib >>     [Pcd] >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> diff --git >> a/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib.inf >> b/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib.inf >> index 666b5d9711..6df26ccd64 100644 >> --- >> a/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib.inf >> +++ >> b/ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib.inf >> @@ -26,6 +26,7 @@ >>     EmbeddedPkg/EmbeddedPkg.dec >>     MdeModulePkg/MdeModulePkg.dec >>     MdePkg/MdePkg.dec >> +  OvmfPkg/OvmfPkg.dec >>     [LibraryClasses] >>     ArmLib >> @@ -44,4 +45,4 @@ >>   [FixedPcd] >>     gArmTokenSpaceGuid.PcdFdSize >>     gArmTokenSpaceGuid.PcdFvSize >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> diff --git >> a/ArmVirtPkg/Library/DebugLibFdtPL011Uart/DebugLibFdtPL011UartFlash.inf >> b/ArmVirtPkg/Library/DebugLibFdtPL011Uart/DebugLibFdtPL011UartFlash.inf >> index 7870ca2ae4..f35a0913f0 100644 >> --- >> a/ArmVirtPkg/Library/DebugLibFdtPL011Uart/DebugLibFdtPL011UartFlash.inf >> +++ >> b/ArmVirtPkg/Library/DebugLibFdtPL011Uart/DebugLibFdtPL011UartFlash.inf >> @@ -30,6 +30,7 @@ >>     ArmPlatformPkg/ArmPlatformPkg.dec >>     ArmVirtPkg/ArmVirtPkg.dec >>     MdePkg/MdePkg.dec >> +  OvmfPkg/OvmfPkg.dec >>     [LibraryClasses] >>     BaseLib >> @@ -41,7 +42,7 @@ >>     PrintLib >>     [Pcd] >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress # Flash.c >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress # Flash.c > [SAMI] Please reorder this section in alphabetical order. >> gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue >>     gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask >>     gEfiMdePkgTokenSpaceGuid.PcdFixedDebugPrintErrorLevel >> diff --git >> a/ArmVirtPkg/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf >> b/ArmVirtPkg/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf >> >> index 22aba53d9b..3e2303b7f4 100644 >> --- >> a/ArmVirtPkg/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf >> +++ >> b/ArmVirtPkg/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf >> @@ -29,7 +29,8 @@ >>     ArmVirtPkg/ArmVirtPkg.dec >>     MdeModulePkg/MdeModulePkg.dec >>     MdePkg/MdePkg.dec >> +  OvmfPkg/OvmfPkg.dec >>     [Pcd] >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >>     gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase >> diff --git >> a/ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf >> b/ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf >> >> index f47692f06a..e677f1d9e7 100644 >> --- >> a/ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf >> +++ >> b/ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf >> @@ -28,9 +28,10 @@ >>     MdePkg/MdePkg.dec >>     ArmPlatformPkg/ArmPlatformPkg.dec >>     ArmVirtPkg/ArmVirtPkg.dec >> +  OvmfPkg/OvmfPkg.dec >>     [Pcd] >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >>     [FixedPcd] >>     gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate >> diff --git >> a/ArmVirtPkg/Library/KvmtoolPlatformPeiLib/KvmtoolPlatformPeiLib.inf >> b/ArmVirtPkg/Library/KvmtoolPlatformPeiLib/KvmtoolPlatformPeiLib.inf >> index f201aee50c..78c9d9d764 100644 >> --- a/ArmVirtPkg/Library/KvmtoolPlatformPeiLib/KvmtoolPlatformPeiLib.inf >> +++ b/ArmVirtPkg/Library/KvmtoolPlatformPeiLib/KvmtoolPlatformPeiLib.inf >> @@ -24,6 +24,7 @@ >>     EmbeddedPkg/EmbeddedPkg.dec >>     MdeModulePkg/MdeModulePkg.dec >>     MdePkg/MdePkg.dec >> +  OvmfPkg/OvmfPkg.dec >>     [LibraryClasses] >>     DebugLib >> @@ -34,11 +35,11 @@ >>     [FixedPcd] >>     gArmTokenSpaceGuid.PcdFvSize >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeAllocationPadding >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeAllocationPadding >>     [Pcd] >>     gArmTokenSpaceGuid.PcdFvBaseAddress >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress > [SAMI] Please reorder in alphabetical order. >> gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase >>     [Guids] >> diff --git a/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf >> b/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf >> index b867d8bb89..0584a53ee3 100644 >> --- a/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf >> +++ b/ArmVirtPkg/Library/PlatformPeiLib/PlatformPeiLib.inf >> @@ -41,16 +41,16 @@ >>     [FixedPcd] >>     gArmTokenSpaceGuid.PcdFvSize >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeAllocationPadding >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeAllocationPadding >>     [Pcd] >>     gArmTokenSpaceGuid.PcdFvBaseAddress >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> -  gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress         ## >> SOMETIMES_PRODUCES >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> +  gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress ## SOMETIMES_PRODUCES > [SAMI] Please reorder in alphabetical order. >>     [Ppis] >> -  gOvmfTpmDiscoveredPpiGuid                               ## >> SOMETIMES_PRODUCES >> -  gPeiTpmInitializationDonePpiGuid                        ## >> SOMETIMES_PRODUCES >> +  gOvmfTpmDiscoveredPpiGuid ## SOMETIMES_PRODUCES >> +  gPeiTpmInitializationDonePpiGuid ## SOMETIMES_PRODUCES >>     [Guids] >>     gEarlyPL011BaseAddressGuid >> diff --git >> a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf >> b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf >> index f045e39a41..76c3c5d3c8 100644 >> --- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf >> +++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf >> @@ -26,6 +26,7 @@ >>     EmbeddedPkg/EmbeddedPkg.dec >>     MdeModulePkg/MdeModulePkg.dec >>     MdePkg/MdePkg.dec >> +  OvmfPkg/OvmfPkg.dec >>     [LibraryClasses] >>     ArmLib >> @@ -44,4 +45,4 @@ >>     gArmTokenSpaceGuid.PcdSystemMemorySize >>     gArmTokenSpaceGuid.PcdFdSize >>     gArmTokenSpaceGuid.PcdFvSize >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> diff --git a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf >> b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf >> index 7edf501808..691fc26350 100755 >> --- a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf >> +++ b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf >> @@ -32,6 +32,7 @@ >>     MdePkg/MdePkg.dec >>     MdeModulePkg/MdeModulePkg.dec >>     EmbeddedPkg/EmbeddedPkg.dec >> +  OvmfPkg/OvmfPkg.dec >>     ArmPkg/ArmPkg.dec >>     ArmPlatformPkg/ArmPlatformPkg.dec >>     ArmVirtPkg/ArmVirtPkg.dec > [SAMI] I understad this section is not ordered correctly. But can you > can place the OvmfPkg/OvmfPkg.dec towards the end of this section, > please? >> @@ -93,6 +94,6 @@ >>   [Pcd] >>     gArmTokenSpaceGuid.PcdSystemMemoryBase >>     gArmTokenSpaceGuid.PcdSystemMemorySize >> -  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >> +  gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress >>     gArmTokenSpaceGuid.PcdFdBaseAddress >>     gArmTokenSpaceGuid.PcdFvBaseAddress > [SAMI] Please reorder in alphabetical order. >> diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec >> index e3861e5c1b..89091e8bf1 100644 >> --- a/OvmfPkg/OvmfPkg.dec >> +++ b/OvmfPkg/OvmfPkg.dec >> @@ -481,6 +481,21 @@ >>     # >>     gUefiOvmfPkgTokenSpaceGuid.PcdForceNoAcpi|0x0|BOOLEAN|0x69 >>   +[PcdsFixedAtBuild, PcdsPatchableInModule] >> +  # >> +  # This is the physical address where the device tree is expected >> to be stored >> +  # upon first entry into UEFI. This needs to be a FixedAtBuild PCD, >> so that we >> +  # can do a first pass over the device tree in the SEC phase to >> discover the >> +  # UART base address. >> +  # >> + >> gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0|UINT64|0x6e >> + >> +  # >> +  # Padding in bytes to add to the device tree allocation, so that >> the DTB can >> +  # be modified in place (default: 256 bytes) >> +  # >> + >> gUefiOvmfPkgTokenSpaceGuid.PcdDeviceTreeAllocationPadding|256|UINT32|0x6f >> + >>   [PcdsFeatureFlag] >> gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation|TRUE|BOOLEAN|0x1c >> gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation|FALSE|BOOLEAN|0x1d > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#111185): https://edk2.groups.io/g/devel/message/111185 Mute This Topic: https://groups.io/mt/102413878/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-