From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.8847.1638945708499692529 for ; Tue, 07 Dec 2021 22:41:49 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=iAkmoAW1; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: ray.ni@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10191"; a="324025268" X-IronPort-AV: E=Sophos;i="5.87,296,1631602800"; d="scan'208";a="324025268" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Dec 2021 22:41:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,296,1631602800"; d="scan'208";a="749359493" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga006.fm.intel.com with ESMTP; 07 Dec 2021 22:41:33 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 7 Dec 2021 22:41:33 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 7 Dec 2021 22:41:33 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 7 Dec 2021 22:41:33 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.105) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 7 Dec 2021 22:41:33 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nTP5AUm3tPkS0O9WcGUaVPEBpnTVYIfOOUS81VYnBJl9rW1Ld+FJLqWUeXZ3PO2frpBuce9BvsansPX5GJy7kroYbo1CR6asFbnK/kqtUkXPLv++nr6vxWyF2SiCC40ul2b87XX5tAy65PGaMyBVuzDefuPRmlGY34pBnTBD04KX7KXoNYW7lsVsaFKHvZvvOqHVlB/m0guYVhkH0MDHLQy+ebi6QVCcdcI2Fde3X9oxJDOvCZa9ij+lTUDN+OydZ32V88DHI2xCp6CkxwJW8UApKxAWiXabmOhOLy0u8LDrKxksY1JrarOuUTaxEEbOYQcVASK6VP/HKHJDYIhEwg== 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=QpfuiINJWUODZw9Dc2XAQdNtzRhIlEwdqsfm+2+mBZ0=; b=foyx8Q5Em2p/N58KJgO3oklte9EuJKCgyZ6jPdhQArMGP07x4FEY3HuNx+2QGeaQty848ScO2ni6Y/gLgKo4Kb38bLWJ6zl5ggtXcvaRq5W6vqMFqXETa3ES5Sm/lU2FrUIMFuW/n+L4I1eK4MLqujTj6nhKHdy7aC+3mrkKJwv9Z3Qlz70MqKr7tOpP636Q48JcqGWSKexh6PiBKeo6de8CQTwBr2yAn9zj4KmLBjfEKv84IwWd1ujl4RsMhw1tI4Hgsxz37PhyDoJfVOs49RY6ulmiB3Vc9aWnhY8KCDoqWZCc0g/iMPEIQugW0HX85eFdRz+ECMJoi8HWQLLSLQ== 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=QpfuiINJWUODZw9Dc2XAQdNtzRhIlEwdqsfm+2+mBZ0=; b=iAkmoAW1QWZCvFtQkDRW4tG5R5eX12RXYD31xVPQVZtcJLj67WGGhF+v1YBMrBpPM7snsKvxZmuRJ8PaSMwJ6rZRjJVImtx4aiSeqPrr5vhKfCU4x0aESf2VXSQ/m3Y7XIM4rUyrM3alnI75lBkWqHR3fWgqoPW4uKigrvf7ipk= Received: from BN0PR11MB5696.namprd11.prod.outlook.com (2603:10b6:408:14b::11) by BN6PR11MB1234.namprd11.prod.outlook.com (2603:10b6:404:47::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Wed, 8 Dec 2021 06:41:31 +0000 Received: from BN0PR11MB5696.namprd11.prod.outlook.com ([fe80::49dc:7490:201e:9fc9]) by BN0PR11MB5696.namprd11.prod.outlook.com ([fe80::49dc:7490:201e:9fc9%7]) with mapi id 15.20.4690.029; Wed, 8 Dec 2021 06:41:31 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "Desimone, Nathaniel L" , "Sravanthi, K KavyaX" CC: "Chiu, Chasel" , Liming Gao , "Dong, Eric" , "Oram, Isaac W" , Michael Kubacki Subject: Re: [edk2-devel] [Patch V2] MinPlatformPkg: Check if Acpi table is already installed. Thread-Topic: [edk2-devel] [Patch V2] MinPlatformPkg: Check if Acpi table is already installed. Thread-Index: AQHX6mjeUQERYe6beUaJBcr0QjRx1Kwn25GAgABKkUA= Date: Wed, 8 Dec 2021 06:41:31 +0000 Message-ID: References: <20211206061610.3316-1-k.kavyax.sravanthi@intel.com> In-Reply-To: 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-office365-filtering-correlation-id: f557686a-dc3d-4753-112b-08d9ba15c555 x-ms-traffictypediagnostic: BN6PR11MB1234:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TFglcgiAf4rskUr+HGGTTfV7yoRc8aqEbZ+nGFzYkbUlIRgRq4YTACTJhms8Qy9jLm4mxkplIfbJWY+3WIgZifdg26OHEP6RoVG1OEOCh7kkpJAu10tL0Do2OKh1LK00HuohmPPkZCIH7IW1+JaDCx2v47f6+FEZ/cr4zwQbYI2tPMPP974+afdLuXvHnCeAs3WaQAWE+db8uQ9qG63Kht2RWb7rAz4q1upMUQYFZTUfITY5pBPtfSrEo2pLjWapaNKKAaUWmUneLZN/h/utxhMn2/wj88sr+EegaR9KeOz5JvA/zwMw7lY8CfNnhGrYTbDwX8cEc8KBbI2ftn1nrRi/PxQwNFsjIn2JJpbrPq+RjCdcIFn007ZhwDHKxFYpOoPFLCiWq/k1IsuxQfIJuBkl5I6cbFkMi7NPprY779a8YBYQoDqYbmxA83NLHghfM1RbLCl8yKvZ1H06rk7JnRr/oZoTPkaU1fIgMz0O/vzRdaM6PdpdJcu18TH9F0vNu/1ZH4O355DFb0xgFGgj6CWGABEfEQGzHBEgfqcK+ZgoDawsK/CpJH2d0VfPvBgoKoXanxcwDnlZpnlNpzC+2XdgnXogGEkHq0qIeOpEiZi4iAxOXVcV0nXwGEwHJHtvMkZF1xyZkxsFEuhdwO+AU97OO/5PnT96A39zqrcUofkqB94sCI2hcmkCSV5zBfmdCI7t144g9HC4fUNDF19rdUXZ26L5p50QBgkhD9qN0DbEYAOostwFB5VsQdErHCzEZ0UkOeXML5EYYDh8cFXZqL17K5gPCQm3Z7VG/2Un34RuipuphSyd1udoXGxAep+acXPRJ7IsPXzjWXQAvi1UUA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR11MB5696.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(55016003)(6506007)(186003)(66946007)(83380400001)(64756008)(66556008)(5660300002)(6636002)(8676002)(71200400001)(26005)(76116006)(4326008)(66446008)(33656002)(53546011)(38070700005)(508600001)(966005)(2906002)(122000001)(54906003)(52536014)(7696005)(8936002)(66476007)(9686003)(86362001)(38100700002)(316002)(82960400001)(110136005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Oo8exLmbSk7OfoZa7y6prqt89xVjIcfm/dTrfMSNNbCfphNsExFx3kinN5Co?= =?us-ascii?Q?HNHCe785nW4OWcYStty1wWHtTAISXuuaCg2dqJOhezHWCYZB85jLfqsXXalE?= =?us-ascii?Q?lpdl1/k1oK7WFi/efvmC/bU8ikXKfAKxGiYi4dDGgY+exMEBS4TwX21WuKK6?= =?us-ascii?Q?hsLgq2EIyU0skmevO8PfEZXh2pu6fYe129zrZJhEzCnxjC3RQAAEpnHA+WkZ?= =?us-ascii?Q?DG4QwFNCMl6Zu2tz9YhF6+P7ZWQay4ArCyXVjDF4G+9o7HMNADCrvJI7f1lL?= =?us-ascii?Q?pT+Lr0R8N24vmtqhoRACvEM2fc8q6jD1PULlFGf2pGHHqMCJ/me6a1l9iqCD?= =?us-ascii?Q?MDH95yIIT3r5RPekEZpCdp2rixAzIaIdvItyt+585MU4yp3g+0lz40AkiAAq?= =?us-ascii?Q?MlsX8s10bbCAOllDS6BH62vyfRaC9f9k5IKVyNSQlW8rasYtPK7tszkeIk1z?= =?us-ascii?Q?XYaPsws55AEV68r/u2c5fjIg1IsyIbhwTmKbu64skX6cIzyquemm/GkPn2xV?= =?us-ascii?Q?t82iaYmIIn1+Y6AKXeFSyPsLwmmqEBgNpnzg15hrHG2p5OWhAl2EeCAqznwL?= =?us-ascii?Q?x6cB2+8LX0ukSBgd7xK6MKhnQGPyGuj8psuFGO1o8H3PXt/eRBhbIQXWZ55X?= =?us-ascii?Q?CraCB6eF9NxZlk5g87tfMgIQin0dB+x936Pn/H6TBMBCKVj7tn4F8OjVm0Uf?= =?us-ascii?Q?o14Svx00GKhhBkCxcw9XkSUKAQ0vA5x1W+bsKghvP1YrtJVeqVefQpezbJSM?= =?us-ascii?Q?2/5DNZ48+C+NEff4K9QbghHokZYrCKkjs+PrvzFkoT3Z4yimu5PPRPqcZytp?= =?us-ascii?Q?19piKHaU/3KvqQKWmzajnBAGbHodRW2vfwxXI+RL0+jt58VGOClB35WnvP4K?= =?us-ascii?Q?XZuRqOtt6x8Odtt1ZJ2jtpXEJVPidb6M0N5gPpszlKPCtaT4XGj6Af7xCJvL?= =?us-ascii?Q?LrNceUjspIdBmlhWgCkqgtUMX9FZfn8CQmO3/6aziOL83JfyeUx7HQjvQKC9?= =?us-ascii?Q?k8+uwYWsYsavXr19wGOIeRirPa9+P/HVBgch3Wp1PvDXMXo44HbxaH22Q+H8?= =?us-ascii?Q?bKWg7Le1VrFsgxlEARg4NNYGduwhgrKwR7JhekxReHmqsiXJTugUPv6uhaEC?= =?us-ascii?Q?rUWG6FtgwZNJycQqopitr/s7u6YbIG+Q14Y29eWiR5GKzhfsF6cKV22l4byc?= =?us-ascii?Q?lKiqa4KOnmxggrhXOWPJjPkDWH29SdjbLH/wtW/zw08E2ixMWFBVVCW/oZrP?= =?us-ascii?Q?r6gnRWjugyQVQsQUkVQjYDH3LP3dEh6lmDQLUfsp95mcsR8cUYJN2l4LIIyr?= =?us-ascii?Q?+eB0O9W2rg60edlh28yZw450HHcLj25hdkxyN06PWpfXijdQdr2aOtR5c7iP?= =?us-ascii?Q?mmmTfs8q7l26dr7x8PmV2pcgN9aAENt0js10SPf9yqNw99K5LTnbns3tiyLl?= =?us-ascii?Q?wtJu83LWIe9T4UvIrKNY2Md/9Q93SRikg3JnPKFxwJZPY//vUkXfPoVz48+o?= =?us-ascii?Q?v8HMxFLHCwg4/bBdPSM/abdSCnDTNXvygBfsvdHBGmS23htMb4XKo4k+/THg?= =?us-ascii?Q?3r2Gau+M7UvRV6MIVMFaYoUI4b7TqwuNAb10QcgNe8UJSLvtXGkLh/oU96dy?= =?us-ascii?Q?rsN3qsqLgDwkL82Os+xs0j8=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN0PR11MB5696.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f557686a-dc3d-4753-112b-08d9ba15c555 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2021 06:41:31.5599 (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: ETxg+q9rJA+5xX5Gyrty/vhMhuuyXOqj12n6uERNHxDgeOqGtDsF766Gq4MF/E6xe1FgcELplZmn3bgr9jBCHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1234 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 Nate, I don't consider it as a hack. UefiPayloadPkg requires that bootloader prod= uces all ACPI tables. Now we are in a middle stage. So, only the MCFG and FADT are produced (as g= UniversalPayloadAcpiTableGuid HOB) in PEI phase. Thanks, Ray -----Original Message----- From: devel@edk2.groups.io On Behalf Of Nate DeSimon= e Sent: Wednesday, December 8, 2021 10:06 AM To: Sravanthi, K KavyaX ; devel@edk2.groups.i= o Cc: Chiu, Chasel ; Liming Gao ; Dong, Eric ; Oram, Isaac W ; Michael Kubacki Subject: Re: [edk2-devel] [Patch V2] MinPlatformPkg: Check if Acpi table is= already installed. This seems like a hack to me. One of the major goals of the Minimum Platfor= m Architecture is consistency. A board override for the MinPlatform provide= d installation of the MCFG table runs counter to that goal. Every field in = the MCFG table produced by MinPlatform's implementation is fully customizab= le by board code via the PciSegmentInfoLib's GetPciSegmentInfo() function. = If a multi-segment MCFG table is needed, then all the board needs to do is = choose a different implementation of PciSegmentInfoLib than the default one= (MinPlatformPkg\Pci\Library\PciSegmentInfoLibSimple\PciSegmentInfoLibSimpl= e.inf) I cannot conceive of any reason why a board override of this functionality = is required. Why do you need this?=20 -----Original Message----- From: Sravanthi, K KavyaX =20 Sent: Sunday, December 5, 2021 10:16 PM To: devel@edk2.groups.io Cc: Sravanthi, K KavyaX ; Chiu, Chasel ; Desimone, Nathaniel L ; = Liming Gao ; Dong, Eric Subject: [Patch V2] MinPlatformPkg: Check if Acpi table is already installe= d. Check if Acpi table is already installed by locating the first ACPI table i= n XSDT/RSDT based on Signature Cc: Chasel Chiu Cc: Nate DeSimone Cc: Liming Gao Cc: Eric Dong Signed-off-by: kavya Reviewed-by: Zhiguang Liu --- Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c | 18 ++++++++= ++++++++++ 1 file changed, 18 insertions(+) diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c b= /Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c index 785cf4c2f9..dcbb8b7c7f 100644 --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c @@ -1048,12 +1048,21 @@ InstallMcfgFromScratch ( { EFI_STATUS = Status; EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER = *McfgTable; + EFI_ACPI_COMMON_HEADER = *Mcfg; EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCAT= ION_STRUCTURE *Segment; UINTN = Index; UINTN = SegmentCount; PCI_SEGMENT_INFO = *PciSegmentInfo; UINTN = TableHandle; =20 + Mcfg =3D (EFI_ACPI_COMMON_HEADER *) EfiLocateFirstAcpiTable ( + EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPP= ED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE + ); if (Mcfg !=3D NULL) { + DEBUG ((DEBUG_INFO, "MCFG table already installed\n")); + return EFI_SUCCESS; + } + PciSegmentInfo =3D GetPciSegmentInfo (&SegmentCount); =20 McfgTable =3D AllocateZeroPool ( @@ -1365,6 +1374,7 @@ UpdateLocalTable ( { EFI_STATUS Status; EFI_ACPI_COMMON_HEADER *CurrentTable; + EFI_ACPI_COMMON_HEADER *Table; EFI_ACPI_TABLE_VERSION Version; UINTN TableHandle; UINTN Index; @@ -1372,6 +1382,14 @@ UpdateLocalTable ( for (Index =3D 0; Index < sizeof(mLocalTable)/sizeof(mLocalTable[0]); In= dex++) { CurrentTable =3D mLocalTable[Index]; =20 + Table =3D (EFI_ACPI_COMMON_HEADER *) EfiLocateFirstAcpiTable (CurrentT= able->Signature); + if (Table !=3D NULL) { + DEBUG ((DEBUG_INFO, "Acpi table with signature=3D%c%c%c%c already in= stalled\n", + ((CHAR8*)&CurrentTable->Signature)[0], ((CHAR8*)&CurrentTable-= >Signature)[1], + ((CHAR8*)&CurrentTable->Signature)[2], ((CHAR8*)&CurrentTable-= >Signature)[3])); + continue; + } + PlatformUpdateTables (CurrentTable, &Version); =20 TableHandle =3D 0; -- 2.16.2.windows.1