From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web10.1847.1628279677178183615 for ; Fri, 06 Aug 2021 12:54:37 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@linux.microsoft.com header.s=default header.b=QbuulBVT; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from localhost.localdomain (unknown [167.220.2.74]) by linux.microsoft.com (Postfix) with ESMTPSA id 675D0209F631; Fri, 6 Aug 2021 12:54:36 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 675D0209F631 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1628279676; bh=3UsvnptBIjIX/rGi2v5bppHPUBj3PRfcNjshLPUAEYk=; h=From:To:Cc:Subject:Date:From; b=QbuulBVTdDzDMQ/AAyvnhXwgzFvlvuo2xepHToRjlSBRRxpjfI1JL0K6Hgl1gBh4x vma+vLXyD4HZtQOH7ZFfYJPgI9Lz/eLrBKsKOIWwhmv6NQm6ZGiMbYbO08yvCwLPYW jcOxuJJBLf/J/XKSbK5YKmysfN2pnoYpDVy6VHNw= From: "Michael Kubacki" To: devel@edk2.groups.io Cc: Chasel Chiu , Nate DeSimone , Liming Gao , Eric Dong , Daniel Maddy , Michael Kubacki Subject: [edk2-platforms][PATCH v1 1/1] MinPlatformPkg/AcpiTables: Update structures for ACPI 6.3 Date: Fri, 6 Aug 2021 15:53:56 -0400 Message-Id: <20210806195356.372-1-mikuback@linux.microsoft.com> X-Mailer: git-send-email 2.28.0.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Daniel Maddy REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3535 Updates ACPI table structures in MinPlatformPkg for ACPI 6.3. Cc: Chasel Chiu Cc: Nate DeSimone Cc: Liming Gao Cc: Eric Dong Cc: Daniel Maddy Co-authored-by: Michael Kubacki Signed-off-by: Michael Kubacki --- Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c | 203 +++++= +++++---------- Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Facs/Facs.c | 11 +- Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Fadt/Fadt.c | 74 ++++-= -- 3 files changed, 150 insertions(+), 138 deletions(-) diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c= b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c index 2b51c34ef2fd..5e3c4c0672f9 100644 --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c @@ -2,6 +2,7 @@ ACPI Platform Driver =20 Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.
+Copyright (c) Microsoft Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -13,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #pragma pack(1) =20 typedef struct { - UINT32 AcpiProcessorId; + UINT32 AcpiProcessorUid; UINT32 ApicId; UINT32 Flags; UINT32 SwProcApicId; @@ -27,9 +28,9 @@ typedef struct { // Define Union of IO APIC & Local APIC structure; // typedef union { - EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_STRUCTURE AcpiLocalApic; - EFI_ACPI_4_0_IO_APIC_STRUCTURE AcpiIoApic; - EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE AcpiLocalx2Apic; + EFI_ACPI_6_3_PROCESSOR_LOCAL_APIC_STRUCTURE AcpiLocalApic; + EFI_ACPI_6_3_IO_APIC_STRUCTURE AcpiIoApic; + EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC_STRUCTURE AcpiLocalx2Apic; struct { UINT8 Type; UINT8 Length; @@ -38,9 +39,9 @@ typedef union { =20 #pragma pack() =20 -extern EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs; -extern EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt; -extern EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER Hpet; +extern EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs; +extern EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE Fadt; +extern EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER Hpet; extern EFI_ACPI_WSMT_TABLE Wsmt; =20 VOID *mLocalTable[] =3D { @@ -217,7 +218,7 @@ DebugDisplayReOrderTable( DEBUG ((EFI_D_ERROR, "Index AcpiProcId ApicId Flags SwApicId Skt\= n")); for (Index=3D0; IndexAcpiApicCommon.Type; - LocalApicPtr =3D (EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_STRUCTURE *)(&((AC= PI_APIC_STRUCTURE_PTR *)ApicPtr)->AcpiLocalApic); - LocalX2ApicPtr =3D (EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE *)(&= ((ACPI_APIC_STRUCTURE_PTR *)ApicPtr)->AcpiLocalx2Apic); + LocalApicPtr =3D (EFI_ACPI_6_3_PROCESSOR_LOCAL_APIC_STRUCTURE *)(&((AC= PI_APIC_STRUCTURE_PTR *)ApicPtr)->AcpiLocalApic); + LocalX2ApicPtr =3D (EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC_STRUCTURE *)(&= ((ACPI_APIC_STRUCTURE_PTR *)ApicPtr)->AcpiLocalx2Apic); =20 - if(Type =3D=3D EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC) { + if(Type =3D=3D EFI_ACPI_6_3_PROCESSOR_LOCAL_APIC) { if(!mX2ApicEnabled) { - LocalApicPtr->Flags =3D (UINT8)mCpuApicIdOrderTable[Loca= lApicCounter].Flags; - LocalApicPtr->ApicId =3D (UINT8)mCpuApicIdOrderTable[Loca= lApicCounter].ApicId; - LocalApicPtr->AcpiProcessorId =3D (UINT8)mCpuApicIdOrderTable[Loca= lApicCounter].AcpiProcessorId; + LocalApicPtr->Flags =3D (UINT8)mCpuApicIdOrderTable[Loc= alApicCounter].Flags; + LocalApicPtr->ApicId =3D (UINT8)mCpuApicIdOrderTable[Loc= alApicCounter].ApicId; + LocalApicPtr->AcpiProcessorUid =3D (UINT8)mCpuApicIdOrderTable[Loc= alApicCounter].AcpiProcessorUid; } else { - LocalApicPtr->Flags =3D 0; - LocalApicPtr->ApicId =3D 0xFF; - LocalApicPtr->AcpiProcessorId =3D (UINT8)0xFF; + LocalApicPtr->Flags =3D 0; + LocalApicPtr->ApicId =3D 0xFF; + LocalApicPtr->AcpiProcessorUid =3D (UINT8)0xFF; Status =3D EFI_UNSUPPORTED; } - } else if(Type =3D=3D EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC) { + } else if(Type =3D=3D EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC) { if(mX2ApicEnabled) { LocalX2ApicPtr->Flags =3D (UINT8)mCpuApicIdOrderTable[L= ocalApicCounter].Flags; LocalX2ApicPtr->X2ApicId =3D mCpuApicIdOrderTable[LocalApi= cCounter].ApicId; - LocalX2ApicPtr->AcpiProcessorUid =3D mCpuApicIdOrderTable[LocalApi= cCounter].AcpiProcessorId; + LocalX2ApicPtr->AcpiProcessorUid =3D mCpuApicIdOrderTable[LocalApi= cCounter].AcpiProcessorUid; } else { LocalX2ApicPtr->Flags =3D 0; LocalX2ApicPtr->X2ApicId =3D (UINT32)-1; @@ -311,8 +312,8 @@ SortCpuLocalApicInTable ( CpuIdMapPtr->ApicId =3D (UINT32)ProcessorInfoBuffer.ProcessorId= ; CpuIdMapPtr->Flags =3D ((ProcessorInfoBuffer.StatusFlag & PROC= ESSOR_ENABLED_BIT) !=3D 0); CpuIdMapPtr->SocketNum =3D (UINT32)ProcessorInfoBuffer.Location.= Package; - CpuIdMapPtr->AcpiProcessorId =3D (CpuIdMapPtr->SocketNum * Fixed= PcdGet32(PcdMaxCpuCoreCount) * FixedPcdGet32(PcdMaxCpuThreadCount)) + Get= IndexFromApicId(CpuIdMapPtr->ApicId); //CpuIdMapPtr->ApicId; - CpuIdMapPtr->SwProcApicId =3D ((UINT32)(ProcessorInfoBuffer.Loca= tion.Package << mNumOfBitShift) + (((UINT32)ProcessorInfoBuffer.Processor= Id) & CoreThreadMask)); + CpuIdMapPtr->AcpiProcessorUid =3D (CpuIdMapPtr->SocketNum * Fixe= dPcdGet32(PcdMaxCpuCoreCount) * FixedPcdGet32(PcdMaxCpuThreadCount)) + Ge= tIndexFromApicId(CpuIdMapPtr->ApicId); //CpuIdMapPtr->ApicId; + CpuIdMapPtr->SwProcApicId =3D ((UINT32)(ProcessorInfoBuffer.= Location.Package << mNumOfBitShift) + (((UINT32)ProcessorInfoBuffer.Proce= ssorId) & CoreThreadMask)); if(mX2ApicEnabled) { //if X2Apic, re-order the socket # so it st= arts from base 0 and contiguous //may not necessory!!!!! } @@ -321,18 +322,18 @@ SortCpuLocalApicInTable ( if (CpuIdMapPtr->Flags =3D=3D 1) { =20 if(mForceX2ApicId) { - CpuIdMapPtr->SocketNum &=3D 0x7; - CpuIdMapPtr->AcpiProcessorId &=3D 0xFF; //keep lower 8bit du= e to use Proc obj in dsdt - CpuIdMapPtr->SwProcApicId &=3D 0xFF; + CpuIdMapPtr->SocketNum &=3D 0x7; + CpuIdMapPtr->AcpiProcessorUid &=3D 0xFF; //keep lower 8bit d= ue to use Proc obj in dsdt + CpuIdMapPtr->SwProcApicId &=3D 0xFF; } } } else { //not enabled - CpuIdMapPtr =3D (EFI_CPU_ID_ORDER_MAP *)&mCpuApicIdOrderTable[In= dex]; - CpuIdMapPtr->ApicId =3D (UINT32)-1; - CpuIdMapPtr->Flags =3D 0; - CpuIdMapPtr->AcpiProcessorId =3D (UINT32)-1; - CpuIdMapPtr->SwProcApicId =3D (UINT32)-1; - CpuIdMapPtr->SocketNum =3D (UINT32)-1; + CpuIdMapPtr =3D (EFI_CPU_ID_ORDER_MAP *)&mCpuA= picIdOrderTable[Index]; + CpuIdMapPtr->ApicId =3D (UINT32)-1; + CpuIdMapPtr->Flags =3D 0; + CpuIdMapPtr->AcpiProcessorUid =3D (UINT32)-1; + CpuIdMapPtr->SwProcApicId =3D (UINT32)-1; + CpuIdMapPtr->SocketNum =3D (UINT32)-1; } //end if PROC ENABLE } //end for CurrentProcessor =20 @@ -366,9 +367,9 @@ SortCpuLocalApicInTable ( mCpuApicIdOrderTable[Index].SwProcApicId =3D mCpuApicIdOrderTable[= 0].SwProcApicId; mCpuApicIdOrderTable[0].SwProcApicId =3D TempVal; //swap AcpiProcId - TempVal =3D mCpuApicIdOrderTable[Index].AcpiProcessorId; - mCpuApicIdOrderTable[Index].AcpiProcessorId =3D mCpuApicIdOrderTab= le[0].AcpiProcessorId; - mCpuApicIdOrderTable[0].AcpiProcessorId =3D TempVal; + TempVal =3D mCpuApicIdOrderTable[Index].AcpiProcessorUid; + mCpuApicIdOrderTable[Index].AcpiProcessorUid =3D mCpuApicIdOrderTa= ble[0].AcpiProcessorUid; + mCpuApicIdOrderTable[0].AcpiProcessorUid =3D TempVal; =20 } =20 @@ -377,23 +378,23 @@ SortCpuLocalApicInTable ( =20 if(mCpuApicIdOrderTable[CurrProcessor].Flags =3D=3D 0) { //make sure disabled entry has ProcId set to FFs - mCpuApicIdOrderTable[CurrProcessor].ApicId =3D (UINT32)-1; - mCpuApicIdOrderTable[CurrProcessor].AcpiProcessorId =3D (UINT32)= -1; - mCpuApicIdOrderTable[CurrProcessor].SwProcApicId =3D (UINT32)-1; + mCpuApicIdOrderTable[CurrProcessor].ApicId =3D (UINT32= )-1; + mCpuApicIdOrderTable[CurrProcessor].AcpiProcessorUid =3D (UINT32= )-1; + mCpuApicIdOrderTable[CurrProcessor].SwProcApicId =3D (UINT32= )-1; =20 for(Index =3D CurrProcessor+1; Index < MAX_CPU_NUM; Index++) { if(mCpuApicIdOrderTable[Index].Flags =3D=3D 1) { //move enabled entry up - mCpuApicIdOrderTable[CurrProcessor].Flags =3D 1; - mCpuApicIdOrderTable[CurrProcessor].ApicId =3D mCpuApicIdOrd= erTable[Index].ApicId; - mCpuApicIdOrderTable[CurrProcessor].AcpiProcessorId =3D mCpu= ApicIdOrderTable[Index].AcpiProcessorId; - mCpuApicIdOrderTable[CurrProcessor].SwProcApicId =3D mCpuApi= cIdOrderTable[Index].SwProcApicId; - mCpuApicIdOrderTable[CurrProcessor].SocketNum =3D mCpuApicId= OrderTable[Index].SocketNum; + mCpuApicIdOrderTable[CurrProcessor].Flags =3D 1; + mCpuApicIdOrderTable[CurrProcessor].ApicId =3D mCp= uApicIdOrderTable[Index].ApicId; + mCpuApicIdOrderTable[CurrProcessor].AcpiProcessorUid =3D mCp= uApicIdOrderTable[Index].AcpiProcessorUid; + mCpuApicIdOrderTable[CurrProcessor].SwProcApicId =3D mCp= uApicIdOrderTable[Index].SwProcApicId; + mCpuApicIdOrderTable[CurrProcessor].SocketNum =3D mCp= uApicIdOrderTable[Index].SocketNum; //disable moved entry - mCpuApicIdOrderTable[Index].Flags =3D 0; - mCpuApicIdOrderTable[Index].ApicId =3D (UINT32)-1; - mCpuApicIdOrderTable[Index].AcpiProcessorId =3D (UINT32)-1; - mCpuApicIdOrderTable[Index].SwProcApicId =3D (UINT32)-1; + mCpuApicIdOrderTable[Index].Flags =3D 0; + mCpuApicIdOrderTable[Index].ApicId =3D (UINT32)-1; + mCpuApicIdOrderTable[Index].AcpiProcessorUid =3D (UINT32)-1; + mCpuApicIdOrderTable[Index].SwProcApicId =3D (UINT32)-1; break; } } @@ -422,17 +423,17 @@ typedef struct { } STRUCTURE_HEADER; =20 STRUCTURE_HEADER mMadtStructureTable[] =3D { - {EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC, sizeof (EFI_ACPI_4_0_PROC= ESSOR_LOCAL_APIC_STRUCTURE)}, - {EFI_ACPI_4_0_IO_APIC, sizeof (EFI_ACPI_4_0_IO_A= PIC_STRUCTURE)}, - {EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE, sizeof (EFI_ACPI_4_0_INTE= RRUPT_SOURCE_OVERRIDE_STRUCTURE)}, - {EFI_ACPI_4_0_NON_MASKABLE_INTERRUPT_SOURCE, sizeof (EFI_ACPI_4_0_NON_= MASKABLE_INTERRUPT_SOURCE_STRUCTURE)}, - {EFI_ACPI_4_0_LOCAL_APIC_NMI, sizeof (EFI_ACPI_4_0_LOCA= L_APIC_NMI_STRUCTURE)}, - {EFI_ACPI_4_0_LOCAL_APIC_ADDRESS_OVERRIDE, sizeof (EFI_ACPI_4_0_LOCA= L_APIC_ADDRESS_OVERRIDE_STRUCTURE)}, - {EFI_ACPI_4_0_IO_SAPIC, sizeof (EFI_ACPI_4_0_IO_S= APIC_STRUCTURE)}, - {EFI_ACPI_4_0_LOCAL_SAPIC, sizeof (EFI_ACPI_4_0_PROC= ESSOR_LOCAL_SAPIC_STRUCTURE)}, - {EFI_ACPI_4_0_PLATFORM_INTERRUPT_SOURCES, sizeof (EFI_ACPI_4_0_PLAT= FORM_INTERRUPT_SOURCES_STRUCTURE)}, - {EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC, sizeof (EFI_ACPI_4_0_PROC= ESSOR_LOCAL_X2APIC_STRUCTURE)}, - {EFI_ACPI_4_0_LOCAL_X2APIC_NMI, sizeof (EFI_ACPI_4_0_LOCA= L_X2APIC_NMI_STRUCTURE)} + {EFI_ACPI_6_3_PROCESSOR_LOCAL_APIC, sizeof (EFI_ACPI_6_3_PROC= ESSOR_LOCAL_APIC_STRUCTURE)}, + {EFI_ACPI_6_3_IO_APIC, sizeof (EFI_ACPI_6_3_IO_A= PIC_STRUCTURE)}, + {EFI_ACPI_6_3_INTERRUPT_SOURCE_OVERRIDE, sizeof (EFI_ACPI_6_3_INTE= RRUPT_SOURCE_OVERRIDE_STRUCTURE)}, + {EFI_ACPI_6_3_NON_MASKABLE_INTERRUPT_SOURCE, sizeof (EFI_ACPI_6_3_NON_= MASKABLE_INTERRUPT_SOURCE_STRUCTURE)}, + {EFI_ACPI_6_3_LOCAL_APIC_NMI, sizeof (EFI_ACPI_6_3_LOCA= L_APIC_NMI_STRUCTURE)}, + {EFI_ACPI_6_3_LOCAL_APIC_ADDRESS_OVERRIDE, sizeof (EFI_ACPI_6_3_LOCA= L_APIC_ADDRESS_OVERRIDE_STRUCTURE)}, + {EFI_ACPI_6_3_IO_SAPIC, sizeof (EFI_ACPI_6_3_IO_S= APIC_STRUCTURE)}, + {EFI_ACPI_6_3_LOCAL_SAPIC, sizeof (EFI_ACPI_6_3_PROC= ESSOR_LOCAL_SAPIC_STRUCTURE)}, + {EFI_ACPI_6_3_PLATFORM_INTERRUPT_SOURCES, sizeof (EFI_ACPI_6_3_PLAT= FORM_INTERRUPT_SOURCES_STRUCTURE)}, + {EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC, sizeof (EFI_ACPI_6_3_PROC= ESSOR_LOCAL_X2APIC_STRUCTURE)}, + {EFI_ACPI_6_3_LOCAL_X2APIC_NMI, sizeof (EFI_ACPI_6_3_LOCA= L_X2APIC_NMI_STRUCTURE)} }; =20 /** @@ -591,7 +592,7 @@ InitializeHeader ( **/ EFI_STATUS InitializeMadtHeader ( - IN OUT EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *MadtHeader + IN OUT EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *MadtHeader ) { EFI_STATUS Status; @@ -603,8 +604,8 @@ InitializeMadtHeader ( =20 Status =3D InitializeHeader ( &MadtHeader->Header, - EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, - EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION, + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION, 0 ); if (EFI_ERROR (Status)) { @@ -612,7 +613,7 @@ InitializeMadtHeader ( } =20 MadtHeader->LocalApicAddress =3D PcdGet32(PcdLocalApicAddress); - MadtHeader->Flags =3D EFI_ACPI_4_0_PCAT_COMPAT; + MadtHeader->Flags =3D EFI_ACPI_6_3_PCAT_COMPAT; =20 return EFI_SUCCESS; } @@ -649,7 +650,7 @@ CopyStructure ( // // Initialize the number of table entries and the table based on the t= able header passed in. // - if (Header->Signature =3D=3D EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TA= BLE_SIGNATURE) { + if (Header->Signature =3D=3D EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TA= BLE_SIGNATURE) { TableNumEntries =3D sizeof (mMadtStructureTable) / sizeof (STRUCTURE= _HEADER); StructureTable =3D mMadtStructureTable; } else { @@ -759,7 +760,7 @@ BuildAcpiTable ( return EFI_INVALID_PARAMETER; } =20 - if (AcpiHeader->Signature !=3D EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_= TABLE_SIGNATURE) { + if (AcpiHeader->Signature !=3D EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_= TABLE_SIGNATURE) { DEBUG (( DEBUG_ERROR, "MADT header signature is expected, actually 0x%08x\n", @@ -850,15 +851,15 @@ InstallMadtFromScratch ( { EFI_STATUS Status; UINTN Index; - EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *NewMadtTable; + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *NewMadtTable; UINTN TableHandle; - EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER MadtTableHeader; - EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_STRUCTURE ProcLocalApicStruc= t; - EFI_ACPI_4_0_IO_APIC_STRUCTURE IoApicStruct; - EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE IntSrcOverrideStru= ct; - EFI_ACPI_4_0_LOCAL_APIC_NMI_STRUCTURE LocalApciNmiStruct= ; - EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE ProcLocalX2ApicStr= uct; - EFI_ACPI_4_0_LOCAL_X2APIC_NMI_STRUCTURE LocalX2ApicNmiStru= ct; + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER MadtTableHeader; + EFI_ACPI_6_3_PROCESSOR_LOCAL_APIC_STRUCTURE ProcLocalApicStruc= t; + EFI_ACPI_6_3_IO_APIC_STRUCTURE IoApicStruct; + EFI_ACPI_6_3_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE IntSrcOverrideStru= ct; + EFI_ACPI_6_3_LOCAL_APIC_NMI_STRUCTURE LocalApciNmiStruct= ; + EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC_STRUCTURE ProcLocalX2ApicStr= uct; + EFI_ACPI_6_3_LOCAL_X2APIC_NMI_STRUCTURE LocalX2ApicNmiStru= ct; STRUCTURE_HEADER **MadtStructs; UINTN MaxMadtStructCount= ; UINTN MadtStructsIndex; @@ -915,11 +916,11 @@ InstallMadtFromScratch ( // // Build Processor Local APIC Structures and Processor Local X2APIC St= ructures // - ProcLocalApicStruct.Type =3D EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC; - ProcLocalApicStruct.Length =3D sizeof (EFI_ACPI_4_0_PROCESSOR_LOCAL_AP= IC_STRUCTURE); + ProcLocalApicStruct.Type =3D EFI_ACPI_6_3_PROCESSOR_LOCAL_APIC; + ProcLocalApicStruct.Length =3D sizeof (EFI_ACPI_6_3_PROCESSOR_LOCAL_AP= IC_STRUCTURE); =20 - ProcLocalX2ApicStruct.Type =3D EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC; - ProcLocalX2ApicStruct.Length =3D sizeof (EFI_ACPI_4_0_PROCESSOR_LOCAL_= X2APIC_STRUCTURE); + ProcLocalX2ApicStruct.Type =3D EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC; + ProcLocalX2ApicStruct.Length =3D sizeof (EFI_ACPI_6_3_PROCESSOR_LOCAL_= X2APIC_STRUCTURE); ProcLocalX2ApicStruct.Reserved[0] =3D 0; ProcLocalX2ApicStruct.Reserved[1] =3D 0; =20 @@ -930,9 +931,9 @@ InstallMadtFromScratch ( // use a processor local x2APIC structure. // if (!mX2ApicEnabled && mCpuApicIdOrderTable[Index].ApicId < MAX_UINT= 8) { - ProcLocalApicStruct.Flags =3D (UINT8) mCpuApicIdOrderTab= le[Index].Flags; - ProcLocalApicStruct.ApicId =3D (UINT8) mCpuApicIdOrderTab= le[Index].ApicId; - ProcLocalApicStruct.AcpiProcessorId =3D (UINT8) mCpuApicIdOrderTab= le[Index].AcpiProcessorId; + ProcLocalApicStruct.Flags =3D (UINT8) mCpuApicIdOrderTa= ble[Index].Flags; + ProcLocalApicStruct.ApicId =3D (UINT8) mCpuApicIdOrderTa= ble[Index].ApicId; + ProcLocalApicStruct.AcpiProcessorUid =3D (UINT8) mCpuApicIdOrderTa= ble[Index].AcpiProcessorUid; =20 ASSERT (MadtStructsIndex < MaxMadtStructCount); Status =3D CopyStructure ( @@ -943,7 +944,7 @@ InstallMadtFromScratch ( } else if (mCpuApicIdOrderTable[Index].ApicId !=3D 0xFFFFFFFF) { ProcLocalX2ApicStruct.Flags =3D (UINT8) mCpuApicIdOrder= Table[Index].Flags; ProcLocalX2ApicStruct.X2ApicId =3D mCpuApicIdOrderTable[In= dex].ApicId; - ProcLocalX2ApicStruct.AcpiProcessorUid =3D mCpuApicIdOrderTable[In= dex].AcpiProcessorId; + ProcLocalX2ApicStruct.AcpiProcessorUid =3D mCpuApicIdOrderTable[In= dex].AcpiProcessorUid; =20 ASSERT (MadtStructsIndex < MaxMadtStructCount); Status =3D CopyStructure ( @@ -961,8 +962,8 @@ InstallMadtFromScratch ( // // Build I/O APIC Structures // - IoApicStruct.Type =3D EFI_ACPI_4_0_IO_APIC; - IoApicStruct.Length =3D sizeof (EFI_ACPI_4_0_IO_APIC_STRUCTURE); + IoApicStruct.Type =3D EFI_ACPI_6_3_IO_APIC; + IoApicStruct.Length =3D sizeof (EFI_ACPI_6_3_IO_APIC_STRUCTURE); IoApicStruct.Reserved =3D 0; =20 PcIoApicEnable =3D PcdGet32(PcdPcIoApicEnable); @@ -1008,8 +1009,8 @@ InstallMadtFromScratch ( // // Build Interrupt Source Override Structures // - IntSrcOverrideStruct.Type =3D EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE; - IntSrcOverrideStruct.Length =3D sizeof (EFI_ACPI_4_0_INTERRUPT_SOURCE_= OVERRIDE_STRUCTURE); + IntSrcOverrideStruct.Type =3D EFI_ACPI_6_3_INTERRUPT_SOURCE_OVERRIDE; + IntSrcOverrideStruct.Length =3D sizeof (EFI_ACPI_6_3_INTERRUPT_SOURCE_= OVERRIDE_STRUCTURE); =20 // // IRQ0=3D>IRQ2 Interrupt Source Override Structure @@ -1052,11 +1053,11 @@ InstallMadtFromScratch ( // // Build Local APIC NMI Structures // - LocalApciNmiStruct.Type =3D EFI_ACPI_4_0_LOCAL_APIC_NMI; - LocalApciNmiStruct.Length =3D sizeof (EFI_ACPI_4_0_LOCAL_APIC_NMI_STRU= CTURE); - LocalApciNmiStruct.AcpiProcessorId =3D 0xFF; // Applies to all pr= ocessors - LocalApciNmiStruct.Flags =3D 0x0005; // Flags - Edge-tigg= ered, Active High - LocalApciNmiStruct.LocalApicLint =3D 0x1; + LocalApciNmiStruct.Type =3D EFI_ACPI_6_3_LOCAL_APIC_NMI; + LocalApciNmiStruct.Length =3D sizeof (EFI_ACPI_6_3_LOCAL_APIC_NMI_STRU= CTURE); + LocalApciNmiStruct.AcpiProcessorUid =3D 0xFF; // Applies to all p= rocessors + LocalApciNmiStruct.Flags =3D 0x0005; // Flags - Edge-tig= gered, Active High + LocalApciNmiStruct.LocalApicLint =3D 0x1; =20 ASSERT (MadtStructsIndex < MaxMadtStructCount); Status =3D CopyStructure ( @@ -1073,8 +1074,8 @@ InstallMadtFromScratch ( // Build Local x2APIC NMI Structure // if (mX2ApicEnabled) { - LocalX2ApicNmiStruct.Type =3D EFI_ACPI_4_0_LOCAL_X2APIC_NMI; - LocalX2ApicNmiStruct.Length =3D sizeof (EFI_ACPI_4_0_LOCAL_X2APIC_NM= I_STRUCTURE); + LocalX2ApicNmiStruct.Type =3D EFI_ACPI_6_3_LOCAL_X2APIC_NMI; + LocalX2ApicNmiStruct.Length =3D sizeof (EFI_ACPI_6_3_LOCAL_X2APIC_NM= I_STRUCTURE); LocalX2ApicNmiStruct.Flags =3D 0x000D; // Flags - Le= vel-tiggered, Active High LocalX2ApicNmiStruct.AcpiProcessorUid =3D 0xFFFFFFFF; // Applies to= all processors LocalX2ApicNmiStruct.LocalX2ApicLint =3D 0x01; @@ -1099,7 +1100,7 @@ InstallMadtFromScratch ( // Status =3D BuildAcpiTable ( (EFI_ACPI_DESCRIPTION_HEADER *) &MadtTableHeader, - sizeof (EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER), + sizeof (EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER), MadtStructs, MadtStructsIndex, (UINT8 **)&NewMadtTable @@ -1222,7 +1223,7 @@ PlatformUpdateTables ( EFI_ACPI_DESCRIPTION_HEADER *TableHeader; UINT8 *TempOemId; UINT64 TempOemTableId; - EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE *FadtHeader; + EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE *FadtHeader; EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER *HpetTable; UINT32 HpetBaseAddress; EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_BLOCK_ID HpetBlockId; @@ -1279,12 +1280,12 @@ PlatformUpdateTables ( // switch (Table->Signature) { =20 - case EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE: + case EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE: ASSERT(FALSE); break; =20 - case EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE: - FadtHeader =3D (EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE *) Tabl= e; + case EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE: + FadtHeader =3D (EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE *) Table; =20 FadtHeader->PreferredPmProfile =3D PcdGet8 (PcdFadtPreferredPmProfil= e); FadtHeader->IaPcBootArch =3D PcdGet16 (PcdFadtIaPcBootArch); @@ -1329,7 +1330,7 @@ PlatformUpdateTables ( DEBUG(( EFI_D_ERROR, " Flags 0x%x\n", FadtHeader->Flags )); break; =20 - case EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE: + case EFI_ACPI_6_3_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE: HpetTable =3D (EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER *)Ta= ble; HpetBaseAddress =3D PcdGet32 (PcdHpetBaseAddress); HpetTable->BaseAddressLower32Bit.Address =3D HpetBaseAddress; @@ -1381,8 +1382,8 @@ IsHardwareChange ( UINTN HWChangeSize; UINT32 PciId; UINTN Handle; - EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *FacsPtr; - EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *pFADT; + EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE *FacsPtr; + EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE *pFADT; =20 HandleCount =3D 0; HandleBuffer =3D NULL; @@ -1428,7 +1429,7 @@ IsHardwareChange ( // Handle =3D 0; Status =3D LocateAcpiTableBySignature ( - EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, (EFI_ACPI_DESCRIPTION_HEADER **) &pFADT, &Handle ); @@ -1450,7 +1451,7 @@ IsHardwareChange ( // // Set HardwareSignature value based on CRC value. // - FacsPtr =3D (EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)(UINTN)pFA= DT->FirmwareCtrl; + FacsPtr =3D (EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE *)(UINTN)pFA= DT->FirmwareCtrl; FacsPtr->HardwareSignature =3D CRC; FreePool( HWChange ); } diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Facs/Facs.c b/= Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Facs/Facs.c index cde6e478c6b9..8700c44e633d 100644 --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Facs/Facs.c +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Facs/Facs.c @@ -1,9 +1,10 @@ /** @file - This file contains a structure definition for the ACPI 5.0 Firmware AC= PI + This file contains a structure definition for the ACPI 6.3 Firmware AC= PI Control Structure (FACS). The contents of this file should only be mo= dified for bug fixes, no porting is required. =20 Copyright (c) 2017, Intel Corporation. All rights reserved.
+Copyright (c) Microsoft Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -35,9 +36,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // Please modify all values in Facs.h only. // =20 -EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs =3D { - EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, - sizeof (EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE), +EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs =3D { + EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, + sizeof (EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE), =20 // // Hardware Signature will be updated at runtime @@ -48,7 +49,7 @@ EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs =3D { EFI_ACPI_GLOBAL_LOCK, EFI_ACPI_FIRMWARE_CONTROL_STRUCTURE_FLAGS, EFI_ACPI_X_FIRMWARE_WAKING_VECTOR, - EFI_ACPI_5_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION, + EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION, { EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE, diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Fadt/Fadt.c b/= Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Fadt/Fadt.c index 6efb38cda40d..38e767856de7 100644 --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Fadt/Fadt.c +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Fadt/Fadt.c @@ -1,9 +1,10 @@ /** @file - This file contains a structure definition for the ACPI 5.0 Fixed ACPI + This file contains a structure definition for the ACPI 6.3 Fixed ACPI Description Table (FADT). The contents of this file should only be mo= dified for bug fixes, no porting is required. =20 Copyright (c) 2017, Intel Corporation. All rights reserved.
+Copyright (c) Microsoft Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -47,6 +48,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent =20 #define EFI_ACPI_IAPC_BOOT_ARCH 0 // To be fixed =20 +// +// ARM Boot Architecture Flags +// + +#define EFI_ACPI_ARM_BOOT_ARCH 0 // To be fixed + // // Fixed Feature Flags // @@ -55,7 +62,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // // PM1A Event Register Block Generic Address Information // -#define EFI_ACPI_PM1A_EVT_BLK_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_PM1A_EVT_BLK_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_PM1A_EVT_BLK_BIT_WIDTH 0x20 #define EFI_ACPI_PM1A_EVT_BLK_BIT_OFFSET 0x00 #define EFI_ACPI_PM1A_EVT_BLK_ADDRESS 0 // To be fixed @@ -63,7 +70,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // // PM1B Event Register Block Generic Address Information // -#define EFI_ACPI_PM1B_EVT_BLK_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_PM1B_EVT_BLK_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_PM1B_EVT_BLK_BIT_WIDTH 0x00 #define EFI_ACPI_PM1B_EVT_BLK_BIT_OFFSET 0x00 #define EFI_ACPI_PM1B_EVT_BLK_ADDRESS 0 // To be fixed @@ -71,7 +78,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // // PM1A Control Register Block Generic Address Information // -#define EFI_ACPI_PM1A_CNT_BLK_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_PM1A_CNT_BLK_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_PM1A_CNT_BLK_BIT_WIDTH 0x10 #define EFI_ACPI_PM1A_CNT_BLK_BIT_OFFSET 0x00 #define EFI_ACPI_PM1A_CNT_BLK_ADDRESS 0 // To be fixed @@ -79,7 +86,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // // PM1B Control Register Block Generic Address Information // -#define EFI_ACPI_PM1B_CNT_BLK_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_PM1B_CNT_BLK_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_PM1B_CNT_BLK_BIT_WIDTH 0x00 #define EFI_ACPI_PM1B_CNT_BLK_BIT_OFFSET 0x00 #define EFI_ACPI_PM1B_CNT_BLK_ADDRESS 0 // To be fixed @@ -87,7 +94,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // // PM2 Control Register Block Generic Address Information // -#define EFI_ACPI_PM2_CNT_BLK_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_PM2_CNT_BLK_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_PM2_CNT_BLK_BIT_WIDTH 0x08 #define EFI_ACPI_PM2_CNT_BLK_BIT_OFFSET 0x00 #define EFI_ACPI_PM2_CNT_BLK_ADDRESS 0 // To be fixed @@ -96,7 +103,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // Power Management Timer Control Register Block Generic Address // Information // -#define EFI_ACPI_PM_TMR_BLK_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_PM_TMR_BLK_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_PM_TMR_BLK_BIT_WIDTH 0x20 #define EFI_ACPI_PM_TMR_BLK_BIT_OFFSET 0x00 #define EFI_ACPI_PM_TMR_BLK_ADDRESS 0 // To be fixed @@ -105,7 +112,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // General Purpose Event 0 Register Block Generic Address // Information // -#define EFI_ACPI_GPE0_BLK_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_GPE0_BLK_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_GPE0_BLK_BIT_WIDTH 0 // size of R_PCH_ACPI_GPE= 0_STS_127_96 + R_PCH_ACPI_GPE0_EN_127_96 #define EFI_ACPI_GPE0_BLK_BIT_OFFSET 0x00 #define EFI_ACPI_GPE0_BLK_ADDRESS 0 // To be fixed @@ -114,14 +121,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // General Purpose Event 1 Register Block Generic Address // Information // -#define EFI_ACPI_GPE1_BLK_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_GPE1_BLK_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_GPE1_BLK_BIT_WIDTH 0x0 #define EFI_ACPI_GPE1_BLK_BIT_OFFSET 0x0 #define EFI_ACPI_GPE1_BLK_ADDRESS 0 // To be fixed // // Reset Register Generic Address Information // -#define EFI_ACPI_RESET_REG_ADDRESS_SPACE_ID EFI_ACPI_2_0_SYSTEM_IO +#define EFI_ACPI_RESET_REG_ADDRESS_SPACE_ID EFI_ACPI_6_3_SYSTEM_IO #define EFI_ACPI_RESET_REG_BIT_WIDTH 0x08 #define EFI_ACPI_RESET_REG_BIT_OFFSET 0x00 #define EFI_ACPI_RESET_REG_ADDRESS 0x00000CF9 @@ -162,11 +169,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // Please modify all values in Fadt.h only. // =20 -EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { +EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { { - EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, - sizeof (EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE), - EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION, + EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + sizeof (EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE), + EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_REVISION, =20 // // Checksum will be updated at runtime @@ -187,9 +194,9 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { // // These addresses will be updated at runtime // - 0x00000000,=20 0x00000000, - =20 + 0x00000000, + EFI_ACPI_RESERVED_BYTE, EFI_ACPI_PREFERRED_PM_PROFILE, EFI_ACPI_SCI_INT, @@ -198,7 +205,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_ACPI_DISABLE, EFI_ACPI_S4_BIOS_REQ, EFI_ACPI_PSTATE_CNT, - =20 + EFI_ACPI_PM1A_EVT_BLK_ADDRESS, EFI_ACPI_PM1B_EVT_BLK_ADDRESS, EFI_ACPI_PM1A_CNT_BLK_ADDRESS, @@ -240,15 +247,13 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D = { EFI_ACPI_RESET_REG_ADDRESS_SPACE_ID, EFI_ACPI_RESET_REG_BIT_WIDTH, EFI_ACPI_RESET_REG_BIT_OFFSET, - EFI_ACPI_5_0_BYTE, + EFI_ACPI_6_3_BYTE, EFI_ACPI_RESET_REG_ADDRESS }, EFI_ACPI_RESET_VALUE, - { - EFI_ACPI_RESERVED_BYTE, - EFI_ACPI_RESERVED_BYTE, - EFI_ACPI_RESERVED_BYTE - }, + + EFI_ACPI_ARM_BOOT_ARCH, + EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION, =20 // // These addresses will be updated at runtime @@ -263,7 +268,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_PM1A_EVT_BLK_ADDRESS_SPACE_ID, EFI_ACPI_PM1A_EVT_BLK_BIT_WIDTH, EFI_ACPI_PM1A_EVT_BLK_BIT_OFFSET, - EFI_ACPI_5_0_WORD, + EFI_ACPI_6_3_WORD, EFI_ACPI_PM1A_EVT_BLK_ADDRESS }, { @@ -273,7 +278,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_PM1B_EVT_BLK_ADDRESS_SPACE_ID, EFI_ACPI_PM1B_EVT_BLK_BIT_WIDTH, EFI_ACPI_PM1B_EVT_BLK_BIT_OFFSET, - EFI_ACPI_5_0_WORD, + EFI_ACPI_6_3_WORD, EFI_ACPI_PM1B_EVT_BLK_ADDRESS }, { @@ -283,7 +288,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_PM1A_CNT_BLK_ADDRESS_SPACE_ID, EFI_ACPI_PM1A_CNT_BLK_BIT_WIDTH, EFI_ACPI_PM1A_CNT_BLK_BIT_OFFSET, - EFI_ACPI_5_0_WORD, + EFI_ACPI_6_3_WORD, EFI_ACPI_PM1A_CNT_BLK_ADDRESS }, { @@ -293,7 +298,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_PM1B_CNT_BLK_ADDRESS_SPACE_ID, EFI_ACPI_PM1B_CNT_BLK_BIT_WIDTH, EFI_ACPI_PM1B_CNT_BLK_BIT_OFFSET, - EFI_ACPI_5_0_WORD, + EFI_ACPI_6_3_WORD, EFI_ACPI_PM1B_CNT_BLK_ADDRESS }, { @@ -303,7 +308,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_PM2_CNT_BLK_ADDRESS_SPACE_ID, EFI_ACPI_PM2_CNT_BLK_BIT_WIDTH, EFI_ACPI_PM2_CNT_BLK_BIT_OFFSET, - EFI_ACPI_5_0_BYTE, + EFI_ACPI_6_3_BYTE, EFI_ACPI_PM2_CNT_BLK_ADDRESS }, { @@ -313,7 +318,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_PM_TMR_BLK_ADDRESS_SPACE_ID, EFI_ACPI_PM_TMR_BLK_BIT_WIDTH, EFI_ACPI_PM_TMR_BLK_BIT_OFFSET, - EFI_ACPI_5_0_DWORD, + EFI_ACPI_6_3_DWORD, EFI_ACPI_PM_TMR_BLK_ADDRESS }, { @@ -323,7 +328,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_GPE0_BLK_ADDRESS_SPACE_ID, EFI_ACPI_GPE0_BLK_BIT_WIDTH, EFI_ACPI_GPE0_BLK_BIT_OFFSET, - EFI_ACPI_5_0_BYTE, + EFI_ACPI_6_3_BYTE, EFI_ACPI_GPE0_BLK_ADDRESS }, { @@ -333,7 +338,7 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { EFI_ACPI_GPE1_BLK_ADDRESS_SPACE_ID, EFI_ACPI_GPE1_BLK_BIT_WIDTH, EFI_ACPI_GPE1_BLK_BIT_OFFSET, - EFI_ACPI_5_0_BYTE, + EFI_ACPI_6_3_BYTE, EFI_ACPI_GPE1_BLK_ADDRESS }, { @@ -355,5 +360,10 @@ EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt =3D { 0, 0, 0 - } + }, + + // + // Hypervisor Vendor Identity + // + 0x0000000000000000, }; --=20 2.28.0.windows.1