From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.12378.1682658154140462514 for ; Thu, 27 Apr 2023 22:02:34 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=WX1DSJAr; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682658154; x=1714194154; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Xn1WuHyWB3UlWm0H3CDIencmtSJAiHZQ7iEiu000dbA=; b=WX1DSJAr3RPismOhuE+10S+Et31l0jKuJCsj2PLTMcUzt7AZd8/TpnTa SfElSZVVtXGRnXA0tP+V6Q3YCXGW9t7hvoddF7ipGn85j21VnErruKhrw ucEcLpoBxpZE+vSYpNlcbVCOCmqtbVcawu4dv43dCIrQzo+xSSbr9sfRJ OiZOTNYA6XtnceQXf+g2rfNGj4aGQ34uVkZ2Y3JLW71OM55rJB1H3w/fK myLE4F9dOIUsZTCSQIzExuTRa0Wt/iAfEQCbEfM+0L+BZAPFlD2IpmClq k2a0Y1X/FDe6P1cRwoDYODO9aSiMld5UWL5t+ZFW31BaTlP+nadQ6lI7B g==; X-IronPort-AV: E=McAfee;i="6600,9927,10693"; a="349674161" X-IronPort-AV: E=Sophos;i="5.99,233,1677571200"; d="scan'208";a="349674161" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Apr 2023 22:02:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10693"; a="688683233" X-IronPort-AV: E=Sophos;i="5.99,233,1677571200"; d="scan'208";a="688683233" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga007.jf.intel.com with ESMTP; 27 Apr 2023 22:02:33 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 27 Apr 2023 22:02:32 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 27 Apr 2023 22:02:32 -0700 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.48) 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.2507.23; Thu, 27 Apr 2023 22:02:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hP7qhJ/KkqI6TLrXWRnwwD/+jGOXHTjWvAp1vysqhzXlF8n9LQQI2HHLAX4+CUrues/FyXAqoZcoTNI2SjPi6TchZiI+gM7uhSX51K0b45O7UxuGcTp6wZchj012h/HBm2aWkIpJm7nIn6ms0259lr9EVfz7pnGKSRfpesvqrCwy7+7/RjKbOValaXpWxH5D2wfJgULZbH8k8E+V7xGXLl1puDcjQs3cv2R3W0/HYmiyEkERlYCg3Hmoa8ReDJY+arc+yRfw0x6bSPBUWhsIXc4a1f4atzHn5d4GOmVCiO/ARazB4spzpCD1Nsc4n25JctCb4W4QNzhH6BFMwOZ/mQ== 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=wEDaqpFjQnaqbnzOLsb3A/6UDBjV5uQyUa14QrWhrts=; b=YBPEdn4Pnn/u/ZvpaXtBeNYkOShNkn/YyXU39TEovC0fTpegDw7iXjVo8akJDqKNSTfu5u6lguVhtbQN4Olrn5E6ZJ1pZuI1qWnsONGA5LSiYi36LMfwGNkVpMy1rY/fRtCuMkCZ5t+1BbmeSrx+/HGpE0o8eIoQxnc267GE5jwnYge30RDd+ERSNXeV9vuRiV98K+0rVkbUSO5xnMIVvNspRlAC9kv9UKaqfThxXZMLA7riX3q8ktkYIghs+vdjYl7fb2F5zirFuSw9TG27YrKd/XAi77GUBd7O3VWjdSEHs04SQMfjV60bJBmkM619p23dNTKKr8yJ1NyVB8Kqng== 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 Received: from MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by DS0PR11MB7829.namprd11.prod.outlook.com (2603:10b6:8:f1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.21; Fri, 28 Apr 2023 05:02:30 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d%5]) with mapi id 15.20.6340.023; Fri, 28 Apr 2023 05:02:30 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "Ni, Ray" , "Ke, VincentX" CC: "Chiu, Chasel" , "Desimone, Nathaniel L" , "Oram, Isaac W" , "Gao, Liming" , "Dong, Eric" Subject: Re: [edk2-devel] [PATCH v3] MinPlatformPkg: Update HWSignature filed in FADT Thread-Topic: [edk2-devel] [PATCH v3] MinPlatformPkg: Update HWSignature filed in FADT Thread-Index: AQHZeX0qP4YvpiUeA0Wpu4LZ1vxPNq9ACZqwgAAG2YCAAAGeMIAAGAUQ Date: Fri, 28 Apr 2023 05:02:30 +0000 Message-ID: References: <20230428025659.692-1-vincentx.ke@intel.com> <1759FCFBF7AAA148.29517@groups.io> In-Reply-To: <1759FCFBF7AAA148.29517@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|DS0PR11MB7829:EE_ x-ms-office365-filtering-correlation-id: a4863b60-23da-44d9-467c-08db47a5c525 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kQP5uUHmEYftIw6uAm3r4KSxlYeUElh2Dq8xGVsuF5N24/W7NyJ1ImX7CtZpAH8AwqMwuLjAnDwohyGl3oBM9mjh8qhfRtYgJKmm/akm9HE0lihbIRvzCUxCocqQhgUktyq9zywKpXEiP6acWWaryVoEeYd5rdUF6zZ8wMUs10j1Dp5c/DFe0lUxVdkTV6wGk29IDl5NBbykOYHL0rXSPx7MS5+3nXFh2l4SXsg6xmz2bJoyq9Hueq7NlJyFA8aZ+1TuTwp4QEDVGerpo/lYOGKXJemW3SDctUmtQ7WzvyBrkmJi3tvYRc0W6zwgFwsvjigV6YhLP+yGPhrRvUaIps+HHA72XgEJXMmNo+guhnLh/+46DvKgIx4YLN4JgevAYflJ5Qa2X15/BI4iMnU0fqc2nucd0pk84BsBqBkGC3TFGKUPlcOMIyBS26rMjrfsYTvAIGJcTO27zBcGwrXPtGV5ugbRPhfOQ+Nus+T+I76bs6mQGuBhu/uBe5O1w+m5U6xs2v43laz8lBPitTKFHvmQ2gKshjdemWaCTS2IZm/6EEo7S2CVhqz4IjqDlqFuq7E8gdN74ptBQ8sYzEHI+sbTxukOFTmsn5HW0D+lu/4qMRaGDJsyATVM0s5oftnQchWPsaCq2KS262uHXz0nEw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8244.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(396003)(136003)(346002)(366004)(39860400002)(451199021)(66899021)(110136005)(54906003)(6636002)(186003)(966005)(478600001)(38070700005)(86362001)(6506007)(33656002)(83380400001)(107886003)(316002)(30864003)(2906002)(7696005)(76116006)(64756008)(15650500001)(53546011)(66556008)(9686003)(71200400001)(82960400001)(41300700001)(55016003)(122000001)(5660300002)(8936002)(4326008)(38100700002)(66446008)(66946007)(66476007)(8676002)(52536014);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?c5zctuwHOBuLFXxtMYQI1bBzZyc/Hk2ehuJxEIEfjnQfCOKgQvK6X/kGVY81?= =?us-ascii?Q?BhMpeuLc5GUjJCgEgqzBtFvnaUEKfbko3EgCOfSeQnKQ8AZubSugkAGCeLtG?= =?us-ascii?Q?w/2xt3rLsQTyo+NBDj/cgob/58fUfQdIjt6ljzJ4bKX+H/pgkAemscfLBw8d?= =?us-ascii?Q?M5ogZGFIyc6hrt5ar3B9Rc4X4XYx1Jy6y+aPFZ4SmJK9Bcp2FDnf9PAoCxua?= =?us-ascii?Q?nFb3se9INZpRwuqCwArnpcRo32qYttj0Do9+5J3lJD+LB/2Ny7ztDmUb9clS?= =?us-ascii?Q?61L6v5AvwFie15lIriPhfHHXjL/I019JdZmQYpG8HqnmD70yM4lHPbKT0I4V?= =?us-ascii?Q?SoTjCTCPEV+WY9hc1rsBnVtRoPUdqPE+CUIt6yJ2TriCFJWH4F1L/JEF0LdN?= =?us-ascii?Q?Gfv7qf35NbwK1TXtqMF51obQGbFlv9HzWdqDRvG8u6KUwZU4jejpt19X4hYT?= =?us-ascii?Q?ZWzc+E/bNyYNbtBgKzZ/5oZErLOs3bZgnji1+KA9XXcYzyFj+WIqzuK8DmLD?= =?us-ascii?Q?F0b4L/oI5wVzV5U7Zmhm2vaHBC2qU3lmybbl6AHHJUW+hFdetX99qaduHzAP?= =?us-ascii?Q?6P0bjhNF+hfkyjXZCDyYRq6GRuHsDVTHSiIz+M9RonMOAdJJZ/zcJ2rg599Q?= =?us-ascii?Q?ipoBxs+GBrwBYz/h1Sg6L4SVZXaJ9rxGmOTuGdDKcZhRLWhIwJmca6wUOVf6?= =?us-ascii?Q?/lYaqex4oKSj3DoITBnHSXtog6ZaZeuRyD8hBKRmmv3YDEROIzV3fNowaGsS?= =?us-ascii?Q?nVVfrjBY9j9pBzMCSp0tv3PbOd5vfPZW2eor/FSMIMXbYDOMVjkCDDRFfzEt?= =?us-ascii?Q?Btev5Y7bE84R7+FsD/r3g2aurmizOfaSGWHUB+fKETeFu/s/kp/66NEEoH4F?= =?us-ascii?Q?+UFXv7ZV48EqpWN/14jteOy2t+NWp4UInqWmGoeMTj3Dk6xm2cJ/zjqvUs1g?= =?us-ascii?Q?Ypsq49t2a0MJrXP5mF/rfXyWcMxDY086E5VhizjxPRBG53u6ruBZPjNHn7c5?= =?us-ascii?Q?qRGLJtbciKg7qnvL9fne5x/QlWro13Qoo3CNvAf9gAAF6rXyq3dxSJ+ifloN?= =?us-ascii?Q?PMsftiUhxM08ps2pinBKutCjmW6/rdKUf/42gcWOzjYXO+axB37YmgjCQ38m?= =?us-ascii?Q?LvmpynGDC0qI5huFAuTQMbuQrlpcql3ypQE6JLf5sl2srVuxBQIrHkGuXmp8?= =?us-ascii?Q?zYaIxNHyZH5pvEn64JkEkIyvjSAuPxe4p5TF2asGymG6UrsmGGebM/eT2R7J?= =?us-ascii?Q?6Vbm7XbXfo2/jTHiCDSLe5R/J8ptBz2dzvDlT3xp1Rxiak3JCTwj4AK7xNYX?= =?us-ascii?Q?mfsHiSQaryGbKSHEc9E/I8P5bh90qu+Jcs2Ghf89I+wcLNxt4OR/EkhNDqfr?= =?us-ascii?Q?m6JekwiINT5v0f68UV58SRaUHIeekxg0rlVkae2W3W9ym9yHqOTYhCLe7702?= =?us-ascii?Q?amNhUGWD/kB+R1B0BDk9GzYipVWGPSjKfT5jxAW39EwcB3xxzi4E90vrIqLp?= =?us-ascii?Q?RNLhPAqHBy/7DT1437n4Z2oJcxYPAkuPLsxWe/sPQkIOYs1G7vCRNr2KHQ?= =?us-ascii?Q?=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4863b60-23da-44d9-467c-08db47a5c525 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2023 05:02:30.5329 (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: rsIRBU2t9nvzPpqKwd+sD94Hw3AlV6OUkOSRUZ6WEy0uNj5pPOdlhgdJ+h4nSjBgH59Dq4R6St2z7T3OHAih6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7829 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 "Measure" checksum is not sufficient to detect ACPI table change because if= one field in the table is changed from value x to x+1, and another field is changed from y to y-1, the Checks= um doesn't change. > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Ni, Ray > Sent: Friday, April 28, 2023 11:55 AM > To: Ke, VincentX ; devel@edk2.groups.io > Cc: Chiu, Chasel ; Desimone, Nathaniel L > ; Oram, Isaac W > ; Gao, Liming ; Dong, > Eric > Subject: Re: [edk2-devel] [PATCH v3] MinPlatformPkg: Update HWSignature > filed in FADT >=20 > RSDP points to RSDT or XSDT. > RSDT/XSDT contains multiple tables, one of which is FADT, others are SSDT= s. > FADT contains two pointers, one pointing to FACS, the other pointing to D= SDT. >=20 > So: > 1. Your code assume if Table->Checksum is not changed, the Table is not > changed. I don't think it's a valid assumption. > 2. Your code "measures" the DSDT change which is good. (still only readin= g > Checksum is not good.) > 3. FACS table is not "measured". >=20 > Thanks, > Ray >=20 > > -----Original Message----- > > From: Ke, VincentX > > Sent: Friday, April 28, 2023 11:30 AM > > To: Ni, Ray ; devel@edk2.groups.io > > Cc: Chiu, Chasel ; Desimone, Nathaniel L > > ; Oram, Isaac W > > ; Gao, Liming ; > Dong, > > Eric > > Subject: RE: [edk2-devel] [PATCH v3] MinPlatformPkg: Update > HWSignature > > filed in FADT > > > > Hi, Ray > > > > Based on ACPI Spec 6.5, "Hardware Signature" filed changed the > description. > > > > Here is the new description. > > "The only thing that determines the hardware signature is the ACPI tabl= es. > > If any content or structure of the ACPI tables has changed, > > including adding or removing of tables, then the hardware signature mus= t > > change." > > > > I keep version 6.3 only for Intel code base test. It should be updated = to 6.4. > > Thanks for the reminder. > > > > BR, > > Vincent > > -----Original Message----- > > From: Ni, Ray > > Sent: Friday, April 28, 2023 11:08 AM > > To: devel@edk2.groups.io; Ke, VincentX > > Cc: Chiu, Chasel ; Desimone, Nathaniel L > > ; Oram, Isaac W > > ; Gao, Liming ; > Dong, > > Eric > > Subject: RE: [edk2-devel] [PATCH v3] MinPlatformPkg: Update > HWSignature > > filed in FADT > > > > Vincent, > > It's an interesting patch. > > > > The original logic is to use the HardwareSignature field to indicate an= y > > changes in adding/removing PCI devices. > > Your new logic is to expand this field to indicate any changes in any t= ables > > when FADT version is > 6.3. > > > > Why? > > > > > > > -----Original Message----- > > > From: devel@edk2.groups.io On Behalf Of > > > VincentX Ke > > > Sent: Friday, April 28, 2023 10:57 AM > > > To: devel@edk2.groups.io > > > Cc: Ke, VincentX ; Chiu, Chasel > > > ; Desimone, Nathaniel L > > > ; Oram, Isaac W > > > ; Gao, Liming ; > > > Dong, Eric > > > Subject: [edk2-devel] [PATCH v3] MinPlatformPkg: Update HWSignature > > > filed in FADT > > > > > > From: VincentX Ke > > > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4428 > > > > > > Calculating CRC based on checksum from all ACPI tables. > > > Update HWSignature filed in FADT based on CRC while ACPI table > changed. > > > > > > Signed-off-by: VincentX Ke > > > Cc: Chasel Chiu > > > Cc: Nate DeSimone > > > Cc: Isaac Oram > > > Cc: Liming Gao > > > Cc: Eric Dong > > > --- > > > Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c | 110 > > > +++++++++++++++++++- > > > Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf | 1= + > > > 2 files changed, 110 insertions(+), 1 deletion(-) > > > > > > diff --git > > > a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c > > > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c > > > index e967031a3b..d84c1d4f6d 100644 > > > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c > > > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c > > > @@ -1285,6 +1285,108 @@ IsHardwareChange ( > > > FreePool (HWChange); > > > > > > } > > > > > > > > > > > > +/** > > > > > > + This function calculates RCR based on Checksum from all ACPI table= s. > > > > > > + It also calculates CRC and provides as HWSignature filed in FADT t= able. > > > > > > +**/ > > > > > > +VOID > > > > > > +IsAcpiTableChange ( > > > > > > + VOID > > > > > > + ) > > > > > > +{ > > > > > > + EFI_STATUS Status; > > > > > > + UINTN Index; > > > > > > + UINTN AcpiTableCount; > > > > > > + UINT32 Table; > > > > > > + UINT32 CRC; > > > > > > + UINT32 *AcpiTable; > > > > > > + EFI_ACPI_6_5_ROOT_SYSTEM_DESCRIPTION_POINTER *Rsdp; > > > > > > + EFI_ACPI_DESCRIPTION_HEADER *Rsdt; > > > > > > + EFI_ACPI_DESCRIPTION_HEADER *Xsdt; > > > > > > + EFI_ACPI_6_5_FIRMWARE_ACPI_CONTROL_STRUCTURE *FacsPtr; > > > > > > + EFI_ACPI_6_5_FIXED_ACPI_DESCRIPTION_TABLE *pFADT; > > > > > > + > > > > > > + AcpiTableCount =3D 0; > > > > > > + AcpiTable =3D NULL; > > > > > > + Rsdp =3D NULL; > > > > > > + Rsdt =3D NULL; > > > > > > + Xsdt =3D NULL; > > > > > > + FacsPtr =3D NULL; > > > > > > + pFADT =3D NULL; > > > > > > + > > > > > > + DEBUG ((DEBUG_INFO, "%a() - Start\n", __FUNCTION__)); > > > > > > + > > > > > > + Status =3D EfiGetSystemConfigurationTable (&gEfiAcpiTableGuid, (VO= ID > > > **)&Rsdp); > > > > > > + if (EFI_ERROR (Status) || (Rsdp =3D=3D NULL)) { > > > > > > + return; > > > > > > + } > > > > > > + > > > > > > + // > > > > > > + // ACPI table count starts with 2 as RSDT and XSDT are already loc= ated. > > > > > > + // Then add ACPI tables found by XSDT and FADT. > > > > > > + // > > > > > > + Rsdt =3D (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Rsdp- > > > >RsdtAddress; > > > > > > + Xsdt =3D (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Rsdp- > > > >XsdtAddress; > > > > > > + AcpiTableCount =3D AcpiTableCount + 2; > > > > > > + AcpiTableCount =3D AcpiTableCount + (Xsdt->Length - sizeof > > > (EFI_ACPI_DESCRIPTION_HEADER))/sizeof (UINT64); > > > > > > + > > > > > > + for (Index =3D sizeof (EFI_ACPI_DESCRIPTION_HEADER); Index < (Xsdt= - > > > >Length); Index =3D Index + sizeof (UINT64)) { > > > > > > + Table =3D *((UINT32 *)((UINT8 *)Xsdt + Index)); > > > > > > + if (((EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Table)->Signature =3D= =3D > > > EFI_ACPI_6_5_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE) { > > > > > > + pFADT =3D (EFI_ACPI_6_5_FIXED_ACPI_DESCRIPTION_TABLE > > > *)(UINTN)Table; > > > > > > + if ((pFADT->XDsdt !=3D 0) || (pFADT->Dsdt !=3D 0)) { > > > > > > + AcpiTableCount =3D AcpiTableCount + 1; > > > > > > + } > > > > > > + } > > > > > > + } > > > > > > + > > > > > > + // > > > > > > + // Allocate memory for founded ACPI tables. > > > > > > + // > > > > > > + AcpiTable =3D AllocateZeroPool (sizeof (UINT32) * AcpiTableCount); > > > > > > + if (AcpiTable =3D=3D NULL) { > > > > > > + return; > > > > > > + } > > > > > > + > > > > > > + AcpiTableCount =3D 0; > > > > > > + AcpiTable[AcpiTableCount++] =3D Rsdt->Checksum; > > > > > > + AcpiTable[AcpiTableCount++] =3D Xsdt->Checksum; > > > > > > + > > > > > > + for (Index =3D sizeof (EFI_ACPI_DESCRIPTION_HEADER); Index < (Xsdt= - > > > >Length); Index =3D Index + sizeof (UINT64)) { > > > > > > + Table =3D *((UINT32 *)((UINT8 *)Xsdt + Ind= ex)); > > > > > > + AcpiTable[AcpiTableCount++] =3D ((EFI_ACPI_DESCRIPTION_HEADER > > > *)(UINTN)Table)->Checksum; > > > > > > + if (((EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Table)->Signature =3D= =3D > > > EFI_ACPI_6_5_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE) { > > > > > > + pFADT =3D (EFI_ACPI_6_5_FIXED_ACPI_DESCRIPTION_TABLE > > > *)(UINTN)Table; > > > > > > + if (pFADT->XDsdt !=3D 0) { > > > > > > + AcpiTable[AcpiTableCount++] =3D ((EFI_ACPI_DESCRIPTION_HEADE= R > > > *)(UINTN)pFADT->XDsdt)->Checksum; > > > > > > + } else { > > > > > > + AcpiTable[AcpiTableCount++] =3D ((EFI_ACPI_DESCRIPTION_HEADE= R > > > *)(UINTN)pFADT->Dsdt)->Checksum; > > > > > > + } > > > > > > + } > > > > > > + } > > > > > > + > > > > > > + // > > > > > > + // pFADT table not found. > > > > > > + // > > > > > > + if (pFADT =3D=3D NULL) { > > > > > > + return; > > > > > > + } > > > > > > + > > > > > > + // > > > > > > + // Calculate CRC value. > > > > > > + // > > > > > > + Status =3D gBS->CalculateCrc32 (AcpiTable, AcpiTableCount, &CRC); > > > > > > + DEBUG ((DEBUG_INFO, "CRC =3D %x and Status =3D %r\n", CRC, Status)= ); > > > > > > + > > > > > > + // > > > > > > + // Set HardwareSignature value based on CRC value. > > > > > > + // > > > > > > + FacsPtr =3D > > > (EFI_ACPI_6_5_FIRMWARE_ACPI_CONTROL_STRUCTURE > *)(UINTN)pFADT- > > > >FirmwareCtrl; > > > > > > + FacsPtr->HardwareSignature =3D CRC; > > > > > > + FreePool (AcpiTable); > > > > > > + DEBUG ((DEBUG_INFO, "%a() - End\n", __FUNCTION__)); > > > > > > +} > > > > > > + > > > > > > VOID > > > > > > UpdateLocalTable ( > > > > > > VOID > > > > > > @@ -1329,7 +1431,13 @@ AcpiEndOfDxeEvent ( > > > // > > > > > > // Calculate Hardware Signature value based on current platform > > > configurations > > > > > > // > > > > > > - IsHardwareChange (); > > > > > > + if ((PcdGet8 (PcdFadtMajorVersion) <=3D > > > EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_REVISION) && > > > > > > + (PcdGet8 (PcdFadtMinorVersion) <=3D > > > EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION)) > > > > > > + { > > > > > > + IsHardwareChange (); > > > > > > + } else { > > > > > > + IsAcpiTableChange (); > > > > > > + } > > > > > > } > > > > > > > > > > > > /** > > > > > > diff --git > > > a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf > > > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf > > > index 694492112b..f47cc3908d 100644 > > > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf > > > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf > > > @@ -128,6 +128,7 @@ > > > gEfiGlobalVariableGuid ## CONSUMES > > > > > > gEfiHobListGuid ## CONSUMES > > > > > > gEfiEndOfDxeEventGroupGuid ## CONSUMES > > > > > > + gEfiAcpiTableGuid ## CONSUMES > > > > > > > > > > > > [Depex] > > > > > > gEfiAcpiTableProtocolGuid AND > > > > > > -- > > > 2.39.2.windows.1 > > > > > > > > > > > > -=3D-=3D-=3D-=3D-=3D-=3D > > > Groups.io Links: You receive all messages sent to this group. > > > View/Reply Online (#103734): > > > https://edk2.groups.io/g/devel/message/103734 > > > Mute This Topic: https://groups.io/mt/98551423/1712937 > > > Group Owner: devel+owner@edk2.groups.io > > > Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray.ni@intel.com] > > > -=3D-=3D-=3D-=3D-=3D-=3D > > > >=20 >=20 >=20 >=20 >=20