From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.99]) by mx.groups.io with SMTP id smtpd.web10.5788.1639627055010656919 for ; Wed, 15 Dec 2021 19:57:35 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@os.amperecomputing.com header.s=selector2 header.b=QxUwq5R0; spf=pass (domain: os.amperecomputing.com, ip: 40.107.220.99, mailfrom: nhi@os.amperecomputing.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TWZOl50NJqIVKwRzOwkFDvUJ9WLBRmWvZUPH6mLbCQbGNJzT6tK5Klmtrnmkgu6v4fPTPwtmDqYA9E83QcJ7pDbVyltkb5F0hSR3R4QN16b4PCn5Hi8tfceh4DzdLUzqrPeBbA83d5FAsCy0PtfY2JZ2pa4rLYVgPP3KHHvpTnu6gcpKxE5EawVAU3bEIiGjPXEw+r7/YRCke5CntuAUZztBhJbvqG2JO2JwortiOaY16Prxj1Cbqs2EYv1zBAYbqxAAGNiW/JLDc6SrjT1E6w/d2WlXtUx6QOSM5Dcz0yV9WvW8lQ482NNUNpWzBVkXPyCdT8lu9H0v7/1D9MF7Hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sp/m7iCuiVXM47MSTgyVaVeB2yJ7nea3BEIw42ahSPI=; b=XrUBc79etGgcXzNriF9RyhC/ICQCTFHPrgDWkypmv9FHOUHUtjJ2UVyB662e4KLlG0PhsLRp1mvbpU2jvk7FWj6B1VeqNcLGRY7jx80TJtctfOrYg08dDRMLNBw3vDZa9TrPzBOppkevsXTnwwVZsKOkVte3hf+zrbtqpQabTLR8nRInVRTFbc2Drj9YbSHEZOdJr7c4/whSBmfqIJK3NsaZXEWSgpYIFBlijH4Ed5MmC1UD937GpMh5Ry0XItOxvHzllNQ6aHoIv0MZ3l6aYLcIrsWiTNjhZgblNIZFizZdYxA4Jlmw7BmMxKsWsskaG+Raoe8SmxyknBiinmJg/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sp/m7iCuiVXM47MSTgyVaVeB2yJ7nea3BEIw42ahSPI=; b=QxUwq5R0zPq0NrDFGkbvXG7OVU58Fey5gdcBz3GZQCFtW5yoZcbrxAILnSMcgWdEY4DOHz8G+d1BhMZ1T/EgB7NP1RHPAhP9Imw3AinsUAuhXsT7eyAa1bl81cmD5CbyTXxceGXzQGxmdqiWOeVuE73Qj2G1OcAGZeN3KRjVDP4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by PH0PR01MB7381.prod.exchangelabs.com (2603:10b6:510:100::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4801.14; Thu, 16 Dec 2021 03:57:33 +0000 Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::b519:e888:c4c8:b552]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::b519:e888:c4c8:b552%8]) with mapi id 15.20.4778.017; Thu, 16 Dec 2021 03:57:33 +0000 From: "Nhi Pham" To: devel@edk2.groups.io Cc: patches@amperecomputing.com, Nhi Pham , Leif Lindholm , Ard Biesheuvel , Rebecca Cran , Sami Mujawar Subject: [PATCH v2 3/3] ArmPkg/ProcessorSubClassDxe: Get serial and part number from OemMiscLib Date: Thu, 16 Dec 2021 10:54:55 +0700 Message-Id: <20211216035455.977400-4-nhi@os.amperecomputing.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211216035455.977400-1-nhi@os.amperecomputing.com> References: <20211216035455.977400-1-nhi@os.amperecomputing.com> X-ClientProxiedBy: SI2PR01CA0012.apcprd01.prod.exchangelabs.com (2603:1096:4:191::8) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) Return-Path: nhi@os.amperecomputing.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 72c949a6-a8f9-4ec1-263d-08d9c04830a1 X-MS-TrafficTypeDiagnostic: PH0PR01MB7381:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3173; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EEvmgzrQe/aJzOjwfIqZD5YPHuzbb+nZSpf2thYd6lPdm/Gwy78Dby3ZvqbfeNDGuwJ5EWS7j6SCDr1C6JqYeCOkUYXX/ySmuCgzTSrRaKQcOiyEXdxwBXWjOCys9d+hs2q/xWTXxacQoB3/lOClcsA8gcl2D+IDtdqkZrYHV+NLfTFArMlhASL91lulLWK6gNdNeR5kipUyZiUOoNQQsjpWWA081R9chALV6fTQWPKTl7MF1+Ed4NUa4gSDPcjaztGd56vAJM2x7c4SWo6adLhBilcnxs8q58KkI24BijhA4tXMqSKcYSiZZC3ikjfjr4T07wFYwH25ufbcfigNpfzahb6hYMJL85qsfFcLXsfC3SPD+WweCzoW8zzd3UKkrhLnALyQh/E0Cf7kr+HxBQfy2Jscess0RVQjknj4fYuH6GD2UsYttefHepnc/FCMUjq4BsQDcOp1lrqBfGYh2ghNbFqjlAoUVznhthBOP1oyF5UwWk941HGpk9LSLCJyXQernLxBslsuyx6XJ3k0PQNZOL2Rf2H8i2c9ZolzYXltRzDH9CrLFklDsxe/fc+4hr71QwpVXWguApxGT87lIbrF6qm0y9N0cWg2ftSJ8Iuq9AGHMzkwWFpOV4wOgaHRwYBmgjHMVGxIIWCS5s4ySNrk7wRAorOk+g7RGzDtsB1hYlnw9xfNbLjGN3GTBUih5/FnlmRT22MzYoaZaUs1ug== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR01MB7287.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(6486002)(6506007)(19627235002)(8676002)(5660300002)(6512007)(1076003)(83380400001)(66946007)(2906002)(86362001)(2616005)(508600001)(8936002)(66476007)(26005)(4326008)(6666004)(6916009)(66556008)(52116002)(316002)(38100700002)(54906003)(186003)(38350700002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UOsTVzRD5f/8Ey4yCk46CPvYhWJvMcOUH9Kl3BszJndRqpjLMkO6Pep5EbAc?= =?us-ascii?Q?VEwLY1e/gvT1uL8bP8zJMKrMKD/WcJTr0B/vx57AzR8EcRyWthCP9nFOTKvh?= =?us-ascii?Q?PwWB/a8y2C/mlRAjBBUiMiZBTWvGZwYimS4lVg8/j9yEUNyDxg/1RheMEe5h?= =?us-ascii?Q?mHdJApV1GFIocJw2bj+ijOdRPWikueR98dKL+nisuFBVXV6E+PpXdKvAD8oh?= =?us-ascii?Q?zMr5pkfFXi5if9xHbBL8bD/9ulAgG6X6RZdMeXGHosOxsZWZyhtLlB7ylKOM?= =?us-ascii?Q?l0raz0OG2bDQgI8JSx5nxR0JiilCyjawm1oVIC1+FhFGqNXQvhpm7GjBd+Xx?= =?us-ascii?Q?mz1Ljkfe0wpwDOcZgWYWbP2UWrTywBiVxR9qxi6TjaU5d73DHlcsnu9w6CwI?= =?us-ascii?Q?w3/EdJYs0nDmaFCd14YzquTtQv1o7a6Jt2F+jyozY3YcrabnpIkrPuiOqhPU?= =?us-ascii?Q?tLtSb70qmtk6jhO0i2wQugklNjDgNu2gvdCwcT1yAD7mXntAGqHX85tWY7qw?= =?us-ascii?Q?WhU7XpbrFfpm2NYCQlMkY02PBuMHyMjWq3CAQETKZQWBWZfgLvJCCqSuf4zs?= =?us-ascii?Q?4oxzCjLC941jSTgttB0bt2xpWL4nczq5c/ZJY5Xlf5umYU1tQCUOQJhdEiYC?= =?us-ascii?Q?ZqLrMLEoMoq6jJhKUiP19Sdr7L7u80fo5dmG0Wdu+6LAqgUE2ZONI4jp0kJU?= =?us-ascii?Q?wGeCI8a8ry6ARrGw8GDuzsOc1Gvuk5PG+BVQO8nd98dKkenPjz7cG1mTSgCv?= =?us-ascii?Q?qy6LWW7cn0LBlO5ipi6pNmTYNPfCWqy7cL/KHnqjBRcqnf5TiMEVcHCgFCgw?= =?us-ascii?Q?CiPPam27OmHPgu/4qjDk1q79lZUGND3ghxYLSRwYvRCX1nH16sjJ0PKBP9cG?= =?us-ascii?Q?hbjy3ws2sq4cOXRdRrAcwyqweUF4EeGK6nTJb8nxowdPes4SH/UY6cBiBfMb?= =?us-ascii?Q?k4bZZDjgtf0IN3u5vc6KpF7JYqICC8kUxxgEBlLfjbKLv7xp9SfyW5v1Qb9C?= =?us-ascii?Q?EcAaO9yC4xR13pUFW3S/2cdjeJjp1TvEjICDkYst79zsW0UCbr5WIPvy4ZrG?= =?us-ascii?Q?2aEsQ0x+qZZtMGN96wlb+mht9X6X6I2whkinM//4Mt8cEGup5njFurqe6S7K?= =?us-ascii?Q?u7mv9vN92YOSPTSRzEaDceRfyRPLc+d0j8HZEmizNchra9EGquJ6WkgTPwJl?= =?us-ascii?Q?qTlDE8TsOGmcLJ8TRuB4MWmx00C0LOK5efeGRahmKOw78IYPtDm+gi7RGv0M?= =?us-ascii?Q?PMAbwyh0vxK44/E1l31VMWa2DjK7n7JzMVHghk6jegUq+NY2byPNjNB5l9Oa?= =?us-ascii?Q?t2RFfHgGa3IoXL9kNBBp9+NrhJVU0wT1MmiJDia4f2pLYrhOpZdz73zW0GEh?= =?us-ascii?Q?876KwDoYorPTibzlAQC6GuFPrHZyt92d+MlIjwCPQW5YEn43TrpRohmyEyrQ?= =?us-ascii?Q?88qa/jpQwYd2AUeQkdQGZJZ17NwHS6fA/+AJy55vRhNtnK3R752M8z9v3L8s?= =?us-ascii?Q?IfFu46ohhs+NnWzJqOAgPHIQHmfMAxDwo3sNSL19Ams/epne7RAudaKR0Ca6?= =?us-ascii?Q?sWOPH1H4GEv2lidfRLF/cPONCz25DLVoDKYBjpEDOYIpO7gLn//BA5kFOVPC?= =?us-ascii?Q?fH8fqC6a+3tyNTBLQTE/Z4ff7X2zdWoj+6tTyt9dhK3DTNSGvZ2vUTta47Dv?= =?us-ascii?Q?6N0OrEEutKavRWjVmJbAmef0pEg=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72c949a6-a8f9-4ec1-263d-08d9c04830a1 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2021 03:57:33.7556 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TvKr0dk7XZu3WOgl9GWrMhggABd9HydnQKCVT0NiCuwys3XO1khKHc1Iiu6Z3yGylouSh4A3rtBV0kJjOkWbCXkWm7Fc1W5S0gQ902hIg6Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR01MB7381 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Currently, the serial and part number of a processor are filled with fixed PCDs. However, they may be updated dynamically according to the information being passed from a the pre-UEFI firmware during booting. So, this patch is to support updating these string fields from OemMiscLib if the PCDs are empty. Cc: Leif Lindholm Cc: Ard Biesheuvel Cc: Rebecca Cran Signed-off-by: Nhi Pham Reviewed-by: Sami Mujawar --- ArmPkg/Include/Library/OemMiscLib.h | 2 ++ ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c | 14 ++++= ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ArmPkg/Include/Library/OemMiscLib.h b/ArmPkg/Include/Library/O= emMiscLib.h index f25c8f3342a9..47cb30d84a62 100644 --- a/ArmPkg/Include/Library/OemMiscLib.h +++ b/ArmPkg/Include/Library/OemMiscLib.h @@ -56,6 +56,8 @@ typedef enum { ChassisTypeType03,=0D ManufacturerType03,=0D SkuNumberType03,=0D + ProcessorPartNumType04,=0D + ProcessorSerialNumType04,=0D SmbiosHiiStringFieldMax=0D } OEM_MISC_SMBIOS_HII_STRING_FIELD;=0D =0D diff --git a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass= .c b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c index a4f98e6a81d2..0b9af9bd7e1c 100644 --- a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c +++ b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClass.c @@ -513,9 +513,19 @@ AllocateType4AndSetProcessorInformationStrings ( =0D SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorManufacturer, ProcessorManu= );=0D SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorVersion, ProcessorVersion);= =0D - SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorSerialNumber, SerialNumber)= ;=0D SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorAssetTag, AssetTag);=0D - SET_HII_STRING_IF_PCD_NOT_EMPTY (PcdProcessorPartNumber, PartNumber);=0D +=0D + if (StrLen ((CHAR16 *)FixedPcdGetPtr (PcdProcessorSerialNumber)) > 0) {= =0D + HiiSetString (mHiiHandle, SerialNumber, (CHAR16 *)FixedPcdGetPtr (PcdP= rocessorSerialNumber), NULL);=0D + } else {=0D + OemUpdateSmbiosInfo (mHiiHandle, SerialNumber, ProcessorSerialNumType0= 4);=0D + }=0D +=0D + if (StrLen ((CHAR16 *)FixedPcdGetPtr (PcdProcessorPartNumber)) > 0) {=0D + HiiSetString (mHiiHandle, PartNumber, (CHAR16 *)FixedPcdGetPtr (PcdPro= cessorPartNumber), NULL);=0D + } else {=0D + OemUpdateSmbiosInfo (mHiiHandle, PartNumber, ProcessorPartNumType04);= =0D + }=0D =0D // Processor Designation=0D StringBufferSize =3D sizeof (CHAR16) * SMBIOS_STRING_MAX_LENGTH;=0D --=20 2.25.1