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.43]) by mx.groups.io with SMTP id smtpd.web12.6402.1595281983769844822 for ; Mon, 20 Jul 2020 14:53:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@vmware.com header.s=selector2 header.b=EAFdy2Wi; spf=pass (domain: vmware.com, ip: 40.107.220.43, mailfrom: awarkentin@vmware.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zs8odrSrvdXiQfPSoqeROV4ozBvvD33EH7YwihX90ab5QNY5BUhCsCy1b2oU6nnrF9Sx0pcZb7qO7EllYbQmUmxyrsGiZfVI8wCLKcuMOl+U5tS+jbhqNjqhNQ8D0tBLImRKX3vYYnC7r0SvFubYf3N6aCI0OIxJubDa10jba2lExGT810okbXdDH5yutZhOzIcaHyf+59vNu8NUA9FTmbLiKrme2zj8qDxd8dgB56I2SG/E9ZHWZU3LDwUiHaqzyCTwtg35+Vso5YYzrSIJsKFxVVzxpSy8HXKboUxWjCbaRlBl71Rh6IxAVvKlh0jdgaQZXHE+9rM4mw5pn2xIwA== 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=W30FF52unSP0qIOSDKpl+mS66AtNpyuCPDpvVqy46WE=; b=VSCLxYO1YrNU3XRtfDYpecILswTEPsHHPaIXcm6O0taByxaGTjQAsKVj4QcmGvJPb8gz5I1c5kOL8ZeB7pryNzJqiFsTVCVU2dHdjE1eaAGFto1kDz2cSr5Wu+UVKJutfX/GQa72pNCGV15bGr9TF3JkHhpY8cK1y5B74LUozrU2QZ+U5NevjayJbPRp2oObZrvnwniQNn5ZEoF460mNng7Td4h5xQ2FlvZX9Z1GzkAW2kaLcmiTZN0qM6CgecUwNehFsY9r8c/YMfUJT9rVE/oyIbm54dLm1wWt2+utrbrVdxh1MIctfjSGx32YPtJRzal0PZXHUscS336TwWztoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W30FF52unSP0qIOSDKpl+mS66AtNpyuCPDpvVqy46WE=; b=EAFdy2WivC1Ffk4Ma0GJooLdmoq/lWW7Wz2OBmuc9KbqGWg8h8rcwkA4UOyKiUeRwnDjc+SmyyI40FFLqw6PRkjVLQC74469ZpCKgkq/dGpx/7qoYIOqpqtUjFii7aCA0J6E7NLZOXmKAmVa73hQpP6AKzKm1i4pJ7fJv6zd9uA= Received: from BN6PR05MB3411.namprd05.prod.outlook.com (2603:10b6:405:43::23) by BN7PR05MB4545.namprd05.prod.outlook.com (2603:10b6:406:fa::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.17; Mon, 20 Jul 2020 21:53:02 +0000 Received: from BN6PR05MB3411.namprd05.prod.outlook.com ([fe80::e1ef:31eb:c802:aef0]) by BN6PR05MB3411.namprd05.prod.outlook.com ([fe80::e1ef:31eb:c802:aef0%3]) with mapi id 15.20.3216.017; Mon, 20 Jul 2020 21:53:02 +0000 From: "Andrei Warkentin" To: Samer El-Haj-Mahmoud , "devel@edk2.groups.io" CC: Leif Lindholm , Pete Batard , Ard Biesheuvel Subject: Re: [edk2-platform][PATCH v1 2/7] Platforms/RaspberryPi: SMBIOS Type 2 and Type 3 fixes Thread-Topic: [edk2-platform][PATCH v1 2/7] Platforms/RaspberryPi: SMBIOS Type 2 and Type 3 fixes Thread-Index: AQHWXsH0JP5ujurvGkuZjysOYBDzS6kRAr0Y Date: Mon, 20 Jul 2020 21:53:02 +0000 Message-ID: References: <20200720181646.2891-1-Samer.El-Haj-Mahmoud@arm.com>,<20200720181646.2891-3-Samer.El-Haj-Mahmoud@arm.com> In-Reply-To: <20200720181646.2891-3-Samer.El-Haj-Mahmoud@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=vmware.com; x-originating-ip: [98.214.99.181] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 39ac3b5b-d875-4f7c-228e-08d82cf7467e x-ms-traffictypediagnostic: BN7PR05MB4545: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KYJ/q9cxx9l8Pjp4y+H8eQ+P8A5VbQS1xg1BDPzSRtmQIeb9HjIUpV32agXyjx87WVGSG9vPDqoKQLKL9Mlf0MbwQEgQZM2BYzPa/7xY9F0pQVvy6QmEaE0d2Q5sWCBJWik2njuxMiJ+GoP7GNPBqLnYbra+IT/Mz5uK+bGIHAn4U4REcc2RX/T9Dhp1tv3gONAjzJel/rqXWRgsTvlRWJuo+lLnhu6gV/hMVL9Nxp2OaafborHd7aB8fXI1tqaxdA66B9+D3cSDjcDJBhLuL+8oMdIVsGF130cV5rjREh/zOMpiXMTgskhcNZQhqtAgQujnrxpjVbbOjlXZ6JUl8g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR05MB3411.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(136003)(376002)(346002)(366004)(39860400002)(8936002)(316002)(71200400001)(4326008)(186003)(478600001)(52536014)(110136005)(2906002)(54906003)(26005)(19627235002)(19627405001)(8676002)(64756008)(66556008)(66476007)(66946007)(76116006)(53546011)(7696005)(33656002)(6506007)(83380400001)(55016002)(5660300002)(9686003)(86362001)(66446008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: Mxlp5E9IA+kREUb9+rC6rlgXSQvxOEykgJDJFqC7vWmCjd/KE7CTAmHIfu0fJSUwON5kLVnZ/yVRq7tRsbXAa757tHThW4H3+Cj7y7mPfhrXphul0u53am8dcts8UTbVqgnQK+Ge1pW+aR4R1xPAHYQ4YyIPeaag/vfhpOlsxxZ3WmKusxXuQqGgTdp/zJUuJgFY6o8dsCXmOF3hOkaGuPetA0FUAFVjcrDZ4K4fTWrPEQ348b31SSLr6Q80RPExwTxcuWBD/2OpQyw1+lap8PiWZeHuHPfTfvgvfDLpiNj3tRDh6jdsB+gIvEGHHjNzyLzKZK1ABhimSPo8KRJLpj+5HQh3PTNblUb6KInI9prJIh33APRVx/XGBbCLpAbyVnyvfxEFTmFvy2SkKdErxncN1hbS3e7p+gjirsMbwHhkmd3+V/ilUeAAb2ccF14C2ewuKijCSNEnUug8azrrAN2Gk2TgZG9Enu4hnjjZxkWIpCPlifeZezP4GOf45g+K x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR05MB3411.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39ac3b5b-d875-4f7c-228e-08d82cf7467e X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jul 2020 21:53:02.3301 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5AU0helQ7z0NQ5wyXMuVkw4hFnc2kzuEwQk6ts7xDUL6TXcnUif+QKnvTNkt0KbVY6AVWLkYsGFuzBlC3fZ/uQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR05MB4545 Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_BN6PR05MB3411133E7FB5F32BC83A3446B97B0BN6PR05MB3411namp_" --_000_BN6PR05MB3411133E7FB5F32BC83A3446B97B0BN6PR05MB3411namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Andrei Warkentin ________________________________ From: Samer El-Haj-Mahmoud Sent: Monday, July 20, 2020 1:16 PM To: devel@edk2.groups.io Cc: Leif Lindholm ; Pete Batard ; Andrei W= arkentin ; Ard Biesheuvel Subject: [edk2-platform][PATCH v1 2/7] Platforms/RaspberryPi: SMBIOS Type 2= and Type 3 fixes Various fixes for SMBIOS Types 2 and 3: - Add LocationInChassis string to Type 2 - Update Type 3 NumberofPowerCords to 1 - Add ChassisHandle refernce to Type2. This requires moving the Type 3 population to happen before Type 2 Cc: Leif Lindholm Cc: Pete Batard Cc: Andrei Warkentin Cc: Ard Biesheuvel Signed-off-by: Samer El-Haj-Mahmoud --- Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c | 41 ++= ++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosD= xe.c b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c index 6eef66f125f8..170f1843f90b 100644 --- a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c +++ b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c @@ -176,7 +176,7 @@ SMBIOS_TABLE_TYPE2 mBoardInfoType2 =3D { 0, // HotSwappable :1; 0, // Reserved :3; }, - 0, // LocationInChassis String + 6, // LocationInChassis String 0, // ChassisHandle; BaseBoardTypeMotherBoard, // BoardType; 0, // NumberOfContainedObjectHandles; @@ -191,6 +191,7 @@ CHAR8 *mBoardInfoType2Strings[] =3D { mSysInfoVersionName, mSysInfoSerial, mChassisAssetTag, + "Internal", NULL }; @@ -210,7 +211,7 @@ SMBIOS_TABLE_TYPE3 mEnclosureInfoType3 =3D { ChassisSecurityStatusNone,// SecurityStatus; { 0, 0, 0, 0 }, // OemDefined[4]; 0, // Height; - 0, // NumberofPowerCords; + 1, // NumberofPowerCords; 0, // ContainedElementCount; 0, // ContainedElementRecordLength; { { 0 } }, // ContainedElements[1]; @@ -782,9 +783,22 @@ BoardInfoUpdateSmbiosType2 ( VOID ) { - UINTN Size; - CHAR16 AssetTagVar[ASSET_TAG_STR_STORAGE_SIZE] =3D L""; - EFI_STATUS Status; + + LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mBoardInfoType2, mBoardInfoTyp= e2Strings, NULL); +} + +/*********************************************************************** + SMBIOS data update TYPE3 Enclosure Information +************************************************************************/ +VOID +EnclosureInfoUpdateSmbiosType3 ( + VOID + ) +{ + UINTN Size; + EFI_STATUS Status; + EFI_SMBIOS_HANDLE SmbiosHandle; + CHAR16 AssetTagVar[ASSET_TAG_STR_STORAGE_SIZE] =3D L""; Size =3D sizeof(AssetTagVar); Status =3D gRT->GetVariable(L"AssetTag", @@ -802,18 +816,10 @@ BoardInfoUpdateSmbiosType2 ( } DEBUG ((DEBUG_INFO, "System Asset Tag : %a\n", mChassisAssetTag)); - LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mBoardInfoType2, mBoardInfoTyp= e2Strings, NULL); -} + LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mEnclosureInfoType3, mEnclosur= eInfoType3Strings, &SmbiosHandle); -/*********************************************************************** - SMBIOS data update TYPE3 Enclosure Information -************************************************************************/ -VOID -EnclosureInfoUpdateSmbiosType3 ( - VOID - ) -{ - LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mEnclosureInfoType3, mEnclosur= eInfoType3Strings, NULL); + // Set Type2 ChassisHandle to point to the newly added Type3 handle + mBoardInfoType2.ChassisHandle =3D (UINT16) SmbiosHandle; } /*********************************************************************** @@ -982,9 +988,10 @@ PlatformSmbiosDriverEntryPoint ( SysInfoUpdateSmbiosType1 (); + EnclosureInfoUpdateSmbiosType3 (); // Add Type 3 first to get chassis ha= ndle for use in Type 2 + BoardInfoUpdateSmbiosType2 (); - EnclosureInfoUpdateSmbiosType3 (); ProcessorInfoUpdateSmbiosType4 (4); //One example for creating and upd= ating -- 2.17.1 --_000_BN6PR05MB3411133E7FB5F32BC83A3446B97B0BN6PR05MB3411namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Reviewed-by: Andrei Warken= tin <awarkentin@vmware.com>

From: Samer El-Haj-Mahmoud = <Samer.El-Haj-Mahmoud@arm.com>
Sent: Monday, July 20, 2020 1:16 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Leif Lindholm <leif@nuviainc.com>; Pete Batard <pete@ak= eo.ie>; Andrei Warkentin <awarkentin@vmware.com>; Ard Biesheuvel &= lt;ard.biesheuvel@arm.com>
Subject: [edk2-platform][PATCH v1 2/7] Platforms/RaspberryPi: SMBIOS= Type 2 and Type 3 fixes
 
Various fixes for SMBIOS Types 2 and 3:
 - Add LocationInChassis string to Type 2
 - Update Type 3 NumberofPowerCords to 1
 - Add ChassisHandle refernce to Type2. This requires moving the
   Type 3 population to happen before Type 2

Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Pete Batard <pete@akeo.ie>
Cc: Andrei Warkentin <awarkentin@vmware.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Signed-off-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@arm.com> ---
 Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c | = 41 ++++++++++++--------
 1 file changed, 24 insertions(+), 17 deletions(-)

diff --git a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosD= xe.c b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c index 6eef66f125f8..170f1843f90b 100644
--- a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c +++ b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c @@ -176,7 +176,7 @@ SMBIOS_TABLE_TYPE2 mBoardInfoType2 =3D {
     0,    //  HotSwappable &n= bsp;        :1;
     0,    //  Reserved  =             :3;
   },
-  0,           = ;             /= / LocationInChassis String
+  6,           = ;             /= / LocationInChassis String
   0,          =             &nb= sp; // ChassisHandle;
   BaseBoardTypeMotherBoard, // BoardType;
   0,          =             &nb= sp; // NumberOfContainedObjectHandles;
@@ -191,6 +191,7 @@ CHAR8 *mBoardInfoType2Strings[] =3D {
   mSysInfoVersionName,
   mSysInfoSerial,
   mChassisAssetTag,
+  "Internal",
   NULL
 };
 
@@ -210,7 +211,7 @@ SMBIOS_TABLE_TYPE3 mEnclosureInfoType3 =3D {
   ChassisSecurityStatusNone,// SecurityStatus;
   { 0, 0, 0, 0 },        = ;   // OemDefined[4];
   0,    // Height;
-  0,    // NumberofPowerCords;
+  1,    // NumberofPowerCords;
   0,    // ContainedElementCount;
   0,    // ContainedElementRecordLength;
   { { 0 } },    // ContainedElements[1];
@@ -782,9 +783,22 @@ BoardInfoUpdateSmbiosType2 (
   VOID
   )
 {
-  UINTN      Size;
-  CHAR16     AssetTagVar[ASSET_TAG_STR_STORAGE_SI= ZE] =3D L"";
-  EFI_STATUS Status;
+
+  LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mBoardInfoType2, mBoa= rdInfoType2Strings, NULL);
+}
+
+/*********************************************************************** +        SMBIOS data update  TYPE3&= nbsp; Enclosure Information
+************************************************************************/<= br> +VOID
+EnclosureInfoUpdateSmbiosType3 (
+  VOID
+  )
+{
+  UINTN          &n= bsp;  Size;
+  EFI_STATUS        Status;
+  EFI_SMBIOS_HANDLE SmbiosHandle;
+  CHAR16          &= nbsp; AssetTagVar[ASSET_TAG_STR_STORAGE_SIZE] =3D L"";
 
   Size =3D sizeof(AssetTagVar);
   Status =3D gRT->GetVariable(L"AssetTag",
@@ -802,18 +816,10 @@ BoardInfoUpdateSmbiosType2 (
   }
   DEBUG ((DEBUG_INFO, "System Asset Tag : %a\n", mChas= sisAssetTag));
 
-  LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mBoardInfoType2, mBoa= rdInfoType2Strings, NULL);
-}
+  LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mEnclosureInfoType3, = mEnclosureInfoType3Strings, &SmbiosHandle);
 
-/*********************************************************************** -        SMBIOS data update  TYPE3&= nbsp; Enclosure Information
-************************************************************************/<= br> -VOID
-EnclosureInfoUpdateSmbiosType3 (
-  VOID
-  )
-{
-  LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mEnclosureInfoType3, = mEnclosureInfoType3Strings, NULL);
+  // Set Type2 ChassisHandle to point to the newly added Type3 handle=
+  mBoardInfoType2.ChassisHandle =3D (UINT16) SmbiosHandle;
 }
 
 /********************************************************************= ***
@@ -982,9 +988,10 @@ PlatformSmbiosDriverEntryPoint (
 
   SysInfoUpdateSmbiosType1 ();
 
+  EnclosureInfoUpdateSmbiosType3 (); // Add Type 3 first to get chass= is handle for use in Type 2
+
   BoardInfoUpdateSmbiosType2 ();
 
-  EnclosureInfoUpdateSmbiosType3 ();
 
   ProcessorInfoUpdateSmbiosType4 (4);   //One example = for creating and updating
 
--
2.17.1

--_000_BN6PR05MB3411133E7FB5F32BC83A3446B97B0BN6PR05MB3411namp_--