From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 576DF81C13 for ; Thu, 12 Jan 2017 01:06:31 -0800 (PST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP; 12 Jan 2017 01:06:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,349,1477983600"; d="scan'208";a="1082091973" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga001.jf.intel.com with ESMTP; 12 Jan 2017 01:06:30 -0800 Received: from fmsmsx152.amr.corp.intel.com (10.18.125.5) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 12 Jan 2017 01:06:30 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX152.amr.corp.intel.com (10.18.125.5) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 12 Jan 2017 01:06:29 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.88]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.177]) with mapi id 14.03.0248.002; Thu, 12 Jan 2017 17:06:27 +0800 From: "Zeng, Star" To: "Phillips, Chris J (Plano, TX)" , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" , "Zeng, Star" Thread-Topic: [edk2] [PATCH v2] Nt32Pkg: Fix code to correctly set SMBIOS Type 2 Length Thread-Index: AQHSa2Fx6Tn3PGAdvEasZCkkqXF2OaEyf03ggAAI6wCAAXMSgIAAlBhg Date: Thu, 12 Jan 2017 09:06:27 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103B8162A6@shsmsx102.ccr.corp.intel.com> References: <2f986db7-7f13-43e4-b76d-fe9dcead5edc@AIA2PHNNRN.local> <0C09AFA07DD0434D9E2A0C6AEB0483103B815A02@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v2] Nt32Pkg: Fix code to correctly set SMBIOS Type 2 Length X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jan 2017 09:06:31 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Chris, The patches have been pushed at https://github.com/tianocore/edk2/compare/3= 2fd9c4150d0...12233c19177d. Thanks for the contribution. Star -----Original Message----- From: Phillips, Chris J (Plano, TX) [mailto:chrisp@hpe.com]=20 Sent: Thursday, January 12, 2017 4:16 PM To: Zeng, Star ; edk2-devel@lists.01.org Cc: Ni, Ruiyu Subject: RE: [edk2] [PATCH v2] Nt32Pkg: Fix code to correctly set SMBIOS Ty= pe 2 Length Star, Yes, please help push the patches. This one, and the following with subjec= t: MdePkg: Add comments for SMBIOS Type 3 structure to cover SKU Number ShellPkg: Update smbiosview command to display Type 3 values Nt32Pkg: Fixes to correctly set SMBIOS Type 3 Thanks, Chris -----Original Message----- From: Zeng, Star [mailto:star.zeng@intel.com] Sent: Wednesday, January 11, 2017 4:08 AM To: Phillips, Chris J (Plano, TX) ; edk2-devel@lists.01.org Cc: Ni, Ruiyu ; star.zeng@intel.com Subject: Re: [edk2] [PATCH v2] Nt32Pkg: Fix code to correctly set SMBIOS Ty= pe 2 Length Chris, Since no other comments received, do you need me to help push the SMBIOS re= lated patches? Thanks, Star On 2017/1/11 9:36, Zeng, Star wrote: > Reviewed-by: Star Zeng > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of=20 > Chris Phillips > Sent: Wednesday, January 11, 2017 12:49 AM > To: edk2-devel@lists.01.org > Cc: Ni, Ruiyu > Subject: [edk2] [PATCH v2] Nt32Pkg: Fix code to correctly set SMBIOS=20 > Type 2 Length > > When running Nt32Pkg, SMBIOS Type 2 had the wrong Length. > Fixed the code to use the correct structure in sizeof, and properly accou= nt for ContainedObjectHandles. > Also updated variable names with Assert -> Asset > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Chris Phillips > --- > .../MiscBaseBoardManufacturerFunction.c | 32 +++++++++++++---= ------ > 1 file changed, 19 insertions(+), 13 deletions(-) > > diff --git > a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturerFunction.c > b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturerFunction.c > index 303726c3fd..765627a8e6 100644 > --- > a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturerFunction.c > +++ b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturerFunction. > +++ c > @@ -3,6 +3,7 @@ > SMBIOS type 2. > > Copyright (c) 2009 - 2011, Intel Corporation. All rights=20 > reserved.
> +(C) Copyright 2017 Hewlett Packard Enterprise Development LP
> This program and the accompanying materials are licensed and made avail= able under the terms and conditions of the BSD License which accompanies t= his distribution. The full text of the license may be found at @@ -31,7 +3= 2,7 @@ MISC_SMBIOS_TABLE_FUNCTION(MiscBaseBoardManufacturer) > UINTN ManuStrLen; > UINTN ProductStrLen; > UINTN VerStrLen; > - UINTN AssertTagStrLen; > + UINTN AssetTagStrLen; > UINTN SerialNumStrLen; > UINTN ChassisStrLen; > EFI_STATUS Status; > @@ -39,7 +40,7 @@ MISC_SMBIOS_TABLE_FUNCTION(MiscBaseBoardManufacturer) > EFI_STRING Product; > EFI_STRING Version; > EFI_STRING SerialNumber; > - EFI_STRING AssertTag; > + EFI_STRING AssetTag; > EFI_STRING Chassis; > STRING_REF TokenToGet; > EFI_SMBIOS_HANDLE SmbiosHandle; > @@ -84,9 +85,9 @@ MISC_SMBIOS_TABLE_FUNCTION(MiscBaseBoardManufacturer) > } > > TokenToGet =3D STRING_TOKEN (STR_MISC_BASE_BOARD_ASSET_TAG); > - AssertTag =3D HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet,=20 > NULL); > - AssertTagStrLen =3D StrLen(AssertTag); > - if (AssertTagStrLen > SMBIOS_STRING_MAX_LENGTH) { > + AssetTag =3D HiiGetPackageString(&gEfiCallerIdGuid, TokenToGet,=20 > + NULL); AssetTagStrLen =3D StrLen(AssetTag); if (AssetTagStrLen > > + SMBIOS_STRING_MAX_LENGTH) { > return EFI_UNSUPPORTED; > } > > @@ -101,11 +102,16 @@ MISC_SMBIOS_TABLE_FUNCTION(MiscBaseBoardManufacture= r) > // > // Two zeros following the last string. > // > - SmbiosRecord =3D AllocatePool(sizeof (SMBIOS_TABLE_TYPE3) +=20 > ManuStrLen + 1 + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + > 1 + AssertTagStrLen + 1 + ChassisStrLen +1 + 1); > - ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE3) + ManuStrLen + 1 > + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 + > AssertTagStrLen + 1 + ChassisStrLen +1 + 1); > + // Since we fill NumberOfContainedObjectHandles =3D 0, remove sizeof > + (UINT16) bytes for ContainedObjectHandles[1] // SmbiosRecord =3D=20 > + AllocatePool(sizeof (SMBIOS_TABLE_TYPE2) - sizeof (UINT16) +=20 > + ManuStrLen + 1 + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen > + + > + 1 + AssetTagStrLen + 1 + ChassisStrLen + 1 + 1);=20 > + ZeroMem(SmbiosRecord, sizeof (SMBIOS_TABLE_TYPE2) - sizeof (UINT16) > + + ManuStrLen + 1 + ProductStrLen + 1 + VerStrLen + 1 + > + SerialNumStrLen + > + 1 + AssetTagStrLen + 1 + ChassisStrLen + 1 + 1); > > SmbiosRecord->Hdr.Type =3D EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION; > - SmbiosRecord->Hdr.Length =3D sizeof (SMBIOS_TABLE_TYPE2); > + // > + // Since we fill NumberOfContainedObjectHandles =3D 0, remove sizeof > + (UINT16) bytes for ContainedObjectHandles[1] // > + SmbiosRecord->Hdr.Length =3D sizeof (SMBIOS_TABLE_TYPE2) - sizeof > + (UINT16); > // > // Make handle chosen by smbios protocol.add automatically. > // > @@ -127,7 +133,7 @@ MISC_SMBIOS_TABLE_FUNCTION(MiscBaseBoardManufacturer) > // > SmbiosRecord->SerialNumber =3D 4; > // > - // AssertTag will be the 5th optional string following the formatted s= tructure. > + // AssetTag will be the 5th optional string following the formatted st= ructure. > // > SmbiosRecord->AssetTag =3D 5; > > @@ -142,15 +148,15 @@ > MISC_SMBIOS_TABLE_FUNCTION(MiscBaseBoardManufacturer) > > OptionalStrStart =3D (CHAR8 *)(SmbiosRecord + 1); > // > - // Since we fill NumberOfContainedObjectHandles =3D 0 for simple,=20 > just after this filed to fill string > + // Since we fill NumberOfContainedObjectHandles =3D 0, just after=20 > + this field to fill string > // > - OptionalStrStart -=3D 2; > + OptionalStrStart -=3D sizeof (UINT16); > UnicodeStrToAsciiStr(Manufacturer, OptionalStrStart); > UnicodeStrToAsciiStr(Product, OptionalStrStart + ManuStrLen + 1); > UnicodeStrToAsciiStr(Version, OptionalStrStart + ManuStrLen + 1 + Prod= uctStrLen + 1); > UnicodeStrToAsciiStr(SerialNumber, OptionalStrStart + ManuStrLen + > 1 + ProductStrLen + 1 + VerStrLen + 1); > - UnicodeStrToAsciiStr(AssertTag, OptionalStrStart + ManuStrLen + 1 +=20 > ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1); > - UnicodeStrToAsciiStr(Chassis, OptionalStrStart + ManuStrLen + 1 +=20 > ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 +=20 > AssertTagStrLen + 1); > + UnicodeStrToAsciiStr(AssetTag, OptionalStrStart + ManuStrLen + 1 +=20 > + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1);=20 > + UnicodeStrToAsciiStr(Chassis, OptionalStrStart + ManuStrLen + 1 +=20 > + ProductStrLen + 1 + VerStrLen + 1 + SerialNumStrLen + 1 +=20 > + AssetTagStrLen + 1); > // > // Now we have got the full smbios record, call smbios protocol to add= this record. > // > -- > 2.11.0.windows.1 > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel >