Thanks for update! Change looks good to me. Acked-by: Chasel Chiu <chasel.c...@intel.com>
> -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Dhaval > Sharma > Sent: Sunday, November 19, 2023 8:24 PM > 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 v3 1/1] MdeModulePkg: Fix issue with ACPI table > creation > > As per ACPI Spec 6.5+ Table 5-9 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 | 22 > +++++++++++++------- > 1 file changed, 15 insertions(+), 7 deletions(-) > > diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c > b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c > index e09bc9b704f5..ead8376177c9 100644 > --- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c > +++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c > @@ -1892,14 +1892,22 @@ InstallAcpiTableFromHob ( > } } - if > (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE > *)ChildTable)->Dsdt != 0) {+ //+ // First check if xDSDT is > available that is > preferred as per+ // ACPI Spec 6.5+ Table 5-9 X_DSDT definition+ > //+ > 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;+ } 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)) {- > DEBUG > ((DEBUG_ERROR, "InstallAcpiTableFromHob: Fail to add ACPI table DSDT\n"));- > ASSERT_EFI_ERROR (Status);- break;- }+ } else {+ > break;+ }+ Status = AddTableToList (AcpiTableInstance, > TableToInstall, > TRUE, Version, TRUE, &TableKey);+ if (EFI_ERROR (Status)) {+ > DEBUG > ((DEBUG_ERROR, "InstallAcpiTableFromHob: Fail to add ACPI table DSDT\n"));+ > ASSERT_EFI_ERROR (Status);+ break; } } }-- > 2.39.2 > > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#111451): https://edk2.groups.io/g/devel/message/111451 > Mute This Topic: https://groups.io/mt/102702109/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 (#111823): https://edk2.groups.io/g/devel/message/111823 Mute This Topic: https://groups.io/mt/102702109/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-