Просмотр исходного кода

RISC-V: Split SMBIOS out of PlatformPei

Cc: Abner Chang <abner.chang@hpe.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Abner Chang <abner.chang@hpe.com>

Signed-off-by: Daniel Schaefer <daniel.schaefer@hpe.com>
Daniel Schaefer 2 лет назад
Родитель
Сommit
5702ca26c1

+ 1 - 16
Platform/RISC-V/PlatformPkg/Universal/Pei/PlatformPei/Platform.c

@@ -254,22 +254,7 @@ BuildCoreInformationHob (
   VOID
 )
 {
-  EFI_STATUS Status;
-  RISC_V_PROCESSOR_SMBIOS_HOB_DATA *SmbiosHobPtr;
-
-  // TODO: Create SMBIOS libs for non-U540 platforms
-  Status = CreateU5MCCoreplexProcessorSpecificDataHob (0);
-  if (EFI_ERROR (Status)) {
-    ASSERT(FALSE);
-  }
-  Status = CreateU5MCProcessorSmbiosDataHob (0, &SmbiosHobPtr);
-  if (EFI_ERROR (Status)) {
-    ASSERT(FALSE);
-  }
-
-  DEBUG ((DEBUG_INFO, "U5 MC Coreplex SMBIOS DATA HOB at address 0x%x\n", SmbiosHobPtr));
-
-  return EFI_SUCCESS;
+  return BuildRiscVSmbiosHobs ();
 }
 
 /**

+ 6 - 27
Platform/SiFive/U5SeriesPkg/Include/SiFiveU5MCCoreplex.h

@@ -1,7 +1,7 @@
 /** @file
   SiFive U54 Coreplex library definitions.
 
-  Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
+  Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
@@ -17,35 +17,14 @@
 #define SIFIVE_U5MC_COREPLEX_MC_HART_ID     0
 
 /**
-  Build up U5MC coreplex processor core-specific information.
+  Build processor and platform information for the U5 platform
 
-  @param  UniqueId      U5MC unique ID.
-
-  @return EFI_STATUS
+  @return EFI_SUCCESS     Status.
 
 **/
 EFI_STATUS
-EFIAPI
-CreateU5MCCoreplexProcessorSpecificDataHob (
-  IN UINTN UniqueId
-  );
-
-/**
-  Function to build processor related SMBIOS information. RISC-V SMBIOS DXE driver collect
-  this information and build SMBIOS Type4 and Type7 record.
-
-  @param  ProcessorUid        Unique ID of pysical processor which owns this core.
-  @param  SmbiosDataHobPtr    Pointer to receive RISC_V_PROCESSOR_SMBIOS_DATA_HOB. The pointers
-                              maintained in this structure is only valid before memory is discovered.
-                              Access to those pointers after memory is installed will cause unexpected issues.
+BuildRiscVSmbiosHobs (
+  VOID
+);
 
-  @return EFI_SUCCESS     The PEIM initialized successfully.
-
-**/
-EFI_STATUS
-EFIAPI
-CreateU5MCProcessorSmbiosDataHob (
-  IN UINTN     ProcessorUid,
-  OUT RISC_V_PROCESSOR_SMBIOS_HOB_DATA **SmbiosDataHobPtr
-  );
 #endif

+ 31 - 1
Platform/SiFive/U5SeriesPkg/Library/PeiCoreInfoHobLib/CoreInfoHob.c

@@ -1,7 +1,7 @@
 /**@file
   Build up platform processor information.
 
-  Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
+  Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
@@ -32,6 +32,7 @@
   @return EFI_SUCCESS     The PEIM initialized successfully.
 
 **/
+STATIC
 EFI_STATUS
 EFIAPI
 CreateU5MCCoreplexProcessorSpecificDataHob (
@@ -96,6 +97,7 @@ CreateU5MCCoreplexProcessorSpecificDataHob (
   @return EFI_SUCCESS     The SMBIOS Hobs were created successfully.
 
 **/
+STATIC
 EFI_STATUS
 EFIAPI
 CreateU5MCProcessorSmbiosDataHob (
@@ -163,3 +165,31 @@ CreateU5MCProcessorSmbiosDataHob (
 
   return EFI_SUCCESS;
 }
+
+/**
+  Build processor and platform information for the U5 platform
+
+  @return EFI_SUCCESS     Status.
+
+**/
+EFI_STATUS
+BuildRiscVSmbiosHobs (
+  VOID
+)
+{
+  EFI_STATUS Status;
+  RISC_V_PROCESSOR_SMBIOS_HOB_DATA *SmbiosHobPtr;
+
+  Status = CreateU5MCCoreplexProcessorSpecificDataHob (0);
+  if (EFI_ERROR (Status)) {
+    ASSERT(FALSE);
+  }
+  Status = CreateU5MCProcessorSmbiosDataHob (0, &SmbiosHobPtr);
+  if (EFI_ERROR (Status)) {
+    ASSERT(FALSE);
+  }
+
+  DEBUG ((DEBUG_INFO, "U5 MC Coreplex SMBIOS DATA HOB at address 0x%x\n", SmbiosHobPtr));
+
+  return EFI_SUCCESS;
+}