[edk2-devel] [PATCH] MinPlatformPkg: Check if the Acpi table is already installed.

kavya posted 1 patch 2 years, 4 months ago
Failed in applying to current master (apply log)
Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
[edk2-devel] [PATCH] MinPlatformPkg: Check if the Acpi table is already installed.
Posted by kavya 2 years, 4 months ago
Check if Acpi table is already installed by locating Acpi system description
table protocol. If protocol is not installed then continue to install
the acpi table.

Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: kavya <k.kavyax.sravanthi@intel.com>
---
 Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c
index 785cf4c2f9..03193c99fa 100644
--- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c
+++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c
@@ -1053,6 +1053,18 @@ InstallMcfgFromScratch (
   UINTN                                                                                 SegmentCount;
   PCI_SEGMENT_INFO                                                                      *PciSegmentInfo;
   UINTN                                                                                 TableHandle;
+  UINTN                                                                                 Handle;
+  EFI_ACPI_DESCRIPTION_HEADER                                                           *Table;
+
+  Handle = 0;
+  Status = LocateAcpiTableBySignature (
+              EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,
+              (EFI_ACPI_DESCRIPTION_HEADER **) &Table,
+              &Handle
+              );
+  if (!EFI_ERROR (Status)) {
+    return EFI_SUCCESS;
+  }
 
   PciSegmentInfo = GetPciSegmentInfo (&SegmentCount);
 
@@ -1368,10 +1380,22 @@ UpdateLocalTable (
   EFI_ACPI_TABLE_VERSION        Version;
   UINTN                         TableHandle;
   UINTN                         Index;
+  UINTN                         Handle;
+  EFI_ACPI_DESCRIPTION_HEADER   *Table;
 
   for (Index = 0; Index < sizeof(mLocalTable)/sizeof(mLocalTable[0]); Index++) {
     CurrentTable = mLocalTable[Index];
 
+    Handle = 0;
+    Status = LocateAcpiTableBySignature (
+                CurrentTable->Signature,
+                (EFI_ACPI_DESCRIPTION_HEADER **) &Table,
+                &Handle
+                );
+    if (!EFI_ERROR (Status)) {
+      continue;
+    }
+
     PlatformUpdateTables (CurrentTable, &Version);
 
     TableHandle = 0;
-- 
2.16.2.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#84196): https://edk2.groups.io/g/devel/message/84196
Mute This Topic: https://groups.io/mt/87421907/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-