Hi Dhaval,
Just a small feedback, the only difference will be TableToInstall between XDsdt and Dsdt, could we optimize the code flow to reduce duplicate lines? Thanks, Chasel > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Dhaval > Sharma > Sent: Friday, November 17, 2023 3:35 AM > To: devel@edk2.groups.io > Cc: Gao, Liming <gaolim...@byosoft.com.cn>; Liu, Zhiguang > <zhiguang....@intel.com>; Bi, Dandan <dandan...@intel.com> > Subject: [edk2-devel] [PATCH v2 1/1] MdeModulePkg: Fix issue with ACPI table > creation > > As per spec if xDSDT is avaialble, it should be used first. > Handle required flow when xDSDT is abscent or present. > > Test: Tested on RISCV64 Qemu platform with xDSDT and booted to linux kernel. > > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Zhiguang Liu <zhiguang....@intel.com> > Cc: Dandan Bi <dandan...@intel.com> > Signed-off-by: Dhaval Sharma <dha...@rivosinc.com> > --- > > Notes: > v2: > - Added proper indentation for else if > > MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c | 13 > ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c > b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c > index e09bc9b704f5..11097ed4c3be 100644 > --- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c > +++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c > @@ -1892,7 +1892,18 @@ InstallAcpiTableFromHob ( > } } - if > (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE > *)ChildTable)->Dsdt != 0) {+ //+ // First check if xDSDT is > available that is > preferred+ //+ if (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE > *)ChildTable)->XDsdt != 0) {+ TableToInstall = (VOID > *)(UINTN)((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)- > >XDsdt;+ Status = AddTableToList (AcpiTableInstance, > >TableToInstall, > TRUE, Version, TRUE, &TableKey);+ if (EFI_ERROR (Status)) {+ > DEBUG > ((DEBUG_ERROR, "InstallAcpiTableFromHob: Fail to add ACPI table xDSDT\n"));+ > ASSERT_EFI_ERROR (Status);+ break;+ }+ } else if > (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)->Dsdt != 0) > { TableToInstall = (VOID > *)(UINTN)((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)- > >Dsdt; Status = AddTableToList (AcpiTableInstance, > >TableToInstall, > TRUE, Version, TRUE, &TableKey); if (EFI_ERROR (Status)) {-- > 2.39.2 > > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#111395): https://edk2.groups.io/g/devel/message/111395 > Mute This Topic: https://groups.io/mt/102645488/1777047 > Group Owner: devel+ow...@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [chasel.c...@intel.com] -=- > =-=-=-=-= > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#111405): https://edk2.groups.io/g/devel/message/111405 Mute This Topic: https://groups.io/mt/102645488/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-