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>
+* 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
* 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
SkuNumberType03,\r
ProcessorPartNumType04,\r
ProcessorSerialNumType04,\r
SkuNumberType03,\r
ProcessorPartNumType04,\r
ProcessorSerialNumType04,\r
+ ProcessorVersionType04,\r
SmbiosHiiStringFieldMax\r
} OEM_MISC_SMBIOS_HII_STRING_FIELD;\r
\r
SmbiosHiiStringFieldMax\r
} OEM_MISC_SMBIOS_HII_STRING_FIELD;\r
\r
/** @file\r
ProcessorSubClass.c\r
\r
/** @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
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
PartNumber = STRING_TOKEN (STR_PROCESSOR_PART_NUMBER);\r
\r
SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorManufacturer, ProcessorManu);\r
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
SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorAssetTag, AssetTag);\r
\r
if (StrLen ((CHAR16 *)FixedPcdGetPtr (PcdProcessorSerialNumber)) > 0) {\r
OemUpdateSmbiosInfo (mHiiHandle, PartNumber, ProcessorPartNumType04);\r
}\r
\r
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
// Processor Designation\r
StringBufferSize = sizeof (CHAR16) * SMBIOS_STRING_MAX_LENGTH;\r
ProcessorStr = AllocateZeroPool (StringBufferSize);\r