]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg/ProcessorSubClassDxe: Get processor version from OemMiscLib
authorMinh Nguyen <minhn@amperecomputing.com>
Mon, 19 Sep 2022 02:19:45 +0000 (09:19 +0700)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Fri, 23 Sep 2022 14:39:10 +0000 (14:39 +0000)
In some scenarios, the processor version may be updated dynamically
from pre-UEFI firmware during booting. But the processor version is
fixed with PCD (PcdProcessorVersion), so it can not be updated it
dynamically. This patch will support setting that value both
statically and dynamically.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
Reviewed-by: Rebecca Cran <rebecca@quicinc.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Leif Lindholm <quic_llindhol@quicinc.com>
ArmPkg/Include/Library/OemMiscLib.h
ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c

index 47cb30d84a62367773c7cb5a9cfa03aaa27c2542..330bb4b014de87dacc486df0206cb43963139457 100644 (file)
@@ -1,5 +1,6 @@
 /** @file\r
 *\r
+*  Copyright (c) 2022, Ampere Computing LLC. All rights reserved.\r
 *  Copyright (c) 2021, NUVIA Inc. All rights reserved.\r
 *  Copyright (c) 2015, Hisilicon Limited. All rights reserved.\r
 *  Copyright (c) 2015, Linaro Limited. All rights reserved.\r
@@ -58,6 +59,7 @@ typedef enum {
   SkuNumberType03,\r
   ProcessorPartNumType04,\r
   ProcessorSerialNumType04,\r
+  ProcessorVersionType04,\r
   SmbiosHiiStringFieldMax\r
 } OEM_MISC_SMBIOS_HII_STRING_FIELD;\r
 \r
index 0b9af9bd7e1c63b0e05906f25a3eeffc92855da7..3b12e26abf6e97267969fc18f85c7e75553acc75 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
   ProcessorSubClass.c\r
 \r
+  Copyright (c) 2022, Ampere Computing LLC. All rights reserved.\r
   Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>\r
   Copyright (c) 2015, Hisilicon Limited. All rights reserved.\r
   Copyright (c) 2015, Linaro Limited. All rights reserved.\r
@@ -512,7 +513,6 @@ AllocateType4AndSetProcessorInformationStrings (
   PartNumber       = STRING_TOKEN (STR_PROCESSOR_PART_NUMBER);\r
 \r
   SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorManufacturer, ProcessorManu);\r
-  SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorVersion, ProcessorVersion);\r
   SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorAssetTag, AssetTag);\r
 \r
   if (StrLen ((CHAR16 *)FixedPcdGetPtr (PcdProcessorSerialNumber)) > 0) {\r
@@ -527,6 +527,12 @@ AllocateType4AndSetProcessorInformationStrings (
     OemUpdateSmbiosInfo (mHiiHandle, PartNumber, ProcessorPartNumType04);\r
   }\r
 \r
+  if (StrLen ((CHAR16 *)FixedPcdGetPtr (PcdProcessorVersion)) > 0) {\r
+    HiiSetString (mHiiHandle, ProcessorVersion, (CHAR16 *)FixedPcdGetPtr (PcdProcessorVersion), NULL);\r
+  } else {\r
+    OemUpdateSmbiosInfo (mHiiHandle, ProcessorVersion, ProcessorVersionType04);\r
+  }\r
+\r
   // Processor Designation\r
   StringBufferSize = sizeof (CHAR16) * SMBIOS_STRING_MAX_LENGTH;\r
   ProcessorStr     = AllocateZeroPool (StringBufferSize);\r