From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=sCOcbesD; spf=pass (domain: arm.com, ip: 40.107.7.42, mailfrom: sami.mujawar@arm.com) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (EUR04-HE1-obe.outbound.protection.outlook.com [40.107.7.42]) by groups.io with SMTP; Mon, 10 Jun 2019 13:12:52 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fXIoLPoYxSgUnGbN6CNtAVOGNavPNTGdsoChrplQbl0=; b=sCOcbesDGaSu6qVGfY1xN9rgFzDsAex5JzXegW/ex2dFWM0K3MUOPJTpDUfMTjLElljazLpkAX55QuX6Yff3cwyO6m1aYWS3aMteRyWET23jRBlRnPMcGL8mRyOPxMxa5uRSCO4IMnVY6/f2pc/Qri/+e5sB1HX0B2Pf093KgmQ= Received: from DB6PR0802MB2375.eurprd08.prod.outlook.com (10.172.228.142) by DB6PR0802MB2149.eurprd08.prod.outlook.com (10.172.226.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.15; Mon, 10 Jun 2019 20:12:48 +0000 Received: from DB6PR0802MB2375.eurprd08.prod.outlook.com ([fe80::a46c:aa3a:17bf:7909]) by DB6PR0802MB2375.eurprd08.prod.outlook.com ([fe80::a46c:aa3a:17bf:7909%3]) with mapi id 15.20.1965.017; Mon, 10 Jun 2019 20:12:48 +0000 From: "Sami Mujawar" To: "devel@edk2.groups.io" CC: nd Subject: Re: [PATCH v1 1/1] DynamicTablesPkg: Add ACPI 6.3 SPE support to MADT generator Thread-Topic: [PATCH v1 1/1] DynamicTablesPkg: Add ACPI 6.3 SPE support to MADT generator Thread-Index: AQHVC/cNu6wvrbktWEyLqFcXr0WFu6aVebXw Date: Mon, 10 Jun 2019 20:12:48 +0000 Message-ID: References: <20190516145245.32572-1-krzysztof.koch@arm.com> In-Reply-To: <20190516145245.32572-1-krzysztof.koch@arm.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 9f2fe08f-71dd-48b0-9db3-6723c09e60d6.1 x-checkrecipientchecked: true authentication-results: spf=none (sender IP is ) smtp.mailfrom=Sami.Mujawar@arm.com; x-originating-ip: [217.140.106.54] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0f5717b1-3e62-461f-f843-08d6ede00221 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020);SRVR:DB6PR0802MB2149; x-ms-traffictypediagnostic: DB6PR0802MB2149: x-ms-exchange-purlcount: 1 nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0064B3273C x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(366004)(346002)(376002)(136003)(39860400002)(13464003)(199004)(189003)(486006)(966005)(73956011)(30864003)(53936002)(66066001)(33656002)(6116002)(256004)(5660300002)(3846002)(76116006)(71190400001)(476003)(66946007)(6436002)(5640700003)(86362001)(6306002)(478600001)(55016002)(64756008)(74316002)(9686003)(66556008)(66476007)(71200400001)(66446008)(14454004)(72206003)(316002)(6246003)(6916009)(2501003)(68736007)(102836004)(6506007)(53546011)(305945005)(76176011)(26005)(8676002)(186003)(1730700003)(7696005)(8936002)(81156014)(229853002)(446003)(99286004)(11346002)(2906002)(4326008)(25786009)(7736002)(81166006)(52536014)(2351001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2149;H:DB6PR0802MB2375.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: PkPi5hLUyO/8V34OVgEzF3riYxOHFi3FKjiHfNIT1xO+jwSyWv3Zk6DPKWXJFJ6/efx3SsW4/L1gRdZfmVWjySiRGb938bOF7Y12J9zHDzDHPQyNs9IAMiIMcB0PlTeZBAvqD4Wb3nscBPbhY+33sQLV7SaukSXiqIq9UuVjYcsOWJNkzI7Cb4eJnvTaH9DisYbPxx2ExKKA0Vm+IWIxhQzI7Em7plyopY91+FLQTzz1yjodobshAZRi6Ey4HLBnbxfrBTVM3aJoypn8LiObIlF+d+y0lahDnuvF++k28y9ElrY7qfguPHnPUY+As1bUs+eUGhekuylC71roMe9KKi/niWqTH70AYaA9DE8AnqwKAJLoKurs3ABWvRCARP4IQtEiQhw29KLYwsrqaGaleBIj7RvFnXRAWKLQw6qIGG0= MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0f5717b1-3e62-461f-f843-08d6ede00221 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2019 20:12:48.2270 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Sami.Mujawar@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2149 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Sami Mujawar -----Original Message----- From: Krzysztof Koch =20 Sent: 16 May 2019 03:53 PM To: devel@edk2.groups.io Cc: leif.lindholm@linaro.org; Sami Mujawar ; Alexei F= edorov ; Matteo Carlini ; S= tephanie Hughes-Fitt ; nd Subject: [PATCH v1 1/1] DynamicTablesPkg: Add ACPI 6.3 SPE support to MADT = generator The Dynamic Tables Framework now supports generating Multiple APIC Descript= ion Table (MADT) revision 5 for ARM platforms while maintaining backward-co= mpatibility with ACPI 6.2. The relevant change is the enablement of the Statistical Profiling Extensio= n (SPE). Signed-off-by: Krzysztof Koch --- Changes can be seen at: https://github.com/KrzysztofKoch1/edk2/tree/476_mad= t_add_spe_v1 Notes: v1: - Add support for SPE in MADT generator [Krzysztof] DynamicTablesPkg/Include/ArmNameSpaceObjects.h | 7 ++ DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c | 105 +++= ++++++++--------- 2 files changed, 66 insertions(+), 46 deletions(-) diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTables= Pkg/Include/ArmNameSpaceObjects.h index bf70dc76cea044b9a8e8eb529d2ddbf892bafd58..d9dcca12db68d16d3ddb73553ec= d2383358832e7 100644 --- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h @@ -155,6 +155,13 @@ typedef struct CmArmGicCInfo { ACPI Specification. */ UINT8 ProcessorPowerEfficiencyClass; + + /** Statistical Profiling Extension buffer overflow GSIV. Zero if + unsupported by this processor. This field was introduced in + ACPI 6.3 (MADT revision 5) and is therefore ignored when + generating MADT revision 4 or lower. + */ + UINT16 SpeOverflowInterrupt; } CM_ARM_GICC_INFO; =20 /** A structure that describes the diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator= .c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c index ab9734fb31480f1b653227d1d56abf60bb04f98a..3945d18d76915938081a5ef36fc= 9e50261ea3a0a 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c @@ -5,7 +5,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent =20 @par Reference(s): - - ACPI 6.2 Specification - Errata A, September 2017 + - ACPI 6.3 Specification - January 2019 =20 **/ =20 @@ -82,25 +82,27 @@ GET_OBJECT_LIST ( ); =20 /** This function updates the GIC CPU Interface Information in the - EFI_ACPI_6_2_GIC_STRUCTURE structure. + EFI_ACPI_6_3_GIC_STRUCTURE structure. =20 - @param [in] Gicc Pointer to GIC CPU Interface structure. - @param [in] GicCInfo Pointer to the GIC CPU Interface Information. + @param [in] Gicc Pointer to GIC CPU Interface structure. + @param [in] GicCInfo Pointer to the GIC CPU Interface Information. + @param [in] MadtRev MADT table revision. **/ STATIC VOID AddGICC ( - IN EFI_ACPI_6_2_GIC_STRUCTURE * CONST Gicc, - IN CONST CM_ARM_GICC_INFO * CONST GicCInfo + IN EFI_ACPI_6_3_GIC_STRUCTURE * CONST Gicc, + IN CONST CM_ARM_GICC_INFO * CONST GicCInfo, + IN CONST UINT8 MadtRev ) { ASSERT (Gicc !=3D NULL); ASSERT (GicCInfo !=3D NULL); =20 // UINT8 Type - Gicc->Type =3D EFI_ACPI_6_2_GIC; + Gicc->Type =3D EFI_ACPI_6_3_GIC; // UINT8 Length - Gicc->Length =3D sizeof (EFI_ACPI_6_2_GIC_STRUCTURE); + Gicc->Length =3D sizeof (EFI_ACPI_6_3_GIC_STRUCTURE); // UINT16 Reserved Gicc->Reserved =3D EFI_ACPI_RESERVED_WORD; =20 @@ -134,10 +136,18 @@ AddGICC ( // UINT8 ProcessorPowerEfficiencyClass Gicc->ProcessorPowerEfficiencyClass =3D GicCInfo->ProcessorPowerEfficiencyClass; - // UINT8 Reserved2[3] - Gicc->Reserved2[0] =3D EFI_ACPI_RESERVED_BYTE; - Gicc->Reserved2[1] =3D EFI_ACPI_RESERVED_BYTE; - Gicc->Reserved2[2] =3D EFI_ACPI_RESERVED_BYTE; + // UINT8 Reserved2 + Gicc->Reserved2 =3D EFI_ACPI_RESERVED_BYTE; + + // UINT16 SpeOverflowInterrupt + if (MadtRev > EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION) { + Gicc->SpeOverflowInterrupt =3D GicCInfo->SpeOverflowInterrupt; }=20 + else { + // Setting SpeOverflowInterrupt to 0 ensures backward compatibility wi= th + // ACPI 6.2 by also clearing the Reserved2[1] and Reserved2[2] fields + // in EFI_ACPI_6_2_GIC_STRUCTURE. + Gicc->SpeOverflowInterrupt =3D 0; + } } =20 /** Add the GIC CPU Interface Information to the MADT Table. @@ -147,20 +157,22 @@ AddGICC ( @param [in] GicCInfo Pointer to the GIC CPU Information list. @param [in] GicCCount Count of GIC CPU Interfaces. + @param [in] MadtRev MADT table revision. **/ STATIC VOID AddGICCList ( - IN EFI_ACPI_6_2_GIC_STRUCTURE * Gicc, + IN EFI_ACPI_6_3_GIC_STRUCTURE * Gicc, IN CONST CM_ARM_GICC_INFO * GicCInfo, - IN UINT32 GicCCount + IN UINT32 GicCCount, + IN CONST UINT8 MadtRev ) { ASSERT (Gicc !=3D NULL); ASSERT (GicCInfo !=3D NULL); =20 while (GicCCount-- !=3D 0) { - AddGICC (Gicc++, GicCInfo++); + AddGICC (Gicc++, GicCInfo++, MadtRev); } } =20 @@ -172,7 +184,7 @@ AddGICCList ( STATIC VOID AddGICD ( - EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE * CONST Gicd, + EFI_ACPI_6_3_GIC_DISTRIBUTOR_STRUCTURE * CONST Gicd, CONST CM_ARM_GICD_INFO * CONST GicDInfo ) { @@ -180,9 +192,9 @@ AddGICD ( ASSERT (GicDInfo !=3D NULL); =20 // UINT8 Type - Gicd->Type =3D EFI_ACPI_6_2_GICD; + Gicd->Type =3D EFI_ACPI_6_3_GICD; // UINT8 Length - Gicd->Length =3D sizeof (EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE); + Gicd->Length =3D sizeof (EFI_ACPI_6_3_GIC_DISTRIBUTOR_STRUCTURE); // UINT16 Reserved Gicd->Reserved1 =3D EFI_ACPI_RESERVED_WORD; // UINT32 Identifier @@ -209,15 +221,15 @@ AddGICD ( STATIC VOID AddGICMsiFrame ( - IN EFI_ACPI_6_2_GIC_MSI_FRAME_STRUCTURE * CONST GicMsiFrame, + IN EFI_ACPI_6_3_GIC_MSI_FRAME_STRUCTURE * CONST GicMsiFrame, IN CONST CM_ARM_GIC_MSI_FRAME_INFO * CONST GicMsiFrameInfo ) { ASSERT (GicMsiFrame !=3D NULL); ASSERT (GicMsiFrameInfo !=3D NULL); =20 - GicMsiFrame->Type =3D EFI_ACPI_6_2_GIC_MSI_FRAME; - GicMsiFrame->Length =3D sizeof (EFI_ACPI_6_2_GIC_MSI_FRAME_STRUCTURE); + GicMsiFrame->Type =3D EFI_ACPI_6_3_GIC_MSI_FRAME; GicMsiFrame->Length=20 + =3D sizeof (EFI_ACPI_6_3_GIC_MSI_FRAME_STRUCTURE); GicMsiFrame->Reserved1 =3D EFI_ACPI_RESERVED_WORD; GicMsiFrame->GicMsiFrameId =3D GicMsiFrameInfo->GicMsiFrameId; GicMsiFrame->PhysicalBaseAddress =3D GicMsiFrameInfo->PhysicalBaseAddres= s; @@ -236,7 +248,7 @@ AddGICMsiFrame ( STATIC VOID AddGICMsiFrameInfoList ( - IN EFI_ACPI_6_2_GIC_MSI_FRAME_STRUCTURE * GicMsiFrame, + IN EFI_ACPI_6_3_GIC_MSI_FRAME_STRUCTURE * GicMsiFrame, IN CONST CM_ARM_GIC_MSI_FRAME_INFO * GicMsiFrameInfo, IN UINT32 GicMsiFrameCount ) @@ -257,15 +269,15 @@ AddGICMsiFrameInfoList ( STATIC VOID AddGICRedistr= ibutor ( - IN EFI_ACPI_6_2_GICR_STRUCTURE * CONST Gicr, + IN EFI_ACPI_6_3_GICR_STRUCTURE * CONST Gicr, IN CONST CM_ARM_GIC_REDIST_INFO * CONST GicRedisributorInfo ) { ASSERT (Gicr !=3D NULL); ASSERT (GicRedisributorInfo !=3D NULL); =20 - Gicr->Type =3D EFI_ACPI_6_2_GICR; - Gicr->Length =3D sizeof (EFI_ACPI_6_2_GICR_STRUCTURE); + Gicr->Type =3D EFI_ACPI_6_3_GICR; + Gicr->Length =3D sizeof (EFI_ACPI_6_3_GICR_STRUCTURE); Gicr->Reserved =3D EFI_ACPI_RESERVED_WORD; Gicr->DiscoveryRangeBaseAddress =3D GicRedisributorInfo->DiscoveryRangeBaseAddress; @@ -281,7 +293,7 @@ AddGICRedistributor ( STATIC VOID AddGICRedistributo= rList ( - IN EFI_ACPI_6_2_GICR_STRUCTURE * Gicr, + IN EFI_ACPI_6_3_GICR_STRUCTURE * Gicr, IN CONST CM_ARM_GIC_REDIST_INFO * GicRInfo, IN UINT32 GicRCount ) @@ -302,15 +314,15 @@ AddGICRedistributorList ( STATIC VOID AddGICInterr= uptTranslationService ( - IN EFI_ACPI_6_2_GIC_ITS_STRUCTURE * CONST GicIts, + IN EFI_ACPI_6_3_GIC_ITS_STRUCTURE * CONST GicIts, IN CONST CM_ARM_GIC_ITS_INFO * CONST GicItsInfo ) { ASSERT (GicIts !=3D NULL); ASSERT (GicItsInfo !=3D NULL); =20 - GicIts->Type =3D EFI_ACPI_6_2_GIC_ITS; - GicIts->Length =3D sizeof (EFI_ACPI_6_2_GIC_ITS_STRUCTURE); + GicIts->Type =3D EFI_ACPI_6_3_GIC_ITS; + GicIts->Length =3D sizeof (EFI_ACPI_6_3_GIC_ITS_STRUCTURE); GicIts->Reserved =3D EFI_ACPI_RESERVED_WORD; GicIts->GicItsId =3D GicItsInfo->GicItsId; GicIts->PhysicalBaseAddress =3D GicItsInfo->PhysicalBaseAddress; @@ -327= ,7 +339,7 @@ AddGICInterruptTranslationService ( STATIC VOID AddGICItsLi= st ( - IN EFI_ACPI_6_2_GIC_ITS_STRUCTURE * GicIts, + IN EFI_ACPI_6_3_GIC_ITS_STRUCTURE * GicIts, IN CONST CM_ARM_GIC_ITS_INFO * GicItsInfo, IN UINT32 GicItsCount ) @@ -390,7 +402,7 @@ BuildMadtTable ( UINT32 GicRedistOffset; UINT32 GicItsOffset; =20 - EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER * Madt; + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER * Madt; =20 ASSERT (This !=3D NULL); ASSERT (AcpiTableInfo !=3D NULL); @@ -521,22 +533,22 @@ BuildMadtTable ( goto error_handler; } =20 - TableSize =3D sizeof (EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADE= R); + TableSize =3D sizeof=20 + (EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER); =20 GicCOffset =3D TableSize; - TableSize +=3D (sizeof (EFI_ACPI_6_2_GIC_STRUCTURE) * GicCCount); + TableSize +=3D (sizeof (EFI_ACPI_6_3_GIC_STRUCTURE) * GicCCount); =20 GicDOffset =3D TableSize; - TableSize +=3D (sizeof (EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE) * GicDCo= unt); + TableSize +=3D (sizeof (EFI_ACPI_6_3_GIC_DISTRIBUTOR_STRUCTURE) *=20 + GicDCount); =20 GicMSIOffset =3D TableSize; - TableSize +=3D (sizeof (EFI_ACPI_6_2_GIC_MSI_FRAME_STRUCTURE) * GicMSICo= unt); + TableSize +=3D (sizeof (EFI_ACPI_6_3_GIC_MSI_FRAME_STRUCTURE) *=20 + GicMSICount); =20 GicRedistOffset =3D TableSize; - TableSize +=3D (sizeof (EFI_ACPI_6_2_GICR_STRUCTURE) * GicRedistCount); + TableSize +=3D (sizeof (EFI_ACPI_6_3_GICR_STRUCTURE) * GicRedistCount); =20 GicItsOffset =3D TableSize; - TableSize +=3D (sizeof (EFI_ACPI_6_2_GIC_ITS_STRUCTURE) * GicItsCount); + TableSize +=3D (sizeof (EFI_ACPI_6_3_GIC_ITS_STRUCTURE) * GicItsCount); =20 // Allocate the Buffer for MADT table *Table =3D (EFI_ACPI_DESCRIPTION_HEADER*)AllocateZeroPool (TableSize); @= @ -552,7 +564,7 @@ BuildMadtTable ( goto error_handler; } =20 - Madt =3D (EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER*)*Table; + Madt =3D (EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER*)*Table; =20 DEBUG (( DEBUG_INFO, @@ -578,19 +590,20 @@ BuildMadtTable ( } =20 AddGICCList ( - (EFI_ACPI_6_2_GIC_STRUCTURE*)((UINT8*)Madt + GicCOffset), + (EFI_ACPI_6_3_GIC_STRUCTURE*)((UINT8*)Madt + GicCOffset), GicCInfo, - GicCCount + GicCCount, + Madt->Header.Revision ); =20 AddGICD ( - (EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE*)((UINT8*)Madt + GicDOffset), + (EFI_ACPI_6_3_GIC_DISTRIBUTOR_STRUCTURE*)((UINT8*)Madt +=20 + GicDOffset), GicDInfo ); =20 if (GicMSICount !=3D 0) { AddGICMsiFrameInfoList ( - (EFI_ACPI_6_2_GIC_MSI_FRAME_STRUCTURE*)((UINT8*)Madt + GicMSIOffset)= , + (EFI_ACPI_6_3_GIC_MSI_FRAME_STRUCTURE*)((UINT8*)Madt +=20 + GicMSIOffset), GicMSIInfo, GicMSICount ); @@ -598,7 +611,7 @@ BuildMadtTable ( =20 if (GicRedistCount !=3D 0) { AddGICRedistributorList ( - (EFI_ACPI_6_2_GICR_STRUCTURE*)((UINT8*)Madt + GicRedistOffset), + (EFI_ACPI_6_3_GICR_STRUCTURE*)((UINT8*)Madt + GicRedistOffset), GicRedistInfo, GicRedistCount ); @@ -606,7 +619,7 @@ BuildMadtTable ( =20 if (GicItsCount !=3D 0) { AddGICItsList ( - (EFI_ACPI_6_2_GIC_ITS_STRUCTURE*)((UINT8*)Madt + GicItsOffset), + (EFI_ACPI_6_3_GIC_ITS_STRUCTURE*)((UINT8*)Madt + GicItsOffset), GicItsInfo, GicItsCount ); @@ -673,9 +686,9 @@ ACPI_TABLE_GENERATOR MadtGenerator =3D { // Generator Description L"ACPI.STD.MADT.GENERATOR", // ACPI Table Signature - EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, // ACPI Table Revision supported by this Generator - EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION, + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION, // Minimum supported ACPI Table Revision EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION, // Creator ID -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'