From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (EUR04-HE1-obe.outbound.protection.outlook.com [40.107.7.53]) by mx.groups.io with SMTP id smtpd.web11.862.1611602650691880140 for ; Mon, 25 Jan 2021 11:24:11 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=1eitrnVY; spf=pass (domain: arm.com, ip: 40.107.7.53, mailfrom: samer.el-haj-mahmoud@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AHhlCuoRO9YS0uenQ7MFStsQ3odkDItGhKUpKcBU5GU=; b=1eitrnVYEQWMi5acj+ug/PaJ8ace4uHd5b7lj7nhP9oKlUe6T6Fnlapelk+2NSbveHCS6PAfWy+yq/08ToGFD5wgG1rHMJNmcPIkJDjKbgeDluuby01Kny9dOESXa7WCqmu/Y6ywmM6Qtq+gKS1dI9HVPMHxdZt2Zab6fE3KboI= Received: from DB3PR06CA0014.eurprd06.prod.outlook.com (2603:10a6:8:1::27) by AM6PR08MB5271.eurprd08.prod.outlook.com (2603:10a6:20b:ef::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12; Mon, 25 Jan 2021 19:24:07 +0000 Received: from DB5EUR03FT004.eop-EUR03.prod.protection.outlook.com (2603:10a6:8:1:cafe::c9) by DB3PR06CA0014.outlook.office365.com (2603:10a6:8:1::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12 via Frontend Transport; Mon, 25 Jan 2021 19:24:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT004.mail.protection.outlook.com (10.152.20.128) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.11 via Frontend Transport; Mon, 25 Jan 2021 19:24:07 +0000 Received: ("Tessian outbound f362b81824dc:v71"); Mon, 25 Jan 2021 19:24:07 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 14bd3cf44dae96fc X-CR-MTA-TID: 64aa7808 Received: from c4144cad1dc1.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4ADAEB70-F389-4383-ACF4-5ED50D39C943.1; Mon, 25 Jan 2021 19:24:01 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c4144cad1dc1.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 25 Jan 2021 19:24:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DJZbluStASgl1ZhjVQcuYcG0aC8p8aRyYIvJ68Bg7e5E7VkyFbNC9cm77b7FXnfirTRPZXYNaxrzltT4XHlf+38SEsmYTXEJowNavYwtCLdNeDjYsAWOEYMgRWxFCKVHrFb2mxkxPLrzDWsBgxz4YDurIjpDbdMgu3g9CpBxMEz6uwUMI9GuEdmQ1fwjaerDFeh5GSv6Z6Xz3oce22ciHgdN7Lb6IgRzgI5I7O8DoRfttsqpExi/wL/2/66h/35zmgYG6VZlvDhN4K+6mTN1XKD07746FJjxUucknzaUwRWZnuZEZDwS7huprBBcWT/qqebk+RUaB+6LhwPgi/2yEQ== 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-SenderADCheck; bh=AHhlCuoRO9YS0uenQ7MFStsQ3odkDItGhKUpKcBU5GU=; b=LaryCTGksMhIC5AT50SGyH1cB9wu2KfYEjLkPZ59iaLpQK6FiBlHiFvYQHq418JgiRdzKUNhhNzycfaYwfm9ZtHd7sGJnG3d9mKs+4+8jTkV0Nufi1MeJLbr0k9JsU4ASrN/+SPi+v8rdoI4adPzXkdXEyTr1L2Rf27Tw4n3zNzKs92OwNZonYaMk3SXeEJlOaA02aAKf1gvEr44uN2GJuaSFLFfFUOlT3nFDUTn6AS/6LLNvbphOQ6+8vLvn6kfU5klbXSDaCR+NQomr+EVqUPC4y8R6f2Zqhpde11nElod82//VOiGNuqsqsouAezUWbvKnJAXmpMkR8jUL1EaSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AHhlCuoRO9YS0uenQ7MFStsQ3odkDItGhKUpKcBU5GU=; b=1eitrnVYEQWMi5acj+ug/PaJ8ace4uHd5b7lj7nhP9oKlUe6T6Fnlapelk+2NSbveHCS6PAfWy+yq/08ToGFD5wgG1rHMJNmcPIkJDjKbgeDluuby01Kny9dOESXa7WCqmu/Y6ywmM6Qtq+gKS1dI9HVPMHxdZt2Zab6fE3KboI= Received: from DB7PR08MB3260.eurprd08.prod.outlook.com (2603:10a6:5:21::23) by DB8PR08MB5369.eurprd08.prod.outlook.com (2603:10a6:10:11c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12; Mon, 25 Jan 2021 19:23:59 +0000 Received: from DB7PR08MB3260.eurprd08.prod.outlook.com ([fe80::a1f1:ccfd:b17f:a490]) by DB7PR08MB3260.eurprd08.prod.outlook.com ([fe80::a1f1:ccfd:b17f:a490%5]) with mapi id 15.20.3784.016; Mon, 25 Jan 2021 19:23:59 +0000 From: "Samer El-Haj-Mahmoud" To: "devel@edk2.groups.io" , "rebecca@nuviainc.com" CC: Leif Lindholm , Ard Biesheuvel , nd , Sami Mujawar , Liming Gao , Michael D Kinney , Zhiguang Liu Subject: Re: [edk2-devel] [PATCH v6 22/22] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe Thread-Topic: [edk2-devel] [PATCH v6 22/22] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe Thread-Index: AQHW6pUqcn+feCoFPkuMgzX3FT7A8Ko4yY8Q Date: Mon, 25 Jan 2021 19:23:59 +0000 Message-ID: References: <20210114163628.31952-1-rebecca@nuviainc.com> <20210114163628.31952-23-rebecca@nuviainc.com> In-Reply-To: <20210114163628.31952-23-rebecca@nuviainc.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; x-originating-ip: [99.132.126.10] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7e9ea3f9-292e-4953-3dfb-08d8c166c8e5 x-ms-traffictypediagnostic: DB8PR08MB5369:|AM6PR08MB5271: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:1468;OLM:1468; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: LdmV0YmqxKyKA62agKtLhXvVdGyUgz81im83Rze2fKHG1MUXP3uIcoIZmvybct/IfWyV/HSsxUhvPvMH1MLOYBmI6S1INxYLouNsW4HMijmfHLrfynKhihE6O3RRtDE7PDwoHDPLpJexargYX/2XUWKQIvOF+ePc22ZR7FS3X2qBF/MhDSg2ZwkvAVaZ9HzEPCLu9EERltApugKF76nPJljB1AXZHcjxpT9703Pi0v4Irhrybb0Gd2fEyqSiVWJgck1ToHWGDnRXeVhR8gwpAbzV5/ImHj/+0dGlO4BzTv41Zw9fCvp70faP64XrMUdalyqoMaj403th/B5gY9fsA7l31IhLj0XxaAI+swHS44SbklBBjDnVzUGPyvWi+swwSHctLTh5qrwCDSdRAGcR5T0cojeMXI7tTvWXtdbCc/GU5BvlbNFuEwiN9KnJvpcxvzwV4c36VLc564wS9kU1NYjV+EJg1F0QhwvWIT+ZCH2Lru+1TFLUE19VAGa4G/liEVn5AoJKMEhRm0giCfc1r6/FmjNq6DucOn6XDUo84dTby4lUfLESaadj6xPwYIzs60+UT/Q5qdtAsnhE4XLq1Jh4Bd7bJWhCkEOpiWaibJs= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB3260.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(346002)(136003)(376002)(396003)(39860400002)(53546011)(6506007)(45954011)(54906003)(52536014)(110136005)(316002)(7696005)(33656002)(9686003)(64756008)(76116006)(66946007)(66446008)(66556008)(66476007)(71200400001)(4326008)(966005)(26005)(2906002)(86362001)(186003)(30864003)(83380400001)(5660300002)(478600001)(55016002)(8676002)(19627235002)(8936002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?PUQk+c5l7XosYa5NHrEg160mouyrFVIF729TjL+c2TiW3cEPB8mszygM5JbB?= =?us-ascii?Q?3N7HbJpH55AhA8j+awMic5pmwryLSMskVjlSSZIBzmIq+eXeIN7QAlqfLhxT?= =?us-ascii?Q?PkXjjkeFUetaHLLT2osz6dxvGXffZDROvu/Z6kSYviZDL6AZ5bHMdEsd1SGI?= =?us-ascii?Q?lvqvmofyFNvj0/FFnU4jpLYgOyzpbPoIf3lQOPL/p+/ZaprEgAR6ME1mtoD9?= =?us-ascii?Q?cvP4NWUZx2Ko3PXh72uczr6FLE3CIvB1a4f/VhTG18Ie9oKB/JwztNUFFLvr?= =?us-ascii?Q?cbLBP43ETiJXKB74Z0FPGKa383vYgugMFraxffoLzKnh0hrrwobxDb6/HRfe?= =?us-ascii?Q?+4sHy6BzbpQRVLSRtozonCWJgFdMveNCsyUU4FN5OZNtu6VAhCI03s54z/3M?= =?us-ascii?Q?aunypkjoWVc6rtMZKS6xZ5MB2XAZOlY3MKmlNYXvjKbuPzOrll/AcslL0JS6?= =?us-ascii?Q?XvpRVPUB5HPhwrdwGcRYRLqQbhBpaXsI9HhGq+CruxRLqN7T6i2yIHQtg50V?= =?us-ascii?Q?cSHZYRA7e3S4xUGh2OaygmvBHZ/E613d4fhnNIYM1Bqirj8SsqyJO7saOzmz?= =?us-ascii?Q?sundX7OHxBVOsfWrU1Gis0ong3yz2jA8DXJeYVf5SmOSbR2/Lge7uYTeCxPm?= =?us-ascii?Q?0kj5QcL+DApBPJtl2tcwjaZ3Ng3mSArUkTcaJn7UUB/rS5JsBWGPOVE/mxIC?= =?us-ascii?Q?++hwicVhi/zxbZNCT3JOkkkD3nd+thoxqECqjl6z+rfS1s1NX+eKH3/wkBuz?= =?us-ascii?Q?oqD2IUc64k4vjeZxBLKaLl84to0jES8BgG8L8u8FAUWKhg+EvEhHyI20XfOB?= =?us-ascii?Q?rw2VQgWcIEMpJsjd7OSLYFfvAW7dhEG7abJXCreW7TP9EIW01UPdj6jeAzYR?= =?us-ascii?Q?gt5Xdth+uE1rOKL5xI6p756s4XgTgB4RebiG7VKEV/uEG8bIBLQ0KDMKMnLH?= =?us-ascii?Q?9K7LPUJnl3jOEdW9uLNL62Ov4onbDwZohdyH6ypzj8WeKCuKLDdZ6AEYRYKN?= =?us-ascii?Q?rlukBkRjO63WW6MxaX0nsI9Vji/msQgZuaDnDKbxF+OU1+PbVkA3aGLHyhaQ?= =?us-ascii?Q?qmZL0TtF?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5369 Original-Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; Return-Path: Samer.El-Haj-Mahmoud@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT004.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 74261554-d08a-42ae-1277-08d8c166c45e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RVUY+64kDnb0KqzHh7dMdceX+GxXlIa4nE/QaMDMtuFIoWImOqGguaxT1GcS1ZFUIoUL9dWlehaeiKJqXxxWQRGl5na1uLvwk651pZi7nlLCi4sJjNPVGBtJ1tgLb+n7X2CDlOyAsBwVqTrg0DTAANTonNppyHINA4ul21ophNwQciNFQBZTT7yxYqP9xRJJhjZBFH0Yj/WDdyd6Bm5Yfw5VmpzKpe3f8Vld/r02fpaj52vMaSF60Suxx25spZrgdql4cGMcgGH9J/TQDe3FC+92Va87jhYg8xKL1LAxuxDPc2q2ETJNOqGiGbtrS96Mg1yLxEV8MtoE/ZtRJfJ55S5VejoHWblhfOT2KuoTx863G1fk+t+8Ij6mLnyvrXCsBEfJSnhM95Tv8oV542Gc7xTldT3H0qBLPlGiZtmrMS0TYub/2NZ2D39nazDyzC2zimWzROseuYEkawBtkpt0tm5HLDOVKn+wTh7++NzlT7aD0WskPqIdX5bBp2qxm0kxM4A9Lg2srkUtJMctFA2f/JRXTfZ0DMdCUWzm08HPy10= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(346002)(376002)(136003)(396003)(39860400002)(46966006)(52536014)(54906003)(110136005)(47076005)(6506007)(186003)(107886003)(82310400003)(45954011)(53546011)(26005)(336012)(30864003)(5660300002)(82740400003)(8936002)(4326008)(7696005)(19627235002)(86362001)(316002)(55016002)(81166007)(33656002)(356005)(9686003)(70206006)(966005)(70586007)(478600001)(2906002)(8676002)(83380400001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2021 19:24:07.4136 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7e9ea3f9-292e-4953-3dfb-08d8c166c8e5 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT004.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB5271 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable I thought I reviewed this but maybe I forgot to send RB: Reviewed-by: Samer El-Haj-Mahmoud > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Rebecca > Cran via groups.io > Sent: Thursday, January 14, 2021 11:36 AM > To: devel@edk2.groups.io > Cc: Rebecca Cran ; Leif Lindholm > ; Ard Biesheuvel ; nd > ; Sami Mujawar ; Liming Gao > ; Michael D Kinney > ; Zhiguang Liu > Subject: [edk2-devel] [PATCH v6 22/22] ArmPkg: Add > Universal/Smbios/SmbiosMiscDxe >=20 > SmbiosMiscDxe provides SMBIOS tables 0, 1, 2, 3, 13, and 32. >=20 > Signed-off-by: Rebecca Cran > --- > ArmPkg/ArmPkg.dsc | 1 + > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf | 89 > ++++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMisc.h | 134 > ++++++++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDataTable.c | 62 > ++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c | 227 > ++++++++++++++++++++ > ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxeStrings.uni | 22 > ++ > 6 files changed, 535 insertions(+) >=20 > diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc index > fce86cb6d710..7194eb2d3c44 100644 > --- a/ArmPkg/ArmPkg.dsc > +++ b/ArmPkg/ArmPkg.dsc > @@ -149,6 +149,7 @@ [Components.common] > ArmPkg/Drivers/ArmScmiDxe/ArmScmiDxe.inf >=20 >=20 > ArmPkg/Universal/Smbios/ProcessorSubClassDxe/ProcessorSubClassDxe.inf > + ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf >=20 > [Components.AARCH64] > ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf > diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf > b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf > new file mode 100644 > index 000000000000..60d8fe31c219 > --- /dev/null > +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf > @@ -0,0 +1,89 @@ > +#/** @file > +# Component description file for SmbiosMisc instance. > +# > +# Parses the MiscSubclassDataTable and reports any generated data to th= e > DataHub. > +# All .uni file who tagged with "ToolCode=3D"DUMMY"" in following file > +list is included by # MiscSubclassDriver.uni file, the StrGather tool > +will expand MiscSubclassDriver.uni file # and parse all .uni file. > +# > +# Copyright (c) 2021, NUVIA Inc. All rights reserved.
# Copyright > +(c) 2006 - 2010, Intel Corporation. All rights reserved.
# > +Copyright (c) 2015, Hisilicon Limited. All rights reserved.
# > +Copyright (c) 2015, Linaro Limited. All rights reserved.
# # > +SPDX-License-Identifier: BSD-2-Clause-Patent # # # Based on files under > +Nt32Pkg/MiscSubClassPlatformDxe/ #**/ > + > + > +[Defines] > + INF_VERSION =3D 1.29 > + BASE_NAME =3D SmbiosMiscDxe > + FILE_GUID =3D 7e5e26d4-0be9-401f-b5e1-1c2bda7ca7= 77 > + MODULE_TYPE =3D DXE_DRIVER > + VERSION_STRING =3D 1.0 > + ENTRY_POINT =3D SmbiosMiscEntryPoint > + > +[Sources] > + SmbiosMisc.h > + SmbiosMiscDataTable.c > + SmbiosMiscEntryPoint.c > + SmbiosMiscDxeStrings.uni > + Type00/MiscBiosVendorData.c > + Type00/MiscBiosVendorFunction.c > + Type01/MiscSystemManufacturerData.c > + Type01/MiscSystemManufacturerFunction.c > + Type02/MiscBaseBoardManufacturerData.c > + Type02/MiscBaseBoardManufacturerFunction.c > + Type03/MiscChassisManufacturerData.c > + Type03/MiscChassisManufacturerFunction.c > + Type13/MiscNumberOfInstallableLanguagesData.c > + Type13/MiscNumberOfInstallableLanguagesFunction.c > + Type32/MiscBootInformationData.c > + Type32/MiscBootInformationFunction.c > + > +[Packages] > + ArmPkg/ArmPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MdePkg/MdePkg.dec > + > +[LibraryClasses] > + BaseLib > + BaseMemoryLib > + DebugLib > + DevicePathLib > + PcdLib > + HiiLib > + HobLib > + MemoryAllocationLib > + OemMiscLib > + UefiBootServicesTableLib > + UefiDriverEntryPoint > + UefiLib > + UefiRuntimeServicesTableLib > + > +[Protocols] > + gEfiSmbiosProtocolGuid # PROTOCOL ALWAYS_CONSUM= ED > + > +[Pcd] > + gArmTokenSpaceGuid.PcdFdSize > + gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor > + gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString > + gArmTokenSpaceGuid.PcdSystemBiosRelease > + gArmTokenSpaceGuid.PcdEmbeddedControllerFirmwareRelease > + gArmTokenSpaceGuid.PcdSystemProductName > + gArmTokenSpaceGuid.PcdSystemVersion > + gArmTokenSpaceGuid.PcdBaseBoardManufacturer > + gArmTokenSpaceGuid.PcdBaseBoardProductName > + gArmTokenSpaceGuid.PcdBaseBoardVersion > + gArmTokenSpaceGuid.PcdFdBaseAddress > + > +[Guids] > + gEfiGenericVariableGuid > + > +[Depex] > + gEfiSmbiosProtocolGuid > + > + > diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMisc.h > b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMisc.h > new file mode 100644 > index 000000000000..4fd37c4cdc0b > --- /dev/null > +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMisc.h > @@ -0,0 +1,134 @@ > +/** @file > + Header file for the SmbiosMisc Driver. > + > + Based on files under Nt32Pkg/MiscSubClassPlatformDxe/ > + > + Copyright (c) 2021, NUVIA Inc. All rights reserved.
Copyright > + (c) 2006 - 2011, Intel Corporation. All rights reserved.
> + Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> + Copyright (c) 2015, Linaro Limited. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef SMBIOS_MISC_H_ > +#define SMBIOS_MISC_H_ > + > +#include > +#include > + > +// > +// Data table entry update function. > +// > +typedef EFI_STATUS (EFIAPI SMBIOS_MISC_DATA_FUNCTION) ( > + IN VOID *RecordData, > + IN EFI_SMBIOS_PROTOCOL *Smbios > + ); > + > + > +// > +// Data table entry definition. > +// > +typedef struct { > + // > + // intermediate input data for SMBIOS record > + // > + VOID *RecordData; > + SMBIOS_MISC_DATA_FUNCTION *Function; > +} SMBIOS_MISC_DATA_TABLE; > + > + > +// > +// SMBIOS table extern definitions > +// > +#define SMBIOS_MISC_TABLE_EXTERNS(NAME1, NAME2, NAME3) \ extern > NAME1 > +NAME2 ## Data; \ extern SMBIOS_MISC_DATA_FUNCTION NAME3 ## > Function; > + > + > +// > +// SMBIOS data table entries > +// > +// This is used to define a pair of table structure pointer and > +functions // in order to iterate through the list of tables, populate > +them and add // them into the system. > +#define SMBIOS_MISC_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, > NAME2) \ { \ > + & NAME1 ## Data, \ > + NAME2 ## Function \ > +} > + > +// > +// Global definition macros. > +// > +#define SMBIOS_MISC_TABLE_DATA(NAME1, NAME2) \ > + NAME1 NAME2 ## Data > + > +#define SMBIOS_MISC_TABLE_FUNCTION(NAME2) \ > + EFI_STATUS EFIAPI NAME2 ## Function( \ > + IN VOID *RecordData, \ > + IN EFI_SMBIOS_PROTOCOL *Smbios \ > + ) > + > +// > +// Data Table Array Entries > +// > +extern EFI_HII_HANDLE mSmbiosMiscHiiHandle; > + > +typedef struct > _SMBIOS_TYPE13_BIOS_LANGUAGE_INFORMATION_STRING{ > + UINT8 *LanguageSignature; > + EFI_STRING_ID InstallableLanguageLongString; > + EFI_STRING_ID InstallableLanguageAbbreviateStri= ng; > +} SMBIOS_TYPE13_BIOS_LANGUAGE_INFORMATION_STRING; > + > + > +/** > + Adds an SMBIOS record. > + > + @param Buffer The data for the SMBIOS record. > + The format of the record is determined by > + EFI_SMBIOS_TABLE_HEADER.Type. The size of the > + formatted area is defined by > EFI_SMBIOS_TABLE_HEADER.Length > + and either followed by a double-null (0x0000) o= r a set > + of null terminated strings and a null. > + @param SmbiosHandle A unique handle will be assigned to the SMBIOS > record > + if not NULL. > + > + @retval EFI_SUCCESS Record was added. > + @retval EFI_OUT_OF_RESOURCES Record was not added due to lack of > system resources. > + @retval EFI_ALREADY_STARTED The SmbiosHandle passed in was already > in use. > + > +**/ > +EFI_STATUS > +SmbiosMiscAddRecord ( > + IN UINT8 *Buffer, > + IN OUT EFI_SMBIOS_HANDLE *SmbiosHandle OPTIONAL > + ); > + > +/** > + Get Link Type Handle. > + > + @param [in] SmbiosType Get this Type from SMBIOS table > + @param [out] HandleArray Pointer to handle array which will be fre= ed by > caller > + @param [out] HandleCount Pointer to handle count > + > +**/ > +VOID > +SmbiosMiscGetLinkTypeHandle( > + IN UINT8 SmbiosType, > + OUT UINT16 **HandleArray, > + OUT UINTN *HandleCount > + ); > + > +// > +// Data Table Array > +// > +extern SMBIOS_MISC_DATA_TABLE mSmbiosMiscDataTable[]; > + > +// > +// Data Table Array Entries > +// > +extern UINTN mSmbiosMiscDataTableEntries; > +extern UINT8 mSmbiosMiscDxeStrings[]; > + > +#endif // SMBIOS_MISC_H_ > diff --git > a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDataTable.c > b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDataTable.c > new file mode 100644 > index 000000000000..ac16c3a2688e > --- /dev/null > +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDataTable.c > @@ -0,0 +1,62 @@ > +/** @file > + This file provides SMBIOS Misc Type. > + > + Based on files under Nt32Pkg/MiscSubClassPlatformDxe/ > + > + Copyright (c) 2021, NUVIA Inc. All rights reserved.
Copyright > + (c) 2006 - 2011, Intel Corporation. All rights reserved.
> + Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> + Copyright (c) 2015, Linaro Limited. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent\ > + > +**/ > + > +#include "SmbiosMisc.h" > + > +SMBIOS_MISC_TABLE_EXTERNS (SMBIOS_TABLE_TYPE0, > + MiscBiosVendor, > + MiscBiosVendor) SMBIOS_MISC_TABLE_EXTERNS > +(SMBIOS_TABLE_TYPE1, > + MiscSystemManufacturer, > + MiscSystemManufacturer) > +SMBIOS_MISC_TABLE_EXTERNS (SMBIOS_TABLE_TYPE3, > + MiscChassisManufacturer, > + MiscChassisManufacturer) > +SMBIOS_MISC_TABLE_EXTERNS (SMBIOS_TABLE_TYPE2, > + MiscBaseBoardManufacturer, > + MiscBaseBoardManufacturer) > +SMBIOS_MISC_TABLE_EXTERNS (SMBIOS_TABLE_TYPE13, > + MiscNumberOfInstallableLanguages, > + MiscNumberOfInstallableLanguages) > +SMBIOS_MISC_TABLE_EXTERNS (SMBIOS_TABLE_TYPE32, > + MiscBootInformation, > + MiscBootInformation) > + > + > +SMBIOS_MISC_DATA_TABLE mSmbiosMiscDataTable[] =3D { > + // Type0 > + SMBIOS_MISC_TABLE_ENTRY_DATA_AND_FUNCTION (MiscBiosVendor, > + MiscBiosVendor), > + // Type1 > + SMBIOS_MISC_TABLE_ENTRY_DATA_AND_FUNCTION > (MiscSystemManufacturer, > + MiscSystemManufacturer), > + // Type3 > + SMBIOS_MISC_TABLE_ENTRY_DATA_AND_FUNCTION > (MiscChassisManufacturer, > + MiscChassisManufacturer), > + // Type2 > + SMBIOS_MISC_TABLE_ENTRY_DATA_AND_FUNCTION > (MiscBaseBoardManufacturer, > + > +MiscBaseBoardManufacturer), > + // Type13 > + SMBIOS_MISC_TABLE_ENTRY_DATA_AND_FUNCTION > (MiscNumberOfInstallableLanguages, > + > +MiscNumberOfInstallableLanguages), > + // Type32 > + SMBIOS_MISC_TABLE_ENTRY_DATA_AND_FUNCTION > (MiscBootInformation, > + MiscBootInformation), }; > + > + > +// > +// Number of Data Table entries. > +// > +UINTN mSmbiosMiscDataTableEntries =3D > + (sizeof (mSmbiosMiscDataTable)) / sizeof (SMBIOS_MISC_DATA_TABLE); > diff --git > a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c > b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c > new file mode 100644 > index 000000000000..37e79d285e57 > --- /dev/null > +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscEntryPoint.c > @@ -0,0 +1,227 @@ > +/** @file > + This driver parses the mSmbiosMiscDataTable structure and reports > + any generated data using SMBIOS protocol. > + > + Based on files under Nt32Pkg/MiscSubClassPlatformDxe/ > + > + Copyright (c) 2021, NUVIA Inc. All rights reserved.
Copyright > + (c) 2006 - 2011, Intel Corporation. All rights reserved.
> + Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> + Copyright (c) 2015, Linaro Limited. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include > +#include > +#include > +#include > +#include #include > + > + > +#include "SmbiosMisc.h" > + > + > +STATIC EFI_HANDLE mSmbiosMiscImageHandle; > +STATIC EFI_SMBIOS_PROTOCOL *mSmbiosMiscSmbios =3D NULL; > + > +EFI_HII_HANDLE mSmbiosMiscHiiHandle; > + > +/** > + Standard EFI driver point. This driver parses the > +mSmbiosMiscDataTable > + structure and reports any generated data using SMBIOS protocol. > + > + @param ImageHandle Handle for the image of this driver > + @param SystemTable Pointer to the EFI System Table > + > + @retval EFI_SUCCESS The data was successfully stored. > + > +**/ > +EFI_STATUS > +EFIAPI > +SmbiosMiscEntryPoint( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ) > +{ > + UINTN Index; > + EFI_STATUS EfiStatus; > + > + mSmbiosMiscImageHandle =3D ImageHandle; > + > + EfiStatus =3D gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, > + (VOID**)&mSmbiosMiscSmbios); if > + (EFI_ERROR (EfiStatus)) { > + DEBUG ((DEBUG_ERROR, "Could not locate SMBIOS protocol. %r\n", > EfiStatus)); > + return EfiStatus; > + } > + > + mSmbiosMiscHiiHandle =3D HiiAddPackages ( > + &gEfiCallerIdGuid, > + mSmbiosMiscImageHandle, > + SmbiosMiscDxeStrings, > + NULL > + ); > + if (mSmbiosMiscHiiHandle =3D=3D NULL) { > + return EFI_OUT_OF_RESOURCES; > + } > + > + for (Index =3D 0; Index < mSmbiosMiscDataTableEntries; ++Index) { > + // > + // If the entry have a function pointer, just log the data. > + // > + if (mSmbiosMiscDataTable[Index].Function !=3D NULL) { > + EfiStatus =3D (*mSmbiosMiscDataTable[Index].Function)( > + mSmbiosMiscDataTable[Index].RecordData, > + mSmbiosMiscSmbios > + ); > + > + if (EFI_ERROR(EfiStatus)) { > + DEBUG ((DEBUG_ERROR, "Misc smbios store error. Index=3D%d," > + "ReturnStatus=3D%r\n", Index, EfiStatus)); > + return EfiStatus; > + } > + } > + } > + > + return EfiStatus; > +} > + > + > +/** > + Adds an SMBIOS record. > + > + @param Buffer The data for the SMBIOS record. > + The format of the record is determined by > + EFI_SMBIOS_TABLE_HEADER.Type. The size of the > + formatted area is defined by > EFI_SMBIOS_TABLE_HEADER.Length > + and either followed by a double-null (0x0000) o= r a set > + of null terminated strings and a null. > + @param SmbiosHandle A unique handle will be assigned to the SMBIOS > record > + if not NULL. > + > + @retval EFI_SUCCESS Record was added. > + @retval EFI_OUT_OF_RESOURCES Record was not added due to lack of > system resources. > + @retval EFI_ALREADY_STARTED The SmbiosHandle passed in was already > in use. > + > +**/ > +EFI_STATUS > +SmbiosMiscAddRecord ( > + IN UINT8 *Buffer, > + IN OUT EFI_SMBIOS_HANDLE *SmbiosHandle OPTIONAL > + ) > +{ > + EFI_STATUS Status; > + EFI_SMBIOS_HANDLE Handle; > + > + Handle =3D SMBIOS_HANDLE_PI_RESERVED; > + > + if (SmbiosHandle !=3D NULL) { > + Handle =3D *SmbiosHandle; > + } > + > + Status =3D mSmbiosMiscSmbios->Add ( > + mSmbiosMiscSmbios, > + NULL, > + &Handle, > + (EFI_SMBIOS_TABLE_HEADER *)Buffer > + ); > + > + if (SmbiosHandle !=3D NULL) { > + *SmbiosHandle =3D Handle; > + } > + > + return Status; > +} > + > + > +/** Fetches the number of handles of the specified SMBIOS type > + * > + * @param SmbiosType The type of SMBIOS record to look for > + * > + * @return The number of handles > + * > +**/ > +STATIC > +UINTN > +GetHandleCount ( > + IN UINT8 SmbiosType > + ) > +{ > + UINTN HandleCount; > + EFI_STATUS Status; > + EFI_SMBIOS_HANDLE SmbiosHandle; > + EFI_SMBIOS_TABLE_HEADER *Record; > + > + HandleCount =3D 0; > + > + // Iterate through entries to get the number do { > + Status =3D mSmbiosMiscSmbios->GetNext ( > + mSmbiosMiscSmbios, > + &SmbiosHandle, > + &SmbiosType, > + &Record, > + NULL > + ); > + > + if (Status =3D=3D EFI_SUCCESS) { > + HandleCount++; > + } > + } while (!EFI_ERROR (Status)); > + > + return HandleCount; > +} > + > +/** > + Fetches a list of the specified SMBIOS table types. > + > + @param[in] SmbiosType The type of table to fetch > + @param[out] **HandleArray The array of handles > + @param[out] *HandleCount Number of handles in the array **/ VOID > +SmbiosMiscGetLinkTypeHandle( > + IN UINT8 SmbiosType, > + OUT SMBIOS_HANDLE **HandleArray, > + OUT UINTN *HandleCount > + ) > +{ > + UINTN Index; > + EFI_STATUS Status; > + EFI_SMBIOS_HANDLE SmbiosHandle; > + EFI_SMBIOS_TABLE_HEADER *Record; > + > + if (mSmbiosMiscSmbios =3D=3D NULL) { > + return; > + } > + > + SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; *HandleCount =3D > + GetHandleCount (SmbiosType); > + > + *HandleArray =3D AllocateZeroPool (sizeof (SMBIOS_HANDLE) * > + (*HandleCount)); if (*HandleArray =3D=3D NULL) { > + DEBUG ((DEBUG_ERROR, "HandleArray allocate memory resource > failed.\n")); > + *HandleCount =3D 0; > + return; > + } > + > + SmbiosHandle =3D SMBIOS_HANDLE_PI_RESERVED; > + > + for (Index =3D 0; Index < (*HandleCount); Index++) { > + Status =3D mSmbiosMiscSmbios->GetNext ( > + mSmbiosMiscSmbios, > + &SmbiosHandle, > + &SmbiosType, > + &Record, > + NULL > + ); > + > + if (!EFI_ERROR (Status)) { > + (*HandleArray)[Index] =3D Record->Handle; > + } else { > + break; > + } > + } > +} > + > diff --git > a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxeStrings.uni > b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxeStrings.uni > new file mode 100644 > index 000000000000..6f877e706922 > --- /dev/null > +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxeStrings.uni > @@ -0,0 +1,22 @@ > +/** @file > + * Based on files under Nt32Pkg/MiscSubClassPlatformDxe/ > + * > + * Copyright (c) 2021, NUVIA Inc. All rights reserved.
> + * Copyright (c) 2006 - 2010, Intel Corporation. All rights > +reserved.
> + * Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> + * Copyright (c) 2015, Linaro Limited. All rights reserved.
> + * SPDX-License-Identifier: BSD-2-Clause-Patent > + * > + * > +**/ > + > + > +/=3D# > + > +#langdef en-US "English" > + > +#include "Type00/MiscBiosVendor.uni" > +#include "Type01/MiscSystemManufacturer.uni" > +#include "Type02/MiscBaseBoardManufacturer.uni" > +#include "Type03/MiscChassisManufacturer.uni" > +#include "Type13/MiscNumberOfInstallableLanguages.uni" > -- > 2.26.2 >=20 >=20 >=20 >=20 >=20