Hi Kavya,
One minor comment.
Please change the DEBUG_ERROR to DEBUG_INFO.
With this modification, you can keep my Reviewed-by.
Reviewed-by: Zhiguang Liu <[email protected]>

________________________________
From: [email protected] <[email protected]> on behalf of kavya 
<[email protected]>
Sent: Monday, December 6, 2021 13:35
To: [email protected] <[email protected]>
Cc: Sravanthi, K KavyaX <[email protected]>; Chiu, Chasel 
<[email protected]>; Desimone, Nathaniel L 
<[email protected]>; Liming Gao <[email protected]>; Dong, 
Eric <[email protected]>
Subject: [edk2-devel] [PATCH] MinPlatformPkg: Check if Acpi table is already 
installed.

Check if Acpi table is already installed by locating the first ACPI table
in XSDT/RSDT based on Signature

Cc: Chasel Chiu <[email protected]>
Cc: Nate DeSimone <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Eric Dong <[email protected]>
Signed-off-by: kavya <[email protected]>
---
 Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c | 18 
++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c 
b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c
index 785cf4c2f9..db58cbe6ce 100644
--- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c
+++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c
@@ -1048,12 +1048,21 @@ InstallMcfgFromScratch (
 {
   EFI_STATUS                                                                   
         Status;
   EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER               
         *McfgTable;
+  EFI_ACPI_COMMON_HEADER                                                       
         *Mcfg;
   
EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE
 *Segment;
   UINTN                                                                        
         Index;
   UINTN                                                                        
         SegmentCount;
   PCI_SEGMENT_INFO                                                             
         *PciSegmentInfo;
   UINTN                                                                        
         TableHandle;

+  Mcfg = (EFI_ACPI_COMMON_HEADER *) EfiLocateFirstAcpiTable (
+                                      
EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE
+                                      );
+  if (Mcfg != NULL) {
+    DEBUG ((DEBUG_ERROR, "MCFG table already installed\n"));
+    return EFI_SUCCESS;
+  }
+
   PciSegmentInfo = GetPciSegmentInfo (&SegmentCount);

   McfgTable = AllocateZeroPool (
@@ -1365,6 +1374,7 @@ UpdateLocalTable (
 {
   EFI_STATUS                    Status;
   EFI_ACPI_COMMON_HEADER        *CurrentTable;
+  EFI_ACPI_COMMON_HEADER        *Table;
   EFI_ACPI_TABLE_VERSION        Version;
   UINTN                         TableHandle;
   UINTN                         Index;
@@ -1372,6 +1382,14 @@ UpdateLocalTable (
   for (Index = 0; Index < sizeof(mLocalTable)/sizeof(mLocalTable[0]); Index++) 
{
     CurrentTable = mLocalTable[Index];

+    Table = (EFI_ACPI_COMMON_HEADER *) EfiLocateFirstAcpiTable 
(CurrentTable->Signature);
+    if (Table != NULL) {
+      DEBUG ((DEBUG_ERROR, "Acpi table with signature=%c%c%c%c already 
installed\n",
+            ((CHAR8*)&CurrentTable->Signature)[0], 
((CHAR8*)&CurrentTable->Signature)[1],
+            ((CHAR8*)&CurrentTable->Signature)[2], 
((CHAR8*)&CurrentTable->Signature)[3]));
+      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 (#84375): https://edk2.groups.io/g/devel/message/84375
Mute This Topic: https://groups.io/mt/87534774/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to