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.c...@intel.com>
Cc: Nate DeSimone <nathaniel.l.desim...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Cc: Eric Dong <eric.d...@intel.com>
Signed-off-by: kavya <k.kavyax.sravan...@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/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to