]> git.proxmox.com Git - mirror_edk2.git/blobdiff - PrmPkg/PrmLoaderDxe/PrmLoaderDxe.c
PrmPkg: Add PlatformGuid
[mirror_edk2.git] / PrmPkg / PrmLoaderDxe / PrmLoaderDxe.c
index aa7aab391e8c30cd70fabb2a09f8768326d52191..f78c682a654b930912c559cee6ab87925e2dd80e 100644 (file)
@@ -11,6 +11,7 @@
 \r
 #include "PrmAcpiTable.h"\r
 \r
+#include <Guid/ZeroGuid.h>\r
 #include <IndustryStandard/Acpi.h>\r
 #include <Library/BaseLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
@@ -52,6 +53,7 @@ ProcessPrmModules (
   OUT PRM_ACPI_DESCRIPTION_TABLE          **PrmAcpiDescriptionTable\r
   )\r
 {\r
+  EFI_GUID                                *PlatformGuid;\r
   EFI_IMAGE_EXPORT_DIRECTORY              *CurrentImageExportDirectory;\r
   PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT     *CurrentExportDescriptorStruct;\r
   PRM_ACPI_DESCRIPTION_TABLE              *PrmAcpiTable;\r
@@ -79,6 +81,20 @@ ProcessPrmModules (
   }\r
   *PrmAcpiDescriptionTable = NULL;\r
 \r
+  PlatformGuid = (EFI_GUID *) PcdGetPtr (PcdPrmPlatformGuid);\r
+  //\r
+  // The platform should set PcdPrmPlatformGuid to a non-zero value\r
+  //\r
+  if (CompareGuid (PlatformGuid, &gZeroGuid)) {\r
+    DEBUG ((\r
+      DEBUG_ERROR,\r
+      "  %a %a: PcdPrmPlatformGuid must be set to a unique value in the platform DSC file.\n",\r
+      _DBGMSGID_,\r
+      __FUNCTION__\r
+      ));\r
+    ASSERT (!CompareGuid (PlatformGuid, &gZeroGuid));\r
+  }\r
+\r
   DEBUG ((DEBUG_INFO, "  %a %a: %d total PRM modules to process.\n", _DBGMSGID_, __FUNCTION__, mPrmModuleCount));\r
   DEBUG ((DEBUG_INFO, "  %a %a: %d total PRM handlers to process.\n", _DBGMSGID_, __FUNCTION__, mPrmHandlerCount));\r
 \r
@@ -102,6 +118,7 @@ ProcessPrmModules (
   PrmAcpiTable->Header.OemRevision      = PcdGet32 (PcdAcpiDefaultOemRevision);\r
   PrmAcpiTable->Header.CreatorId        = PcdGet32 (PcdAcpiDefaultCreatorId);\r
   PrmAcpiTable->Header.CreatorRevision  = PcdGet32 (PcdAcpiDefaultCreatorRevision);\r
+  CopyGuid (&PrmAcpiTable->PrmPlatformGuid, PlatformGuid);\r
   PrmAcpiTable->PrmModuleInfoOffset     = OFFSET_OF (PRM_ACPI_DESCRIPTION_TABLE, PrmModuleInfoStructure);\r
   PrmAcpiTable->PrmModuleInfoCount      = (UINT32) mPrmModuleCount;\r
 \r