Hi Ard, Thank you for your feedback.
Please see my response inline marked [SAMI]. Regards, Sami Mujawar On 27/03/2024, 14:00, "Ard Biesheuvel" <a...@kernel.org <mailto:a...@kernel.org>> wrote: Hello Sami, On Tue, 26 Mar 2024 at 19:07, Sami Mujawar <sami.muja...@arm.com <mailto:sami.muja...@arm.com>> wrote: > > The Kvmtool guest firmware uses the dynamic HII > PCD PcdForceNoAcpi to determine if ACPI tables > or the DT must be used for booting an OS. > > This PcdForceNoAcpi is a BOOLEAN value that can > be configured using the variable "ForceNoAcpi" > specifing the gOvmfVariableGuid GUID which is > "50BEA1E5-A2C5-46E9-9B3A-59596516B00A". > > However, this feature was not working as the > PCD was not defined in the platform DSC file > and the DEPEX section in KvmtoolPlatfomDxe.inf > was not set correctly. > Understood. I do wonder whether gEfiVariableArchProtocolGuid is the appropriate protocol here to DEPEX on. Shouldn't PcdDxe depend on this already, and should we depend on the PCD protocol instead? [SAMI] I did some experiments and realised we have a cyclic dependency. I expect some further changes once the Arm CCA support patches are merged and will therefore send out a v2 with the dependency fixed later. [/SAMI] Other than that, this looks fine to me. > Therefore, fix this issue so that the ACPI/DT > boot selection can be done from the UEFI shell > as shown below. > > 1. Check the status of the 'ForceNoAcpi' variable > setvar ForceNoAcpi -guid > "50BEA1E5-A2C5-46E9-9B3A-59596516B00A" > -nv -bs > > Value 00 indicates ACPI boot > Value 01 indicates DT boot > > 2. Set the boot mode to ACPI > setvar ForceNoAcpi -guid > "50BEA1E5-A2C5-46E9-9B3A-59596516B00A" > -nv -bs =0x00 > > 3. Set the boot mode to DT > setvar ForceNoAcpi -guid > "50BEA1E5-A2C5-46E9-9B3A-59596516B00A" > -nv -bs =0x01 > > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org > <mailto:ardb+tianoc...@kernel.org>> > Cc: Leif Lindholm <quic_llind...@quicinc.com > <mailto:quic_llind...@quicinc.com>> > Cc: Gerd Hoffmann <kra...@redhat.com <mailto:kra...@redhat.com>> > Signed-off-by: Sami Mujawar <sami.muja...@arm.com > <mailto:sami.muja...@arm.com>> > --- > The changes can be seen at: > https://github.com/samimujawar/edk2/tree/2954_kvmtool_fix_acpi_dt_selection_v1 > > <https://github.com/samimujawar/edk2/tree/2954_kvmtool_fix_acpi_dt_selection_v1> > > ArmVirtPkg/ArmVirtKvmTool.dsc | 14 ++++++++++++++ > ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf | 2 +- > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/ArmVirtPkg/ArmVirtKvmTool.dsc b/ArmVirtPkg/ArmVirtKvmTool.dsc > index > 20da3319667900e64755272fa110d57452d1fc67..c3c27b2765b34599c7312026ce5cb9474a22c684 > 100644 > --- a/ArmVirtPkg/ArmVirtKvmTool.dsc > +++ b/ArmVirtPkg/ArmVirtKvmTool.dsc > @@ -189,6 +189,20 @@ [PcdsPatchableInModule.common] > [PcdsDynamicHii] > gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5 > > + # > + # Dynamic Hii PCD to select ACPI/DT boot. > + # > + # 1. Check the status of the 'ForceNoAcpi' variable > + # setvar ForceNoAcpi -guid "50BEA1E5-A2C5-46E9-9B3A-59596516B00A" -nv -bs > + # Value 00 indicates ACPI boot > + # Value 01 indicates DT boot > + # 2. Set the boot mode to ACPI > + # setvar ForceNoAcpi -guid "50BEA1E5-A2C5-46E9-9B3A-59596516B00A" -nv -bs > =0x00 > + # 3. Set the boot mode to DT > + # setvar ForceNoAcpi -guid "50BEA1E5-A2C5-46E9-9B3A-59596516B00A" -nv -bs > =0x01 > + # > + > gUefiOvmfPkgTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gOvmfVariableGuid|0x0|FALSE|NV,BS > + > [PcdsDynamicDefault.common] > gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0 > gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0 > diff --git a/ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf > b/ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf > index > b0583d52058805aaeece31d7e3776ac498f101ad..508bfa60c2c2cb3f3e7456b010f4e9057437cda8 > 100644 > --- a/ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf > +++ b/ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf > @@ -42,4 +42,4 @@ [Pcd] > gUefiOvmfPkgTokenSpaceGuid.PcdForceNoAcpi > > [Depex] > - TRUE > + gEfiVariableArchProtocolGuid > -- > 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#117720): https://edk2.groups.io/g/devel/message/117720 Mute This Topic: https://groups.io/mt/105162199/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-