From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (NAM02-SN1-obe.outbound.protection.outlook.com [40.107.96.135]) by mx.groups.io with SMTP id smtpd.web08.5838.1639627052881437333 for ; Wed, 15 Dec 2021 19:57:33 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@os.amperecomputing.com header.s=selector2 header.b=jIDF7TTe; spf=pass (domain: os.amperecomputing.com, ip: 40.107.96.135, mailfrom: nhi@os.amperecomputing.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gMgh0y6YFlg6FG8oIAFLbXnv3Xk+f/JyBbP1PWGr0JxMqfSHij1zAQm/kPf75LeK+aRUamzHSKeTuI4bitQ+zdIwljuRhofRGxIYP6eTbce8UEygglrEXZwnHdljv1TGO7R0YeCOdxk+mxkC7iHujb6v9Mr1tOwOyj8w03H3p3wzkB9etRC4F2wyTMea4545QBacS4hYvuM6wwjT9pU+h1RYuvr803m5KDmzd5d1laWQzFx2qIKAw3tyPSm5+qwK4KnfZ4dy6CO0Yj0p9GaXm1ekbFtP8ToPMaKY8wRd6P741vU2E22aV+oBDVSeZJJl2RMr/RT8mL/O8tDk2bIjkQ== 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=YzwdL1Zio1oAGyc5F/V3X9yLWaJmyLTJP4PdjTibX5U=; b=UBQ4HJxOSfH+5ltD84eBRCmxLAdTgTd+Vqt7FQxIAb8rKnf8wU8mBVqJ4P1axPewD3YKpL5+4QZlLRLhbSi1qnuTdA9Ob24JIRNfMT0DZDVUyxHrbEaRKslLTm5siYYYKNbWO89um9DFNr18AFJjimGRYm3IgVtwpGifYpvRk5sVPKDfVq6IJ9P84XjyeDNW1CJZopYa9AXtTfvKXxpKYnN0iM1KF1UUg1BLFu3Vi5EpnvEO4QQTouhom6182cXs/r9u1mHkLvDA7CHiXQ1+QmJ9LCh0JqD+Qx7995f9HdXimPdBxqev7H0O+J2IV1DuIthtJD2Hx0zQFRBcnkts+g== 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=YzwdL1Zio1oAGyc5F/V3X9yLWaJmyLTJP4PdjTibX5U=; b=jIDF7TTenhlwMcyX2o+RX5EoGS8H3L+gk9FF8iEtmhZV+C95oeCiNSy30Gej9C/B+bVhBbRbu+Kwgcw6dJdRT2uSXCfMJHUd3Ri+8KTNl8JdxGUcWVJcsk6RPY1V7oUrTiqImLRzNKK4ljbyHmc/N6yUQeTji/04iX5H41e5WBs= 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:31 +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:31 +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 2/3] ArmPkg/SmbiosMiscDxe: Get full SMBIOS strings from OemMiscLib Date: Thu, 16 Dec 2021 10:54:54 +0700 Message-Id: <20211216035455.977400-3-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: eda872f8-e66a-4bc1-b660-08d9c0482ef0 X-MS-TrafficTypeDiagnostic: PH0PR01MB7381:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: o6EAVWi4QNN9YOH3YSb3xETN/UUYHC63NVMbmDdEBiTpBNabDCFxzXKwfBHViddEpnwLk2P+BIWycX9DgkyTUesF+IZ7ahvheK9ZGrkxJYSnde+djGUu4rK1198XqNKs/iC21Fc5TqC3QU9j44eT4Stz13sGt+JQ1meHF4GfoYtnbTiFbmVwTBkG/q/URkAsI3NOsn10jvBn1WwKQNZ+SifCaombiMarcMRTIN0KT8zr/bKEQjEIOcgN0TYdQZC/z5rvqliLKhWBqjLibg9eFgbRc0ZQr7va+Buq0cW2w3lmauBmAacS6Uvp8ZKOg6JxHeycJl8oabm1bJOTFJkKDpF/gjt5aPrkBxsV9IKSKtDAQjDC0v3s24IJ9QUjKcOI4YO4vUld7xobCBDd5MLuakfHF9BfQN6FcpDKABQmED0YzlGkvqIGmfLHfP5IIRHfOwrOQbxHrByIpB9juOggPZUF+6ANqABcxvFXND4N0uib6jVI8hJPjBA804xgqPd1PCeQtxDYLw9cLplnfcpukVF//p2xIlAOIlg4qe+Pp+0fePAhSH75GmcxxQKwDE2ZoClKFUe0s7e93aMBSInypKbwTxtXulnOslC5otT4/EEtj3QL4I4nUwRgqUEVWBCbQX2IiU8oIsn/ttQj751oZQdD95rmEDnEq7LXF5NT1RI6qeISdMoWlZMPtxOi3qEwk6mN7cmdjhk2hvKHl9N6yg== 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)(45954011)(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?s9G3stedRfB9zPHWOoE3vRWLW6u6L5zi97o6HO98m4tXrv0r1Zi/awT+Sive?= =?us-ascii?Q?fFHFU+qkEFkApeXJh6mqrs0HVJeyBr7SN/rkzur1O7ylzfvCPXiuw85Nakru?= =?us-ascii?Q?02hVJQ2zJtejfBmcn6RIxgR7jM5pqEhjGRl11ALQDl4fC171tXHlB6Kt+pPI?= =?us-ascii?Q?mf5+9wmm/O6srZKd5avBFbrvo3OHDZa7eJVDuG2TtW1AF6S0k+uTigmPgO7c?= =?us-ascii?Q?LYOO6OKqnytVKUk1ATqHQoi9GyHah436hvwqNCYRp1oOa2ORY5b524iv/97E?= =?us-ascii?Q?gt2v/2/+K0gpnttHuFI4AIZUWL9cSTvPqQkhnCuv00bxNDVhDbip/vC/NYi2?= =?us-ascii?Q?MJjCn8rMuM5tLxq4M2Fs+nBkYWEmSVLPULOi22cHttkKLFq884dBga/KuVnR?= =?us-ascii?Q?VA5f9AqyGPQGeZRH226tnuGNpCE2oI6Q5DH7h9t4llxEkpJm3uWZCc2Q9iO4?= =?us-ascii?Q?phyG3mNVMS8fdg32CBeZgv/dz0Q8vrKAhWalPfCuX7JQpF/zK6FrE8oO8RlZ?= =?us-ascii?Q?cJCEYxbUEE+7IhfQCwM9NkQnYIX8iHeWGQtcc5OE+Lad7t4SBSrjdIsSXsWW?= =?us-ascii?Q?jEvOjMRqkYoWVb8hE1YMz8uKSzkx+BlG2Vck/f3QJ0oBS5hAi2eHuR5kfPt9?= =?us-ascii?Q?yLetRvbvzxjTQyE/KZFe/+oBIPCSuk0C7teKJEaAV8w8bqh1fnDu9aaQWwm0?= =?us-ascii?Q?D5axkoC40E/XX/54tNoYFSKhVeD/pu1y+ojQ0w/DqsLlDLTNhUbSS6DVTHaE?= =?us-ascii?Q?3bAoHxGjt9tZYhfa5ey/fDmLUB2AvtC5wC9Jsf7aGs50J7qvHMBZp7ROGAmi?= =?us-ascii?Q?A6DwWmHMWe1ziBb6E9VkAK5vG5Vj5Ix04xK+aryt8UuLKU28WJC8afEzxi8N?= =?us-ascii?Q?re/YnkkqAnTTcHFCK1GvFI08QH+a5OxnS8o48PSnlvRUhj4SYz3qQlmR+Kd2?= =?us-ascii?Q?0t3j8ANAsUa183PQV5GvSUm7ddckta9L3tT8KhUnXlFm1gAcT9EYZ0z2xEe8?= =?us-ascii?Q?7lH6o0J2pe17wJOZiQ4HdnmVPCJxokCl1G0MddBnoqNDDwM52evAGhmcvdTq?= =?us-ascii?Q?BJ8I1yzHhtEKm9bLW3px1v6RpUJ70nRVQvPAlulBMN8ONSq307c1aOLXlPo4?= =?us-ascii?Q?MBBTFQphUoCAGfj+Hrxbpt0zQjPP6ZdxcvMZJHrWAqjWh8VQioBLuzlqImkk?= =?us-ascii?Q?nNxeKIGDpkN6rVyDJqOpWCNEMKM7MHJK3wXrSWfwKYvvfg0SOdIScyHww+Ug?= =?us-ascii?Q?Td3krwidzBpD0vlDdQp1YaJ7EcwIyv+MRT29Nc9jz31IgD3rE0rTDGm1ZMXk?= =?us-ascii?Q?Sdvv97utA+ACeKQaz8EZOeSigrIn9LPtR/56E/pClVjO5h+aT5RXFwJhIplK?= =?us-ascii?Q?H5kt+kelH5FwjRl8uWYHtYYa9IUHWCKWwxFhwZr9wQBWPPtV3+Z/AIGjWs26?= =?us-ascii?Q?b63TbBEz+CWtVf8364tRoa6orh42lMGUZ7GCnKCL9vwSksE8UAxXqzRPsLqZ?= =?us-ascii?Q?i6Ks94wLYOKY4Tsnc2aCkBFai+uYGc4nGwrwDbwfiLrjfPR+yzZxC6XJVRgT?= =?us-ascii?Q?UjEDbzUVT+WGk1KkAVW9+6zcKMSs9Ezu4AyjNe3QhaSUf14ENRnVgdQXuP08?= =?us-ascii?Q?H/wsfECwVdS3p1cOO3//jD4YK6cyMfh3a+YZKzIBHrfkxiMXE9NOikEy+MCL?= =?us-ascii?Q?bBY37zuAUG1IzxBQ9e5hZAoLeoQ=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: eda872f8-e66a-4bc1-b660-08d9c0482ef0 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:31.2965 (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: IT2JAeGHMiNkHn5KV2eBldX5ZIcnFR9rm5PsbW5hLuuPstR9J3rf8kGSDN8+IsMs11ewlWPCjNtIDzIFXOI/hBGjLWFgt2N8ysykXO5rw2Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR01MB7381 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Typically, the information of the SMBIOS type 1/2/3 is fetched from an FRU device during UEFI booting intead of fixed PCDs. Therefore, this patch is to add more HII string fields in the OemMiscLib and support updating these SMBIOS types with the strings provided by the 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 = | 3 +++ ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFunctio= n.c | 12 ++++++++++++ ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerFunc= tion.c | 18 ++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/ArmPkg/Include/Library/OemMiscLib.h b/ArmPkg/Include/Library/O= emMiscLib.h index 569cd5135276..f25c8f3342a9 100644 --- a/ArmPkg/Include/Library/OemMiscLib.h +++ b/ArmPkg/Include/Library/OemMiscLib.h @@ -40,11 +40,14 @@ typedef enum { SerialNumType01,=0D UuidType01,=0D SystemManufacturerType01,=0D + VersionType01,=0D SkuNumberType01,=0D FamilyType01,=0D AssertTagType02,=0D SerialNumberType02,=0D BoardManufacturerType02,=0D + ProductNameType02,=0D + VersionType02,=0D SkuNumberType02,=0D ChassisLocationType02,=0D AssetTagType03,=0D diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufac= turerFunction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemMa= nufacturerFunction.c index 6d08a75580e7..5cf72644d0b2 100644 --- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFu= nction.c +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFu= nction.c @@ -74,12 +74,24 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscSystemManufacturer) { if (StrLen (Product) > 0) {=0D TokenToUpdate =3D STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME);=0D HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Product, NULL);=0D + } else {=0D + OemUpdateSmbiosInfo (=0D + mSmbiosMiscHiiHandle,=0D + STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME),=0D + ProductNameType01=0D + );=0D }=0D =0D pVersion =3D (CHAR16 *)PcdGetPtr (PcdSystemVersion);=0D if (StrLen (pVersion) > 0) {=0D TokenToUpdate =3D STRING_TOKEN (STR_MISC_SYSTEM_VERSION);=0D HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, pVersion, NULL);=0D + } else {=0D + OemUpdateSmbiosInfo (=0D + mSmbiosMiscHiiHandle,=0D + STRING_TOKEN (STR_MISC_SYSTEM_VERSION),=0D + VersionType01=0D + );=0D }=0D =0D OemUpdateSmbiosInfo (=0D diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManu= facturerFunction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseB= oardManufacturerFunction.c index 99ba99e913b6..870610b17243 100644 --- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacture= rFunction.c +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacture= rFunction.c @@ -77,18 +77,36 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBaseBoardManufacturer) { if (StrLen (BaseBoardManufacturer) > 0) {=0D TokenToUpdate =3D STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER);=0D HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardManufactur= er, NULL);=0D + } else {=0D + OemUpdateSmbiosInfo (=0D + mSmbiosMiscHiiHandle,=0D + STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER),=0D + BoardManufacturerType02=0D + );=0D }=0D =0D BaseBoardProductName =3D (CHAR16 *)PcdGetPtr (PcdBaseBoardProductName);= =0D if (StrLen (BaseBoardProductName) > 0) {=0D TokenToUpdate =3D STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME);=0D HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardProductNam= e, NULL);=0D + } else {=0D + OemUpdateSmbiosInfo (=0D + mSmbiosMiscHiiHandle,=0D + STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME),=0D + ProductNameType02=0D + );=0D }=0D =0D Version =3D (CHAR16 *)PcdGetPtr (PcdBaseBoardVersion);=0D if (StrLen (Version) > 0) {=0D TokenToUpdate =3D STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION);=0D HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL);=0D + } else {=0D + OemUpdateSmbiosInfo (=0D + mSmbiosMiscHiiHandle,=0D + STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION),=0D + VersionType02=0D + );=0D }=0D =0D OemUpdateSmbiosInfo (=0D --=20 2.25.1