The changes looks good to me.
One minor comment about the coding style:
Could we make the "else if" at the same line with brace "}", which is aligned
with current edk2 coding style, rather than in a new line ? Thanks.
Like:
} else if (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)->Dsdt !=
0) {
Rather than:
}
else if (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)->Dsdt != 0)
Thanks,
Dandan
-----Original Message-----
From: Dhaval <[email protected]>
Sent: Thursday, September 28, 2023 2:45 PM
To: [email protected]
Cc: Wang, Jian J <[email protected]>; Gao, Liming
<[email protected]>; Liu, Zhiguang <[email protected]>; Bi, Dandan
<[email protected]>
Subject: [PATCH v1 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: Jian J Wang <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Zhiguang Liu <[email protected]>
Cc: Dandan Bi <[email protected]>
Signed-off-by: Dhaval Sharma <[email protected]>
---
MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c | 15
++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
index e09bc9b704f5..d153c96a6bdb 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
@@ -1892,7 +1892,20 @@ 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 (#110899): https://edk2.groups.io/g/devel/message/110899
Mute This Topic: https://groups.io/mt/101633356/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-