From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.3951.1614759209516966349 for ; Wed, 03 Mar 2021 00:13:29 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=B06JYj3B; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: ray.ni@intel.com) IronPort-SDR: bc62zYM1enRrG0RuPU8ho43p4itoGE0LOw0zQriR2kzxlsK2I7V1KL4g8d5RgZ5GdaGstwbgn7 c58PAkcnYY2g== X-IronPort-AV: E=McAfee;i="6000,8403,9911"; a="184717084" X-IronPort-AV: E=Sophos;i="5.81,219,1610438400"; d="scan'208";a="184717084" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2021 00:13:27 -0800 IronPort-SDR: 7esp60HKYXVEf81DcH7ngkOZa5DTU2V71A4fmQItqOi925hFSWvhsuZzc/Zj7+2kMtDYOWzv+Q gK9tl/cRvPXA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,219,1610438400"; d="scan'208";a="586274024" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga005.jf.intel.com with ESMTP; 03 Mar 2021 00:13:27 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 3 Mar 2021 00:13:26 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Wed, 3 Mar 2021 00:13:26 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.172) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Wed, 3 Mar 2021 00:13:26 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KwXFwHrmkTPE7ldXGCbuCsO+VRvmjpLzWljD5az/l7kvsG0Y9XvCHdCCH0Ns0Jim0WflytI6NcaDfGVIPlUSShLKfTlQS30SG1Xpa67ghoAqYIuLWEprHTMXn3ZFH3B9lgx/nbBrR6tXedgh1JR4eoyDa7k/r8paYKs3Zjf03VDh7RgQGmvFiRQ6yXA+UY6CFZ4gTuo95QqwuoFumX6nxHV70gniHswoCZT+uwTIrwDj7sKK5v446NGnZnIgZYdJ3ecEP9BUClEUOpn6HTlVXLmqKp6XgOUTPUtnmLZei58cto6DDtHO1Phl4EL+RyEnJPUi1yC0MwJIQl57CafMlg== 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=AbZPGCYqEuHjx7YydBNLmh51wzkPpvvNraNmF54PIZI=; b=f70WbuYVs45mJMYP+263tB5mkXV2SB+hto+dLinaG2i8u4ycJOFVp+dlUXXVfY7qdYYLxehhYLROalW1ffuIOvAF5Swi458i/UYclLfy8NET7zFdhQtpnSkz9mr+IG2vDq3oAMVUXOsm7BGScgLjL1zjoQXbZpb3OtGgRRVBdmeeznHz2j+zVzUXbckleilnreQvdyo5GMzZxlyvQNf1bZNWBOFCLyd9Ge7N6m7wiHwqI1oPdohKWlTFutT7D3cqdb7WzLFKhKd/Iamrik+4q0xD0YimJSnJZPmJyn/mnTApFdDAuag7QxrtAdxDjEJKX4GRXTO1rwJ8iqtuDXXv9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AbZPGCYqEuHjx7YydBNLmh51wzkPpvvNraNmF54PIZI=; b=B06JYj3BBZ+eQTlFWbxB8YFU/10K6HbGT6PTxreDn+u7iWDlCF1tf6nro1CLnZ53MlO7IlaYJAtPI6eJ/WB3QZcEnjr3cTMt8FCcTfufDFmPw8Y/jpr9zwmgB/QY8fTS0gfAfBNRYXIvOx8dqA/o6HJyBW0C1fHSkq+zBcRzEn0= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by CO1PR11MB4852.namprd11.prod.outlook.com (2603:10b6:303:9f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.20; Wed, 3 Mar 2021 08:13:25 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::8d64:91ed:c259:e95%7]) with mapi id 15.20.3890.028; Wed, 3 Mar 2021 08:13:25 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "patrick.rudolph@9elements.com" , "Chaganty, Rangasai V" CC: "Bi, Dandan" , "Zeng, Star" , "Gao, Zhichao" , "You, Benjamin" , "philipp.deppenwiese@9elements.com" , "Ma, Maurice" , "Dong, Guo" Subject: Re: [edk2-devel] [PATCH - resend] MdeModulePkg/Universal/SmbiosDxe: Scan for existing tables Thread-Topic: [edk2-devel] [PATCH - resend] MdeModulePkg/Universal/SmbiosDxe: Scan for existing tables Thread-Index: AQHXDqfJQ3mfUuaKHUOh0HlWMv2zCqpx0qnw Date: Wed, 3 Mar 2021 08:13:25 +0000 Message-ID: References: <20210301143221.2775162-1-patrick.rudolph@9elements.com> In-Reply-To: <20210301143221.2775162-1-patrick.rudolph@9elements.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0731ae88-9d38-46b0-488d-08d8de1c37e9 x-ms-traffictypediagnostic: CO1PR11MB4852: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KcW6dVk3PPNuQnZ1pWbrOhkrrpz3RRyNZapuszOUNZdeLcZhUfP3bdfv03eYaWk8KhwzTp65lqofb1T01fCHt5Ov4fXlq7MZ5CoBv7Klpj8WbX4wmAhm37QXdtBOLJuiraHZ+NoYUl1SeeuWjjh6Dwg+QxpSDwN2PceBpLYqXGWPx6jCcpa0XydwpahCOSH2RM2l1L0rGK/xF/qyU/8/mlSvHnPcvQJnET097Bk+Bnp3wzwS8H6OZCeju007KxslarSly/yFlwZz9Ffe505/V7Org+1pcwoj3IviC6Mn+sEtVGTJow1frE2dvH4CEXKrznh0Kd2FjP1rEanu3qJpzAHT4AtJOlIXVOhQfwPoV30VEOsBMXG9yP2PaNqstoTRlzF2EkMrc3RqYWTIp9NbCj1I2e4huJW6ldn67ljEq3FzDLOTtXAIlhkgbn4vD26gYxiHvogps+w9K0GQAYTnHiP6ZuOsQY1/itfWgYPtyzq1VjSWR9XG/kW19mTY8qpxd9M2ikS3OhbhZ39eMJkgjA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(39860400002)(376002)(396003)(136003)(346002)(366004)(8676002)(8936002)(76116006)(9686003)(2906002)(64756008)(83380400001)(66556008)(66446008)(66476007)(86362001)(55016002)(6506007)(66946007)(478600001)(54906003)(186003)(316002)(107886003)(52536014)(71200400001)(4326008)(110136005)(33656002)(7696005)(26005)(5660300002)(6636002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?as1cIQFxTPJrjhtE/z9I9LrG2r+gE2tXKg5FnJKF7m7MAbcbcDWyFtXuDPa7?= =?us-ascii?Q?DO89eb0irTQAVRh39NnI8DtRXe0SnRal5vAsOI93J9bt+WgrDB6ao8vePW5O?= =?us-ascii?Q?glG2UxSmnWetC5ANw4e8eL5dHuDasbzRZFsyPQ7xqlbUedVk9WVR+Env+gbe?= =?us-ascii?Q?Nd19uTKzaDmlRS8jkpOenR2fhTx9qeTCZo3OtJZnKjsXf2EyFz7Sc1+6MCwG?= =?us-ascii?Q?rOTp9MpYombJrrfznghR3Sd7JNIaFdurq0PIDxQfBsuRlB8IS+7Ro3FxKbsb?= =?us-ascii?Q?YNfqoLMGFh5bqKkUWBF9OI0KksYS7/WPveJGHEIdN75h0rr1B5nQC+jbX3kY?= =?us-ascii?Q?+DZ86jsyzceB+iwW2EMOw1bXBPRRj1qyWZHeZIPgLQwjUFL9ydqLri8L9nFi?= =?us-ascii?Q?QpzGDjyiSP5bpLkfo4peZB3ezcGs9LK/Nyarfo7Wf91q0meKlg61YACaXJ3r?= =?us-ascii?Q?efnLhRhu+J6AOl4l/i1H6yKLboxP3ylRWFUososSWS9Wd5gwpX2EjqX5wZof?= =?us-ascii?Q?9GuTaWa0Q6Wz6JUH62Qd8RzY6IYHbY3xIM012UTX2m1QlJ2QYih1PwnRKwIf?= =?us-ascii?Q?NejS/z41NUgcHD/POOSmCJlTSnKLyeSw/qJbej9vTIR6TuH9h4XzhNLCpg1O?= =?us-ascii?Q?Y/x8mVDLYfB51HCuG4tUAIpRjUR25p4zgbEt3jW6iy02lKQ54egAbCWymvYI?= =?us-ascii?Q?xJLR6RxXSuqGEFK/Zhk7pUWiBHbuqzKHC2PSjPCpXa1aOp8wfYpF6pJRik29?= =?us-ascii?Q?XcSzTazHM1AnjWh8v2ACQWguH73oOF7UZCdeM2pBZXR2RiYftU7H4TClRLLQ?= =?us-ascii?Q?EN3dCjIOYjESDtuwR2i2pUMhNAwXGAuVMQ5FaAUCaFzpNc8PiyBuGOH+saBW?= =?us-ascii?Q?Huu2RYyVDz9k/l2qzg2Z251cKA8fqq4iOyRg3qjm3JaKYUTFWqMRvAe5zWRS?= =?us-ascii?Q?hGgMfWTr0gpV8cc15V4k1wLWSB5JwtfRQRHVhj8F3OzrhwBsmESEgAF5wZNd?= =?us-ascii?Q?BxbH8APyFeBtF0OQPg/m509tc6ujERM0VjKsvHKJZ3NK054oA53ZaXk/LA9Q?= =?us-ascii?Q?UPswdcNSVBEgk5pIKI3jhtI+vLdJgBMSFKtjLBw16gzi8TMt5mVCsYkYosij?= =?us-ascii?Q?4iO3lYVEr5EKmbsZpCikA+6aL58HPnkFwfWiARElnbJueemod1sRNMmGvvwk?= =?us-ascii?Q?NEV/SXTMQ1V7SBMpTyCjGu/4Mqo3Ts7g3k/evF4JUlYYp/2GW3FffP0JcKGu?= =?us-ascii?Q?nXYKPQo1ZMSjMlHJhNz6bGRB4pelJFA/kkgoc8XRQ45fo/ljAgRJP3XLCkH2?= =?us-ascii?Q?JxzghtDom+E1w72WgbrOo4re?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0731ae88-9d38-46b0-488d-08d8de1c37e9 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2021 08:13:25.1052 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: YKmcNN/aJ9bN3IPp+6xQbiL27rOKpdeWs49ya073zY16JBSR/YaQFG9FkH4lDqyYJEs33DWV0qiUxChNLRPDeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4852 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable In general, I agree this solution that lets SMBIOS driver directly absorbs = the SMBIOS table from PEI. This can eliminate the needs of a separate driver that consumes the HOB and= calls SMBIOS protocol to add the SMBIOS structures. There are two options for the HOB design: 1. A single HOB that points to the SMBIOS table. 2. Multiple HOBs that each points to a SMBIOS structure. In my opinion, option #2 is more flexible because it doesn't require the bo= otloader to consolidate all the SMBIOS structures together. The CPU module in the bootloader can produce the type 4 and 7 structures.=20 The PCI module in the bootloader can produce the type 9 structures. But, I am not sure if option #2 is conflict with what coreboot does. Does c= oreboot produce the whole SMBIOS table in a single buffer? Option #2 also doesn't care whether it's a SMBIOS 3.0 table or 2.x table.=20 >+ Status =3D EfiGetSystemConfigurationTable ( 1. Why don't you directly get the data from HOB list? This can eliminate th= e code in BlSupportDxe that gets data in HOB and publishes to configuration table. =20 > +ValidateSmbios20Table( > +ValidateSmbios30Table( 2. I will defer to experts (Dandan, Star and Zhichao) to review whether the= above two functions are implemented properly. >=20 > +ParseAndAddExistingSmbiosTable( > + IN EFI_HANDLE ImageHandle, > + IN SMBIOS_STRUCTURE_POINTER Smbios, > + IN UINTN Length > +) { > + EFI_STATUS Status; > + CHAR8 *String; > + EFI_SMBIOS_HANDLE SmbiosHandle; > + SMBIOS_STRUCTURE_POINTER SmbiosEnd; > + > + SmbiosEnd.Raw =3D Smbios.Raw + Length; > + > + do { > + // Check for end marker > + if (Smbios.Hdr->Type =3D=3D 127) { 3. Please use SMBIOS_TYPE_END_OF_TABLE instead of hardcode 127. >=20 > + CopyMem (Smbios.Raw, (VOID *)Smbios30Table, Smbios30Table- > >TableMaximumSize); 4. Should we copy from Smbios30Table->TableAddress instead of Smbios30Table= ? >=20 > + Status =3D ParseAndAddExistingSmbiosTable(ImageHandle, Smbios, > Smbios30Table->TableMaximumSize); 5. Can you explain in specific why SMBIOS table should be duplicated before= parsing? =20