This series requires the patch sent to edk2-devel :-
EmbeddedPkg/AcpiLib: add GICC table init macro for ACPI 6.0
To enable the new macro for GICC structure in ACPI 6.0+
Thanks
Graeme
Without this statement in fdf file ACPI tables defined in aslc files do not automagically get included in the XSDT.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf | 1 + 1 file changed, 1 insertion(+)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf index 41267ba..9b455d7 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf @@ -356,5 +356,6 @@ READ_LOCK_STATUS = TRUE
[Rule.Common.USER_DEFINED.ACPITABLE] FILE FREEFORM = $(NAMED_GUID) { + RAW ACPI |.acpi RAW ASL |.aml }
.asl files can end up being modified to later versions of spec when FADT is tied to an earlier version. This can cause builds to break unexpectedly on tools upgrades. Convert to aslc to fix the version of ACPI in use for this platform to 6.1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org --- Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf | 43 +++++++ Platforms/ARM/VExpress/AcpiTables/Dbg2.asl | 72 ++++++++++++ Platforms/ARM/VExpress/AcpiTables/Dsdt.asl | 144 +++++++++++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Fadt.aslc | 86 ++++++++++++++ Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h | 46 ++++++++ Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc | 92 +++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Madt.aslc | 91 ++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Spcr.aslc | 88 ++++++++++++++ 8 files changed, 662 insertions(+) create mode 100644 Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf create mode 100644 Platforms/ARM/VExpress/AcpiTables/Dbg2.asl create mode 100644 Platforms/ARM/VExpress/AcpiTables/Dsdt.asl create mode 100644 Platforms/ARM/VExpress/AcpiTables/Fadt.aslc create mode 100644 Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h create mode 100644 Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc create mode 100644 Platforms/ARM/VExpress/AcpiTables/Madt.aslc create mode 100644 Platforms/ARM/VExpress/AcpiTables/Spcr.aslc
diff --git a/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf b/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf new file mode 100644 index 0000000..59d3238 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf @@ -0,0 +1,43 @@ +## @file +# +# ACPI table data and ASL sources required to boot the platform. +# +# Copyright (c) 2014-2016, ARM Ltd. All rights reserved. +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = FvpAcpiTables + FILE_GUID = 7E374E25-8E01-4FEE-87F2-390C23C606CD + MODULE_TYPE = USER_DEFINED + VERSION_STRING = 1.0 + +[Sources] + Dsdt.asl + Spcr.aslc + Fadt.aslc + Gtdt.aslc + Madt.aslc + +[Packages] + ArmPkg/ArmPkg.dec + ArmPlatformPkg/ArmPlatformPkg.dec + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec + EmbeddedPkg/EmbeddedPkg.dec + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + + +[FixedPcd] + gArmTokenSpaceGuid.PcdGicDistributorBase + gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase + gArmTokenSpaceGuid.PcdGicRedistributorsBase diff --git a/Platforms/ARM/VExpress/AcpiTables/Dbg2.asl b/Platforms/ARM/VExpress/AcpiTables/Dbg2.asl new file mode 100644 index 0000000..f57fa7e --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Dbg2.asl @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2015, Graeme Gregory graeme.gregory@linaro.org + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * NB: This License is also known as the "BSD 2-Clause License". + * + * + * [DBG2] ACPI Table + * + */ + +[0004] Signature : "DBG2" [Debug Port table type 2] +[0004] Table Length : 0000005A +[0001] Revision : 00 +[0001] Checksum : 06 +[0006] Oem ID : "LINARO" +[0008] Oem Table ID : "ARM-JUNO" +[0004] Oem Revision : 00000000 +[0004] Asl Compiler ID : "INTL" +[0004] Asl Compiler Revision : 20140926 + +[0004] Info Offset : 0000002C +[0004] Info Count : 00000001 + +[0001] Revision : 00 +[0002] Length : 002C +[0001] Register Count : 01 +[0002] Namepath Length : 0005 +[0002] Namepath Offset : 0026 +[0002] OEM Data Length : 0000 [Optional field not present] +[0002] OEM Data Offset : 0000 [Optional field not present] +[0002] Port Type : 8000 +[0002] Port Subtype : 0003 +[0002] Reserved : 0000 +[0002] Base Address Offset : 0016 +[0002] Address Size Offset : 0022 + +[000C] Base Address Register : [Generic Address Structure] +[0001] Space ID : 00 [SystemMemory] +[0001] Bit Width : 20 +[0001] Bit Offset : 00 +[0001] Encoded Access Width : 03 [DWord Access:32] +[0008] Address : 000000007FF80000 + +[0004] Address Size : 00001000 + +[0004] Namepath : "COM1" +[0001] OEM Data : 00 diff --git a/Platforms/ARM/VExpress/AcpiTables/Dsdt.asl b/Platforms/ARM/VExpress/AcpiTables/Dsdt.asl new file mode 100644 index 0000000..172ca3a --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Dsdt.asl @@ -0,0 +1,144 @@ +/* +* Copyright (c) 2013, Al Stone al.stone@linaro.org +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* +* NB: This License is also known as the "BSD 2-Clause License". +* +* +* [DSDT] Description of the armv8 VE Model +* +*/ + +DefinitionBlock ( + "dsdt.aml", // output filename + "DSDT", // table signature + 2, // DSDT compliance revision + "LINARO", // OEM ID + "RTSMVEV8", // table ID + 0x00000004) // OEM revision +{ + Scope (_SB) + { + Method (_OSC, 4, NotSerialized) + { + /* Platform-Wide OSPM Capabilities */ + If(LEqual(Arg0,ToUUID("0811B06E-4A27-44F9-8D60-3CBBC22E7B48"))) + { + /* APEI support unconditionally */ + Return (Arg3) + } Else { + CreateDWordField (Arg3, Zero, CDW1) + /* Set invalid UUID error bit */ + Or (CDW1, 0x04, CDW1) + Return (Arg3) + } + } + + // + // Two Emulated aarch64 CPUs each with 4 cores + // + Device(CPU0) { // Cluster 0, Cpu 0 + Name(_HID, "ACPI0007") + Name(_UID, 0) + } + Device(CPU1) { // Cluster 0, Cpu 1 + Name(_HID, "ACPI0007") + Name(_UID, 1) + } + Device(CPU2) { // Cluster 0, Cpu 2 + Name(_HID, "ACPI0007") + Name(_UID, 2) + } + Device(CPU3) { // Cluster 0, Cpu 3 + Name(_HID, "ACPI0007") + Name(_UID, 3) + } + Device(CPU4) { // Cluster 1, Cpu 0 + Name(_HID, "ACPI0007") + Name(_UID, 4) + } + Device(CPU5) { // Cluster 1, Cpu 1 + Name(_HID, "ACPI0007") + Name(_UID, 5) + } + Device(CPU6) { // Cluster 1, Cpu 2 + Name(_HID, "ACPI0007") + Name(_UID, 6) + } + Device(CPU7) { // Cluster 1, Cpu 3 + Name(_HID, "ACPI0007") + Name(_UID, 7) + } + + // SMC91X + Device (NET0) { + Name (_HID, "LNRO0003") + Name (_UID, 0) + + Name (_CRS, ResourceTemplate () { + Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000) + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x2F} + }) + } + + // SYSREG + Device (SREG) { + Name (_HID, "LNRO0009") + Name (_UID, 0) + + Method (_CRS, 0x0, Serialized) { + Name (RBUF, ResourceTemplate() { + Memory32Fixed (ReadWrite, 0x1c010000, 0x1000) + }) + Return (RBUF) + } + } + + // VIRTIO + Device (VIRT) { + Name (_HID, "LNRO0005") + Name (_UID, 0) + + Name (_CRS, ResourceTemplate() { + Memory32Fixed (ReadWrite, 0x1c130000, 0x1000) + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) {0x4A} + }) + } + + // UART PL011 + Device(COM0) { + Name(_HID, "ARMH0011") + Name(_CID, "PL011") + Name(_UID, Zero) + + Name(_CRS, ResourceTemplate() { + Memory32Fixed(ReadWrite, 0x1c090000, 0x1000) + Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x25 } + }) + } + } +} diff --git a/Platforms/ARM/VExpress/AcpiTables/Fadt.aslc b/Platforms/ARM/VExpress/AcpiTables/Fadt.aslc new file mode 100644 index 0000000..087c191 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Fadt.aslc @@ -0,0 +1,86 @@ +/** @file +* Fixed ACPI Description Table (FADT) +* +* Copyright (c) 2012 - 2016, ARM Limited. All rights reserved. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/ + +#include "FvpPlatform.h" +#include <Library/AcpiLib.h> +#include <IndustryStandard/Acpi.h> + +EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE Fadt = { + ARM_ACPI_HEADER ( + EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE, + EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_REVISION + ), + 0, // UINT32 FirmwareCtrl + 0, // UINT32 Dsdt + EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved0 + EFI_ACPI_6_1_PM_PROFILE_UNSPECIFIED, // UINT8 PreferredPmProfile + 0, // UINT16 SciInt + 0, // UINT32 SmiCmd + 0, // UINT8 AcpiEnable + 0, // UINT8 AcpiDisable + 0, // UINT8 S4BiosReq + 0, // UINT8 PstateCnt + 0, // UINT32 Pm1aEvtBlk + 0, // UINT32 Pm1bEvtBlk + 0, // UINT32 Pm1aCntBlk + 0, // UINT32 Pm1bCntBlk + 0, // UINT32 Pm2CntBlk + 0, // UINT32 PmTmrBlk + 0, // UINT32 Gpe0Blk + 0, // UINT32 Gpe1Blk + 0, // UINT8 Pm1EvtLen + 0, // UINT8 Pm1CntLen + 0, // UINT8 Pm2CntLen + 0, // UINT8 PmTmrLen + 0, // UINT8 Gpe0BlkLen + 0, // UINT8 Gpe1BlkLen + 0, // UINT8 Gpe1Base + 0, // UINT8 CstCnt + 0, // UINT16 PLvl2Lat + 0, // UINT16 PLvl3Lat + 0, // UINT16 FlushSize + 0, // UINT16 FlushStride + 0, // UINT8 DutyOffset + 0, // UINT8 DutyWidth + 0, // UINT8 DayAlrm + 0, // UINT8 MonAlrm + 0, // UINT8 Century + 0, // UINT16 IaPcBootArch + 0, // UINT8 Reserved1 + EFI_ACPI_6_1_HW_REDUCED_ACPI | EFI_ACPI_6_1_LOW_POWER_S0_IDLE_CAPABLE, // UINT32 Flags + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE ResetReg + 0, // UINT8 ResetValue + EFI_ACPI_6_1_ARM_PSCI_COMPLIANT, // UINT16 ArmBootArchFlags + EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION, // UINT8 MinorRevision + 0, // UINT64 XFirmwareCtrl + 0, // UINT64 XDsdt + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk + NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg + NULL_GAS // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg +}; + +// +// Reference the table being generated to prevent the optimizer from removing the +// data structure from the executable +// +VOID* CONST ReferenceAcpiTable = &Fadt; diff --git a/Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h b/Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h new file mode 100644 index 0000000..e3582bf --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h @@ -0,0 +1,46 @@ +/** @file +* +* Copyright (c) 2011-2015, ARM Limited. All rights reserved. +* Copyright (c) 2015, Hisilicon Limited. All rights reserved. +* Copyright (c) 2015, Linaro Limited. All rights reserved. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +* Based on the files under ArmPlatformPkg/ArmJunoPkg/AcpiTables/ +* +**/ + + +#ifndef _FVP_PLATFORM_H_ +#define _FVP_PLATFORM_H_ + +// +// ACPI table information used to initialize tables. +// +#define EFI_ACPI_ARM_OEM_ID 'L','I','N','A','R','O' // OEMID 6 bytes long +#define EFI_ACPI_ARM_OEM_TABLE_ID SIGNATURE_64('R','T','S','M','V','E','V','8') // OEM table id 8 bytes long +#define EFI_ACPI_ARM_OEM_REVISION 0x00000002 +#define EFI_ACPI_ARM_CREATOR_ID SIGNATURE_32('L','N','R','O') +#define EFI_ACPI_ARM_CREATOR_REVISION 0x00000002 + +// A macro to initialise the common header part of EFI ACPI tables as defined by +// EFI_ACPI_DESCRIPTION_HEADER structure. +#define ARM_ACPI_HEADER(Signature, Type, Revision) { \ + Signature, /* UINT32 Signature */ \ + sizeof (Type), /* UINT32 Length */ \ + Revision, /* UINT8 Revision */ \ + 0, /* UINT8 Checksum */ \ + { EFI_ACPI_ARM_OEM_ID }, /* UINT8 OemId[6] */ \ + EFI_ACPI_ARM_OEM_TABLE_ID, /* UINT64 OemTableId */ \ + EFI_ACPI_ARM_OEM_REVISION, /* UINT32 OemRevision */ \ + EFI_ACPI_ARM_CREATOR_ID, /* UINT32 CreatorId */ \ + EFI_ACPI_ARM_CREATOR_REVISION /* UINT32 CreatorRevision */ \ + } + +#endif diff --git a/Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc b/Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc new file mode 100644 index 0000000..142249f --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc @@ -0,0 +1,92 @@ +/** @file +* Generic Timer Description Table (GTDT) +* +* Copyright (c) 2012 - 2014, ARM Limited. All rights reserved. +* Copyright (c) 2016, Linaro Ltd. All rights reserved +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/ + +#include "FvpPlatform.h" +#include <Library/AcpiLib.h> +#include <Library/PcdLib.h> +#include <IndustryStandard/Acpi61.h> + +#define SECURE_TIMER_EL1_GSIV 0x1D +#define NON_SECURE_TIMER_EL1_GSIV 0x1E +#define VIRTUAL_TIMER_GSIV 0x1B +#define NON_SECURE_EL2_GSIV 0x1A + +#define GT_BLOCK_CTL_BASE 0x000000002A810000 +#define GT_BLOCK_FRAME1_CTL_BASE 0x000000002A820000 +#define GT_BLOCK_FRAME1_GSIV 0x29 + +#pragma pack (1) + +typedef struct { + EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE Gtdt; + EFI_ACPI_6_1_GTDT_GT_BLOCK_STRUCTURE GtBlock; + EFI_ACPI_6_1_GTDT_GT_BLOCK_TIMER_STRUCTURE Frames[1]; +} FVP_GENERIC_TIMER_DESCRIPTION_TABLES; + +#pragma pack () + +FVP_GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = { + { + ARM_ACPI_HEADER( + EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, + FVP_GENERIC_TIMER_DESCRIPTION_TABLES, + EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION + ), + 0xFFFFFFFFFFFFFFFF, // UINT64 PhysicalAddress + EFI_ACPI_RESERVED_DWORD, // UINT32 Reserved + SECURE_TIMER_EL1_GSIV, // UINT32 SecurePL1TimerGSIV + EFI_ACPI_6_1_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE, // UINT32 SecurePL1TimerFlags + NON_SECURE_TIMER_EL1_GSIV, // UINT32 NonSecurePL1TimerGSIV + EFI_ACPI_6_1_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE, // UINT32 NonSecurePL1TimerFlags + VIRTUAL_TIMER_GSIV, // UINT32 VirtualTimerGSIV + EFI_ACPI_6_1_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE, // UINT32 VirtualTimerFlags + NON_SECURE_EL2_GSIV, // UINT32 NonSecurePL2TimerGSIV + EFI_ACPI_6_1_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE, // UINT32 NonSecurePL2TimerFlags + 0xFFFFFFFFFFFFFFFF, // UINT64 CntReadBasePhysicalAddress + 1, // UINT32 PlatformTimerCount + sizeof (EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE) // UINT32 PlatfromTimerOffset + }, + { + EFI_ACPI_6_1_GTDT_GT_BLOCK, // UINT8 Type + sizeof(EFI_ACPI_6_1_GTDT_GT_BLOCK_STRUCTURE) // UINT16 Length + + sizeof(EFI_ACPI_6_1_GTDT_GT_BLOCK_TIMER_STRUCTURE), + EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved + GT_BLOCK_CTL_BASE, // UINT64 CntCtlBase + 1, // UINT32 GTBlockTimerCount + sizeof(EFI_ACPI_6_1_GTDT_GT_BLOCK_STRUCTURE) // UINT32 GTBlockTimerOffset + }, + { + { + 0, // UINT8 GTFrameNumber + {EFI_ACPI_RESERVED_BYTE, + EFI_ACPI_RESERVED_BYTE, + EFI_ACPI_RESERVED_BYTE}, // UINT8 Reserved[3] + GT_BLOCK_FRAME1_CTL_BASE, // UINT64 CntBaseX + 0xFFFFFFFFFFFFFFFF, // UINT64 CntEL0BaseX + GT_BLOCK_FRAME1_GSIV, // UINT32 GTxPhysicalTimerGSIV + 0, // UINT32 GTxPhysicalTimerFlags + 0, // UINT32 GTxVirtualTimerGSIV + 0, // UINT32 GTxVirtualTimerFlags + 0 // UINT32 GTxCommonFlags + } + } +}; + +// +// Reference the table being generated to prevent the optimizer from removing the +// data structure from the executable +// +VOID* CONST ReferenceAcpiTable = &Gtdt; diff --git a/Platforms/ARM/VExpress/AcpiTables/Madt.aslc b/Platforms/ARM/VExpress/AcpiTables/Madt.aslc new file mode 100644 index 0000000..5130548 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Madt.aslc @@ -0,0 +1,91 @@ +/** @file +* Multiple APIC Description Table (MADT) +* +* Copyright (c) 2012 - 2015, ARM Limited. All rights reserved. +* Copyright (c) 2016 Linaro Ltd. All rights reserved. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/ + +#include "FvpPlatform.h" +#include <Library/AcpiLib.h> +#include <Library/ArmLib.h> +#include <Library/PcdLib.h> +#include <IndustryStandard/Acpi61.h> + +// +// Multiple APIC Description Table +// +#pragma pack (1) + +typedef struct { + EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header; + EFI_ACPI_6_1_GIC_STRUCTURE GicInterfaces[8]; + EFI_ACPI_6_1_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; + EFI_ACPI_6_1_GICR_STRUCTURE Gicr; +} FVP_MULTIPLE_APIC_DESCRIPTION_TABLE; + +#pragma pack () + +FVP_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = { + { + ARM_ACPI_HEADER ( + EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, + FVP_MULTIPLE_APIC_DESCRIPTION_TABLE, + EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION + ), + // + // MADT specific fields + // + 0, // LocalApicAddress + 0, // Flags + }, + { + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( + 0, 0, GET_MPID(0, 0), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase), + 0x2C02F000, 0x2C010000, 0x19, 0, 0), + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( + 1, 1, GET_MPID(0, 1), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase), + 0x2C02F000, 0x2C010000, 0x19, 0, 0), + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( + 2, 2, GET_MPID(0, 2), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase), + 0x2C02F000, 0x2C010000, 0x19, 0, 0), + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( + 3, 3, GET_MPID(0, 3), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase), + 0x2C02F000, 0x2C010000, 0x19, 0, 0), + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( + 4, 4, GET_MPID(1, 0), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase), + 0x2C02F000, 0x2C010000, 0x19, 0, 0), + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( + 5, 5, GET_MPID(1, 1), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase), + 0x2C02F000, 0x2C010000, 0x19, 0, 0), + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( + 6, 6, GET_MPID(1, 2), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase), + 0x2C02F000, 0x2C010000, 0x19, 0, 0), + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( + 7, 7, GET_MPID(1, 3), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase), + 0x2C02F000, 0x2C010000, 0x19, 0, 0), + }, + EFI_ACPI_6_0_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 (PcdGicDistributorBase), 0, 3), + /* GIC Redistributor */ + { + EFI_ACPI_6_1_GICR, // UINT8 Type + sizeof(EFI_ACPI_6_1_GICR_STRUCTURE), // UINT8 Length + EFI_ACPI_RESERVED_WORD, // UINT16 Reserved + FixedPcdGet32 (PcdGicRedistributorsBase), // UINT64 DiscoveryRangeBaseAddress + 0x00200000, // UINT32 DiscoveryRangeLength + } +}; + +// +// Reference the table being generated to prevent the optimizer from removing the +// data structure from the executable +// +VOID* CONST ReferenceAcpiTable = &Madt; diff --git a/Platforms/ARM/VExpress/AcpiTables/Spcr.aslc b/Platforms/ARM/VExpress/AcpiTables/Spcr.aslc new file mode 100644 index 0000000..68caa24 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Spcr.aslc @@ -0,0 +1,88 @@ +/** @file +* SPCR Table +* +* Copyright (c) 2014 - 2016, ARM Limited. All rights reserved. +* Copyright (c) 2016, Linaro Ltd. All rights reserved. +* +* This program and the accompanying materials are licensed and made available +* under the terms and conditions of the BSD License which accompanies this +* distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/ + +#include "FvpPlatform.h" +#include <Library/AcpiLib.h> +#include <IndustryStandard/Acpi61.h> +#include <IndustryStandard/SerialPortConsoleRedirectionTable.h> + +/** + * References: + * Serial Port Console Redirection Table Specification Version 1.03 - August 10, 2015 + **/ + + +/// +/// SPCR Flow Control +/// +#define SPCR_FLOW_CONTROL_NONE 0 + + +STATIC EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = { + ARM_ACPI_HEADER (EFI_ACPI_6_1_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE, + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE, + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION), + // UINT8 InterfaceType; + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART, + // UINT8 Reserved1[3]; + { + EFI_ACPI_RESERVED_BYTE, + EFI_ACPI_RESERVED_BYTE, + EFI_ACPI_RESERVED_BYTE + }, + // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE BaseAddress; + ARM_GAS32 (0x1C090000), + // UINT8 InterruptType; + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC, + // UINT8 Irq; + 0, // Not used on ARM + // UINT32 GlobalSystemInterrupt; + 0x25, + // UINT8 BaudRate; + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200, + // UINT8 Parity; + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY, + // UINT8 StopBits; + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1, + // UINT8 FlowControl; + SPCR_FLOW_CONTROL_NONE, + // UINT8 TerminalType; + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI, + // UINT8 Reserved2; + EFI_ACPI_RESERVED_BYTE, + // UINT16 PciDeviceId; + 0xFFFF, + // UINT16 PciVendorId; + 0xFFFF, + // UINT8 PciBusNumber; + 0x00, + // UINT8 PciDeviceNumber; + 0x00, + // UINT8 PciFunctionNumber; + 0x00, + // UINT32 PciFlags; + 0x00000000, + // UINT8 PciSegment; + 0x00, + // UINT32 Reserved3; + EFI_ACPI_RESERVED_DWORD +}; + +// +// Reference the table being generated to prevent the optimizer from removing the +// data structure from the executable +// +VOID* CONST ReferenceAcpiTable = &Spcr;
On 5 July 2016 at 22:18, Graeme Gregory graeme.gregory@linaro.org wrote:
.asl files can end up being modified to later versions of spec when FADT is tied to an earlier version. This can cause builds to break unexpectedly on tools upgrades. Convert to aslc to fix the version of ACPI in use for this platform to 6.1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf | 43 +++++++ Platforms/ARM/VExpress/AcpiTables/Dbg2.asl | 72 ++++++++++++
As discussed off line, this file is not referenced by the .inf so it can be removed.
Platforms/ARM/VExpress/AcpiTables/Dsdt.asl | 144 +++++++++++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Fadt.aslc | 86 ++++++++++++++ Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h | 46 ++++++++ Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc | 92 +++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Madt.aslc | 91 ++++++++++++++
It looks like the MADT describes a GICv3 unconditionally? This is fine, and my intention was to build runtime detection on top of these patches. But we should probably mention the v2/v3 change in the commit log, since the code it replaces describes GICv2 only.
I can make both changes when committing, if necessary.
On Wed, Jul 06, 2016 at 11:55:22AM +0200, Ard Biesheuvel wrote:
On 5 July 2016 at 22:18, Graeme Gregory graeme.gregory@linaro.org wrote:
.asl files can end up being modified to later versions of spec when FADT is tied to an earlier version. This can cause builds to break unexpectedly on tools upgrades. Convert to aslc to fix the version of ACPI in use for this platform to 6.1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf | 43 +++++++ Platforms/ARM/VExpress/AcpiTables/Dbg2.asl | 72 ++++++++++++
As discussed off line, this file is not referenced by the .inf so it can be removed.
Platforms/ARM/VExpress/AcpiTables/Dsdt.asl | 144 +++++++++++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Fadt.aslc | 86 ++++++++++++++ Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h | 46 ++++++++ Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc | 92 +++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Madt.aslc | 91 ++++++++++++++
It looks like the MADT describes a GICv3 unconditionally? This is fine, and my intention was to build runtime detection on top of these patches. But we should probably mention the v2/v3 change in the commit log, since the code it replaces describes GICv2 only.
I can make both changes when committing, if necessary.
That is fine with me if there are no other changes. I based the files off your patch to go to GICv3 and just forgot to mention it.
Graeme
-- Ard.
Platforms/ARM/VExpress/AcpiTables/Spcr.aslc | 88 ++++++++++++++ 8 files changed, 662 insertions(+) create mode 100644 Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf create mode 100644 Platforms/ARM/VExpress/AcpiTables/Dbg2.asl create mode 100644 Platforms/ARM/VExpress/AcpiTables/Dsdt.asl create mode 100644 Platforms/ARM/VExpress/AcpiTables/Fadt.aslc create mode 100644 Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h create mode 100644 Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc create mode 100644 Platforms/ARM/VExpress/AcpiTables/Madt.aslc create mode 100644 Platforms/ARM/VExpress/AcpiTables/Spcr.aslc
diff --git a/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf b/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf new file mode 100644 index 0000000..59d3238 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf @@ -0,0 +1,43 @@ +## @file +# +# ACPI table data and ASL sources required to boot the platform. +# +# Copyright (c) 2014-2016, ARM Ltd. All rights reserved. +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +##
+[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = FvpAcpiTables
- FILE_GUID = 7E374E25-8E01-4FEE-87F2-390C23C606CD
- MODULE_TYPE = USER_DEFINED
- VERSION_STRING = 1.0
+[Sources]
- Dsdt.asl
- Spcr.aslc
- Fadt.aslc
- Gtdt.aslc
- Madt.aslc
+[Packages]
- ArmPkg/ArmPkg.dec
- ArmPlatformPkg/ArmPlatformPkg.dec
- ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec
- EmbeddedPkg/EmbeddedPkg.dec
- MdePkg/MdePkg.dec
- MdeModulePkg/MdeModulePkg.dec
+[FixedPcd]
- gArmTokenSpaceGuid.PcdGicDistributorBase
- gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
- gArmTokenSpaceGuid.PcdGicRedistributorsBase
diff --git a/Platforms/ARM/VExpress/AcpiTables/Dbg2.asl b/Platforms/ARM/VExpress/AcpiTables/Dbg2.asl new file mode 100644 index 0000000..f57fa7e --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Dbg2.asl @@ -0,0 +1,72 @@ +/*
- Copyright (c) 2015, Graeme Gregory graeme.gregory@linaro.org
- All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- NB: This License is also known as the "BSD 2-Clause License".
- [DBG2] ACPI Table
- */
+[0004] Signature : "DBG2" [Debug Port table type 2] +[0004] Table Length : 0000005A +[0001] Revision : 00 +[0001] Checksum : 06 +[0006] Oem ID : "LINARO" +[0008] Oem Table ID : "ARM-JUNO" +[0004] Oem Revision : 00000000 +[0004] Asl Compiler ID : "INTL" +[0004] Asl Compiler Revision : 20140926
+[0004] Info Offset : 0000002C +[0004] Info Count : 00000001
+[0001] Revision : 00 +[0002] Length : 002C +[0001] Register Count : 01 +[0002] Namepath Length : 0005 +[0002] Namepath Offset : 0026 +[0002] OEM Data Length : 0000 [Optional field not present] +[0002] OEM Data Offset : 0000 [Optional field not present] +[0002] Port Type : 8000 +[0002] Port Subtype : 0003 +[0002] Reserved : 0000 +[0002] Base Address Offset : 0016 +[0002] Address Size Offset : 0022
+[000C] Base Address Register : [Generic Address Structure] +[0001] Space ID : 00 [SystemMemory] +[0001] Bit Width : 20 +[0001] Bit Offset : 00 +[0001] Encoded Access Width : 03 [DWord Access:32] +[0008] Address : 000000007FF80000
+[0004] Address Size : 00001000
+[0004] Namepath : "COM1" +[0001] OEM Data : 00 diff --git a/Platforms/ARM/VExpress/AcpiTables/Dsdt.asl b/Platforms/ARM/VExpress/AcpiTables/Dsdt.asl new file mode 100644 index 0000000..172ca3a --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Dsdt.asl @@ -0,0 +1,144 @@ +/* +* Copyright (c) 2013, Al Stone al.stone@linaro.org +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* +* NB: This License is also known as the "BSD 2-Clause License". +* +* +* [DSDT] Description of the armv8 VE Model +* +*/
+DefinitionBlock (
- "dsdt.aml", // output filename
- "DSDT", // table signature
- 2, // DSDT compliance revision
- "LINARO", // OEM ID
- "RTSMVEV8", // table ID
- 0x00000004) // OEM revision
+{
- Scope (_SB)
- {
- Method (_OSC, 4, NotSerialized)
- {
/* Platform-Wide OSPM Capabilities */
If(LEqual(Arg0,ToUUID("0811B06E-4A27-44F9-8D60-3CBBC22E7B48")))
{
/* APEI support unconditionally */
Return (Arg3)
} Else {
CreateDWordField (Arg3, Zero, CDW1)
/* Set invalid UUID error bit */
Or (CDW1, 0x04, CDW1)
Return (Arg3)
}
- }
- //
- // Two Emulated aarch64 CPUs each with 4 cores
- //
- Device(CPU0) { // Cluster 0, Cpu 0
Name(_HID, "ACPI0007")
Name(_UID, 0)
- }
- Device(CPU1) { // Cluster 0, Cpu 1
Name(_HID, "ACPI0007")
Name(_UID, 1)
- }
- Device(CPU2) { // Cluster 0, Cpu 2
Name(_HID, "ACPI0007")
Name(_UID, 2)
- }
- Device(CPU3) { // Cluster 0, Cpu 3
Name(_HID, "ACPI0007")
Name(_UID, 3)
- }
- Device(CPU4) { // Cluster 1, Cpu 0
Name(_HID, "ACPI0007")
Name(_UID, 4)
- }
- Device(CPU5) { // Cluster 1, Cpu 1
Name(_HID, "ACPI0007")
Name(_UID, 5)
- }
- Device(CPU6) { // Cluster 1, Cpu 2
Name(_HID, "ACPI0007")
Name(_UID, 6)
- }
- Device(CPU7) { // Cluster 1, Cpu 3
Name(_HID, "ACPI0007")
Name(_UID, 7)
- }
- // SMC91X
- Device (NET0) {
Name (_HID, "LNRO0003")
Name (_UID, 0)
Name (_CRS, ResourceTemplate () {
Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000)
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x2F}
})
- }
- // SYSREG
- Device (SREG) {
Name (_HID, "LNRO0009")
Name (_UID, 0)
Method (_CRS, 0x0, Serialized) {
Name (RBUF, ResourceTemplate() {
Memory32Fixed (ReadWrite, 0x1c010000, 0x1000)
})
Return (RBUF)
}
- }
- // VIRTIO
- Device (VIRT) {
Name (_HID, "LNRO0005")
Name (_UID, 0)
Name (_CRS, ResourceTemplate() {
Memory32Fixed (ReadWrite, 0x1c130000, 0x1000)
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) {0x4A}
})
- }
- // UART PL011
- Device(COM0) {
Name(_HID, "ARMH0011")
Name(_CID, "PL011")
Name(_UID, Zero)
Name(_CRS, ResourceTemplate() {
Memory32Fixed(ReadWrite, 0x1c090000, 0x1000)
Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x25 }
})
- }
- }
+} diff --git a/Platforms/ARM/VExpress/AcpiTables/Fadt.aslc b/Platforms/ARM/VExpress/AcpiTables/Fadt.aslc new file mode 100644 index 0000000..087c191 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Fadt.aslc @@ -0,0 +1,86 @@ +/** @file +* Fixed ACPI Description Table (FADT) +* +* Copyright (c) 2012 - 2016, ARM Limited. All rights reserved. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/
+#include "FvpPlatform.h" +#include <Library/AcpiLib.h> +#include <IndustryStandard/Acpi.h>
+EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
- ARM_ACPI_HEADER (
- EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
- EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE,
- EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_REVISION
- ),
- 0, // UINT32 FirmwareCtrl
- 0, // UINT32 Dsdt
- EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved0
- EFI_ACPI_6_1_PM_PROFILE_UNSPECIFIED, // UINT8 PreferredPmProfile
- 0, // UINT16 SciInt
- 0, // UINT32 SmiCmd
- 0, // UINT8 AcpiEnable
- 0, // UINT8 AcpiDisable
- 0, // UINT8 S4BiosReq
- 0, // UINT8 PstateCnt
- 0, // UINT32 Pm1aEvtBlk
- 0, // UINT32 Pm1bEvtBlk
- 0, // UINT32 Pm1aCntBlk
- 0, // UINT32 Pm1bCntBlk
- 0, // UINT32 Pm2CntBlk
- 0, // UINT32 PmTmrBlk
- 0, // UINT32 Gpe0Blk
- 0, // UINT32 Gpe1Blk
- 0, // UINT8 Pm1EvtLen
- 0, // UINT8 Pm1CntLen
- 0, // UINT8 Pm2CntLen
- 0, // UINT8 PmTmrLen
- 0, // UINT8 Gpe0BlkLen
- 0, // UINT8 Gpe1BlkLen
- 0, // UINT8 Gpe1Base
- 0, // UINT8 CstCnt
- 0, // UINT16 PLvl2Lat
- 0, // UINT16 PLvl3Lat
- 0, // UINT16 FlushSize
- 0, // UINT16 FlushStride
- 0, // UINT8 DutyOffset
- 0, // UINT8 DutyWidth
- 0, // UINT8 DayAlrm
- 0, // UINT8 MonAlrm
- 0, // UINT8 Century
- 0, // UINT16 IaPcBootArch
- 0, // UINT8 Reserved1
- EFI_ACPI_6_1_HW_REDUCED_ACPI | EFI_ACPI_6_1_LOW_POWER_S0_IDLE_CAPABLE, // UINT32 Flags
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE ResetReg
- 0, // UINT8 ResetValue
- EFI_ACPI_6_1_ARM_PSCI_COMPLIANT, // UINT16 ArmBootArchFlags
- EFI_ACPI_6_1_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION, // UINT8 MinorRevision
- 0, // UINT64 XFirmwareCtrl
- 0, // UINT64 XDsdt
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk
- NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg
- NULL_GAS // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg
+};
+// +// Reference the table being generated to prevent the optimizer from removing the +// data structure from the executable +// +VOID* CONST ReferenceAcpiTable = &Fadt; diff --git a/Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h b/Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h new file mode 100644 index 0000000..e3582bf --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h @@ -0,0 +1,46 @@ +/** @file +* +* Copyright (c) 2011-2015, ARM Limited. All rights reserved. +* Copyright (c) 2015, Hisilicon Limited. All rights reserved. +* Copyright (c) 2015, Linaro Limited. All rights reserved. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +* Based on the files under ArmPlatformPkg/ArmJunoPkg/AcpiTables/ +* +**/
+#ifndef _FVP_PLATFORM_H_ +#define _FVP_PLATFORM_H_
+// +// ACPI table information used to initialize tables. +// +#define EFI_ACPI_ARM_OEM_ID 'L','I','N','A','R','O' // OEMID 6 bytes long +#define EFI_ACPI_ARM_OEM_TABLE_ID SIGNATURE_64('R','T','S','M','V','E','V','8') // OEM table id 8 bytes long +#define EFI_ACPI_ARM_OEM_REVISION 0x00000002 +#define EFI_ACPI_ARM_CREATOR_ID SIGNATURE_32('L','N','R','O') +#define EFI_ACPI_ARM_CREATOR_REVISION 0x00000002
+// A macro to initialise the common header part of EFI ACPI tables as defined by +// EFI_ACPI_DESCRIPTION_HEADER structure. +#define ARM_ACPI_HEADER(Signature, Type, Revision) { \
- Signature, /* UINT32 Signature */ \
- sizeof (Type), /* UINT32 Length */ \
- Revision, /* UINT8 Revision */ \
- 0, /* UINT8 Checksum */ \
- { EFI_ACPI_ARM_OEM_ID }, /* UINT8 OemId[6] */ \
- EFI_ACPI_ARM_OEM_TABLE_ID, /* UINT64 OemTableId */ \
- EFI_ACPI_ARM_OEM_REVISION, /* UINT32 OemRevision */ \
- EFI_ACPI_ARM_CREATOR_ID, /* UINT32 CreatorId */ \
- EFI_ACPI_ARM_CREATOR_REVISION /* UINT32 CreatorRevision */ \
- }
+#endif diff --git a/Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc b/Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc new file mode 100644 index 0000000..142249f --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc @@ -0,0 +1,92 @@ +/** @file +* Generic Timer Description Table (GTDT) +* +* Copyright (c) 2012 - 2014, ARM Limited. All rights reserved. +* Copyright (c) 2016, Linaro Ltd. All rights reserved +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/
+#include "FvpPlatform.h" +#include <Library/AcpiLib.h> +#include <Library/PcdLib.h> +#include <IndustryStandard/Acpi61.h>
+#define SECURE_TIMER_EL1_GSIV 0x1D +#define NON_SECURE_TIMER_EL1_GSIV 0x1E +#define VIRTUAL_TIMER_GSIV 0x1B +#define NON_SECURE_EL2_GSIV 0x1A
+#define GT_BLOCK_CTL_BASE 0x000000002A810000 +#define GT_BLOCK_FRAME1_CTL_BASE 0x000000002A820000 +#define GT_BLOCK_FRAME1_GSIV 0x29
+#pragma pack (1)
+typedef struct {
- EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE Gtdt;
- EFI_ACPI_6_1_GTDT_GT_BLOCK_STRUCTURE GtBlock;
- EFI_ACPI_6_1_GTDT_GT_BLOCK_TIMER_STRUCTURE Frames[1];
+} FVP_GENERIC_TIMER_DESCRIPTION_TABLES;
+#pragma pack ()
+FVP_GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = {
- {
- ARM_ACPI_HEADER(
EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE,
FVP_GENERIC_TIMER_DESCRIPTION_TABLES,
EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION
- ),
- 0xFFFFFFFFFFFFFFFF, // UINT64 PhysicalAddress
- EFI_ACPI_RESERVED_DWORD, // UINT32 Reserved
- SECURE_TIMER_EL1_GSIV, // UINT32 SecurePL1TimerGSIV
- EFI_ACPI_6_1_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE, // UINT32 SecurePL1TimerFlags
- NON_SECURE_TIMER_EL1_GSIV, // UINT32 NonSecurePL1TimerGSIV
- EFI_ACPI_6_1_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE, // UINT32 NonSecurePL1TimerFlags
- VIRTUAL_TIMER_GSIV, // UINT32 VirtualTimerGSIV
- EFI_ACPI_6_1_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE, // UINT32 VirtualTimerFlags
- NON_SECURE_EL2_GSIV, // UINT32 NonSecurePL2TimerGSIV
- EFI_ACPI_6_1_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE, // UINT32 NonSecurePL2TimerFlags
- 0xFFFFFFFFFFFFFFFF, // UINT64 CntReadBasePhysicalAddress
- 1, // UINT32 PlatformTimerCount
- sizeof (EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE) // UINT32 PlatfromTimerOffset
- },
- {
- EFI_ACPI_6_1_GTDT_GT_BLOCK, // UINT8 Type
- sizeof(EFI_ACPI_6_1_GTDT_GT_BLOCK_STRUCTURE) // UINT16 Length
+ sizeof(EFI_ACPI_6_1_GTDT_GT_BLOCK_TIMER_STRUCTURE),
- EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved
- GT_BLOCK_CTL_BASE, // UINT64 CntCtlBase
- 1, // UINT32 GTBlockTimerCount
- sizeof(EFI_ACPI_6_1_GTDT_GT_BLOCK_STRUCTURE) // UINT32 GTBlockTimerOffset
- },
- {
- {
0, // UINT8 GTFrameNumber
{EFI_ACPI_RESERVED_BYTE,
EFI_ACPI_RESERVED_BYTE,
EFI_ACPI_RESERVED_BYTE}, // UINT8 Reserved[3]
GT_BLOCK_FRAME1_CTL_BASE, // UINT64 CntBaseX
0xFFFFFFFFFFFFFFFF, // UINT64 CntEL0BaseX
GT_BLOCK_FRAME1_GSIV, // UINT32 GTxPhysicalTimerGSIV
0, // UINT32 GTxPhysicalTimerFlags
0, // UINT32 GTxVirtualTimerGSIV
0, // UINT32 GTxVirtualTimerFlags
0 // UINT32 GTxCommonFlags
- }
- }
+};
+// +// Reference the table being generated to prevent the optimizer from removing the +// data structure from the executable +// +VOID* CONST ReferenceAcpiTable = &Gtdt; diff --git a/Platforms/ARM/VExpress/AcpiTables/Madt.aslc b/Platforms/ARM/VExpress/AcpiTables/Madt.aslc new file mode 100644 index 0000000..5130548 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Madt.aslc @@ -0,0 +1,91 @@ +/** @file +* Multiple APIC Description Table (MADT) +* +* Copyright (c) 2012 - 2015, ARM Limited. All rights reserved. +* Copyright (c) 2016 Linaro Ltd. All rights reserved. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/
+#include "FvpPlatform.h" +#include <Library/AcpiLib.h> +#include <Library/ArmLib.h> +#include <Library/PcdLib.h> +#include <IndustryStandard/Acpi61.h>
+// +// Multiple APIC Description Table +// +#pragma pack (1)
+typedef struct {
- EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header;
- EFI_ACPI_6_1_GIC_STRUCTURE GicInterfaces[8];
- EFI_ACPI_6_1_GIC_DISTRIBUTOR_STRUCTURE GicDistributor;
- EFI_ACPI_6_1_GICR_STRUCTURE Gicr;
+} FVP_MULTIPLE_APIC_DESCRIPTION_TABLE;
+#pragma pack ()
+FVP_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = {
- {
- ARM_ACPI_HEADER (
EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE,
FVP_MULTIPLE_APIC_DESCRIPTION_TABLE,
EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION
- ),
- //
- // MADT specific fields
- //
- 0, // LocalApicAddress
- 0, // Flags
- },
- {
- EFI_ACPI_6_0_GICC_STRUCTURE_INIT(
0, 0, GET_MPID(0, 0), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase),
0x2C02F000, 0x2C010000, 0x19, 0, 0),
- EFI_ACPI_6_0_GICC_STRUCTURE_INIT(
1, 1, GET_MPID(0, 1), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase),
0x2C02F000, 0x2C010000, 0x19, 0, 0),
- EFI_ACPI_6_0_GICC_STRUCTURE_INIT(
2, 2, GET_MPID(0, 2), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase),
0x2C02F000, 0x2C010000, 0x19, 0, 0),
- EFI_ACPI_6_0_GICC_STRUCTURE_INIT(
3, 3, GET_MPID(0, 3), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase),
0x2C02F000, 0x2C010000, 0x19, 0, 0),
- EFI_ACPI_6_0_GICC_STRUCTURE_INIT(
4, 4, GET_MPID(1, 0), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase),
0x2C02F000, 0x2C010000, 0x19, 0, 0),
- EFI_ACPI_6_0_GICC_STRUCTURE_INIT(
5, 5, GET_MPID(1, 1), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase),
0x2C02F000, 0x2C010000, 0x19, 0, 0),
- EFI_ACPI_6_0_GICC_STRUCTURE_INIT(
6, 6, GET_MPID(1, 2), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase),
0x2C02F000, 0x2C010000, 0x19, 0, 0),
- EFI_ACPI_6_0_GICC_STRUCTURE_INIT(
7, 7, GET_MPID(1, 3), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet32 (PcdGicInterruptInterfaceBase),
0x2C02F000, 0x2C010000, 0x19, 0, 0),
- },
- EFI_ACPI_6_0_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 (PcdGicDistributorBase), 0, 3),
- /* GIC Redistributor */
- {
- EFI_ACPI_6_1_GICR, // UINT8 Type
- sizeof(EFI_ACPI_6_1_GICR_STRUCTURE), // UINT8 Length
- EFI_ACPI_RESERVED_WORD, // UINT16 Reserved
- FixedPcdGet32 (PcdGicRedistributorsBase), // UINT64 DiscoveryRangeBaseAddress
- 0x00200000, // UINT32 DiscoveryRangeLength
- }
+};
+// +// Reference the table being generated to prevent the optimizer from removing the +// data structure from the executable +// +VOID* CONST ReferenceAcpiTable = &Madt; diff --git a/Platforms/ARM/VExpress/AcpiTables/Spcr.aslc b/Platforms/ARM/VExpress/AcpiTables/Spcr.aslc new file mode 100644 index 0000000..68caa24 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/Spcr.aslc @@ -0,0 +1,88 @@ +/** @file +* SPCR Table +* +* Copyright (c) 2014 - 2016, ARM Limited. All rights reserved. +* Copyright (c) 2016, Linaro Ltd. All rights reserved. +* +* This program and the accompanying materials are licensed and made available +* under the terms and conditions of the BSD License which accompanies this +* distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/
+#include "FvpPlatform.h" +#include <Library/AcpiLib.h> +#include <IndustryStandard/Acpi61.h> +#include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
+/**
- References:
- Serial Port Console Redirection Table Specification Version 1.03 - August 10, 2015
- **/
+/// +/// SPCR Flow Control +/// +#define SPCR_FLOW_CONTROL_NONE 0
+STATIC EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = {
- ARM_ACPI_HEADER (EFI_ACPI_6_1_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE,
EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE,
EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION),
- // UINT8 InterfaceType;
- EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART,
- // UINT8 Reserved1[3];
- {
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE,
- EFI_ACPI_RESERVED_BYTE
- },
- // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE BaseAddress;
- ARM_GAS32 (0x1C090000),
- // UINT8 InterruptType;
- EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC,
- // UINT8 Irq;
- 0, // Not used on ARM
- // UINT32 GlobalSystemInterrupt;
- 0x25,
- // UINT8 BaudRate;
- EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200,
- // UINT8 Parity;
- EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY,
- // UINT8 StopBits;
- EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1,
- // UINT8 FlowControl;
- SPCR_FLOW_CONTROL_NONE,
- // UINT8 TerminalType;
- EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI,
- // UINT8 Reserved2;
- EFI_ACPI_RESERVED_BYTE,
- // UINT16 PciDeviceId;
- 0xFFFF,
- // UINT16 PciVendorId;
- 0xFFFF,
- // UINT8 PciBusNumber;
- 0x00,
- // UINT8 PciDeviceNumber;
- 0x00,
- // UINT8 PciFunctionNumber;
- 0x00,
- // UINT32 PciFlags;
- 0x00000000,
- // UINT8 PciSegment;
- 0x00,
- // UINT32 Reserved3;
- EFI_ACPI_RESERVED_DWORD
+};
+// +// Reference the table being generated to prevent the optimizer from removing the +// data structure from the executable +//
+VOID* CONST ReferenceAcpiTable = &Spcr;
2.8.1
On 6 July 2016 at 12:39, Graeme Gregory graeme.gregory@linaro.org wrote:
On Wed, Jul 06, 2016 at 11:55:22AM +0200, Ard Biesheuvel wrote:
On 5 July 2016 at 22:18, Graeme Gregory graeme.gregory@linaro.org wrote:
.asl files can end up being modified to later versions of spec when FADT is tied to an earlier version. This can cause builds to break unexpectedly on tools upgrades. Convert to aslc to fix the version of ACPI in use for this platform to 6.1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf | 43 +++++++ Platforms/ARM/VExpress/AcpiTables/Dbg2.asl | 72 ++++++++++++
As discussed off line, this file is not referenced by the .inf so it can be removed.
Platforms/ARM/VExpress/AcpiTables/Dsdt.asl | 144 +++++++++++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Fadt.aslc | 86 ++++++++++++++ Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h | 46 ++++++++ Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc | 92 +++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Madt.aslc | 91 ++++++++++++++
It looks like the MADT describes a GICv3 unconditionally? This is fine, and my intention was to build runtime detection on top of these patches. But we should probably mention the v2/v3 change in the commit log, since the code it replaces describes GICv2 only.
I can make both changes when committing, if necessary.
That is fine with me if there are no other changes. I based the files off your patch to go to GICv3 and just forgot to mention it.
No, other than that the patches look fine to me, and they are working as expected afaict So unless Leif has any comments, I'll proceed and commit them (with the above changes applied)
Thanks, Ard.
On Wed, Jul 06, 2016 at 01:13:15PM +0200, Ard Biesheuvel wrote:
On 6 July 2016 at 12:39, Graeme Gregory graeme.gregory@linaro.org wrote:
On Wed, Jul 06, 2016 at 11:55:22AM +0200, Ard Biesheuvel wrote:
On 5 July 2016 at 22:18, Graeme Gregory graeme.gregory@linaro.org wrote:
.asl files can end up being modified to later versions of spec when FADT is tied to an earlier version. This can cause builds to break unexpectedly on tools upgrades. Convert to aslc to fix the version of ACPI in use for this platform to 6.1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf | 43 +++++++ Platforms/ARM/VExpress/AcpiTables/Dbg2.asl | 72 ++++++++++++
As discussed off line, this file is not referenced by the .inf so it can be removed.
Platforms/ARM/VExpress/AcpiTables/Dsdt.asl | 144 +++++++++++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Fadt.aslc | 86 ++++++++++++++ Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h | 46 ++++++++ Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc | 92 +++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Madt.aslc | 91 ++++++++++++++
It looks like the MADT describes a GICv3 unconditionally? This is fine, and my intention was to build runtime detection on top of these patches. But we should probably mention the v2/v3 change in the commit log, since the code it replaces describes GICv2 only.
I can make both changes when committing, if necessary.
That is fine with me if there are no other changes. I based the files off your patch to go to GICv3 and just forgot to mention it.
No, other than that the patches look fine to me, and they are working as expected afaict So unless Leif has any comments, I'll proceed and commit them (with the above changes applied)
If you're happy to do the changes, I'm happy for it to go in.
Regards,
Leif
(+ Ryan)
On 6 July 2016 at 15:29, Leif Lindholm leif.lindholm@linaro.org wrote:
On Wed, Jul 06, 2016 at 01:13:15PM +0200, Ard Biesheuvel wrote:
On 6 July 2016 at 12:39, Graeme Gregory graeme.gregory@linaro.org wrote:
On Wed, Jul 06, 2016 at 11:55:22AM +0200, Ard Biesheuvel wrote:
On 5 July 2016 at 22:18, Graeme Gregory graeme.gregory@linaro.org wrote:
.asl files can end up being modified to later versions of spec when FADT is tied to an earlier version. This can cause builds to break unexpectedly on tools upgrades. Convert to aslc to fix the version of ACPI in use for this platform to 6.1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf | 43 +++++++ Platforms/ARM/VExpress/AcpiTables/Dbg2.asl | 72 ++++++++++++
As discussed off line, this file is not referenced by the .inf so it can be removed.
Platforms/ARM/VExpress/AcpiTables/Dsdt.asl | 144 +++++++++++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Fadt.aslc | 86 ++++++++++++++ Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h | 46 ++++++++ Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc | 92 +++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Madt.aslc | 91 ++++++++++++++
It looks like the MADT describes a GICv3 unconditionally? This is fine, and my intention was to build runtime detection on top of these patches. But we should probably mention the v2/v3 change in the commit log, since the code it replaces describes GICv2 only.
I can make both changes when committing, if necessary.
That is fine with me if there are no other changes. I based the files off your patch to go to GICv3 and just forgot to mention it.
No, other than that the patches look fine to me, and they are working as expected afaict So unless Leif has any comments, I'll proceed and commit them (with the above changes applied)
If you're happy to do the changes, I'm happy for it to go in.
OK, I will push them later today or tomorrow.
@Ryan: as a head's up, this series will require Graeme's patch
6ff71a134f5b EmbeddedPkg/AcpiLib: add GICC table init macro for ACPI 6.0
on the EDK2 side, which I committed this morning.
Thanks, Ard.
On 6 July 2016 at 15:04, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
(+ Ryan)
On 6 July 2016 at 15:29, Leif Lindholm leif.lindholm@linaro.org wrote:
On Wed, Jul 06, 2016 at 01:13:15PM +0200, Ard Biesheuvel wrote:
On 6 July 2016 at 12:39, Graeme Gregory graeme.gregory@linaro.org wrote:
On Wed, Jul 06, 2016 at 11:55:22AM +0200, Ard Biesheuvel wrote:
On 5 July 2016 at 22:18, Graeme Gregory graeme.gregory@linaro.org wrote:
.asl files can end up being modified to later versions of spec when FADT is tied to an earlier version. This can cause builds to break unexpectedly on tools upgrades. Convert to aslc to fix the version of ACPI in use for this platform to 6.1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf | 43 +++++++ Platforms/ARM/VExpress/AcpiTables/Dbg2.asl | 72 ++++++++++++
As discussed off line, this file is not referenced by the .inf so it can be removed.
Platforms/ARM/VExpress/AcpiTables/Dsdt.asl | 144 +++++++++++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Fadt.aslc | 86 ++++++++++++++ Platforms/ARM/VExpress/AcpiTables/FvpPlatform.h | 46 ++++++++ Platforms/ARM/VExpress/AcpiTables/Gtdt.aslc | 92 +++++++++++++++ Platforms/ARM/VExpress/AcpiTables/Madt.aslc | 91 ++++++++++++++
It looks like the MADT describes a GICv3 unconditionally? This is fine, and my intention was to build runtime detection on top of these patches. But we should probably mention the v2/v3 change in the commit log, since the code it replaces describes GICv2 only.
I can make both changes when committing, if necessary.
That is fine with me if there are no other changes. I based the files off your patch to go to GICv3 and just forgot to mention it.
No, other than that the patches look fine to me, and they are working as expected afaict So unless Leif has any comments, I'll proceed and commit them (with the above changes applied)
If you're happy to do the changes, I'm happy for it to go in.
OK, I will push them later today or tomorrow.
@Ryan: as a head's up, this series will require Graeme's patch
6ff71a134f5b EmbeddedPkg/AcpiLib: add GICC table init macro for ACPI 6.0
on the EDK2 side, which I committed this morning.
Thanks for the heads up, knowing that will save me some trouble.
Thanks, Ard.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 2 +- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index 0f03b47..101f9db 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -277,7 +277,7 @@ # MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf - OpenPlatformPkg/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf + OpenPlatformPkg/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf index 9b455d7..74cc18f 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf @@ -99,7 +99,7 @@ FvNameGuid = 87940482-fc81-41c3-87e6-399cf85ac8a0 # INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf - INF RuleOverride=ACPITABLE OpenPlatformPkg/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf + INF RuleOverride=ACPITABLE OpenPlatformPkg/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf
# # Multiple Console IO support
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Graeme Gregory graeme.gregory@linaro.org --- .../AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf | 34 ---- .../VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl | 226 --------------------- .../VExpress/AcpiTables/rtsm_ve-aemv8a/dbg2.asl | 72 ------- .../VExpress/AcpiTables/rtsm_ve-aemv8a/dsdt.asl | 144 ------------- .../VExpress/AcpiTables/rtsm_ve-aemv8a/facp.asl | 198 ------------------ .../VExpress/AcpiTables/rtsm_ve-aemv8a/gtdt.asl | 116 ----------- .../VExpress/AcpiTables/rtsm_ve-aemv8a/spcr.asl | 73 ------- 7 files changed, 863 deletions(-) delete mode 100644 Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf delete mode 100644 Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl delete mode 100644 Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/dbg2.asl delete mode 100644 Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/dsdt.asl delete mode 100644 Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/facp.asl delete mode 100644 Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/gtdt.asl delete mode 100644 Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/spcr.asl
diff --git a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf deleted file mode 100644 index ecb4ca6..0000000 --- a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/AcpiTables.inf +++ /dev/null @@ -1,34 +0,0 @@ -## -# Component description file for PlatformAcpiTables module. -# -# ACPI table data and ASL sources required to boot the platform. -# -# Copyright (c) 2013, Linaro Ltd. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = PlatformAcpiTables - FILE_GUID = 7E374E25-8E01-4FEE-87F2-390C23C606CD - MODULE_TYPE = USER_DEFINED - VERSION_STRING = 1.0 - -[Sources] - apic.asl - dsdt.asl - facp.asl - gtdt.asl - dbg2.asl - spcr.asl - -[Packages] - MdePkg/MdePkg.dec diff --git a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl deleted file mode 100644 index 9cd3031..0000000 --- a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2013, Al Stone al.stone@linaro.org - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * NB: This License is also known as the "BSD 2-Clause License". - * - * - * [APIC] Multiple APIC Description Table (MADT) - * Format: [ByteLength] FieldName : HexFieldValue - * - */ - -[0004] Signature : "APIC" -[0004] Table Length : 00000000 -[0001] Revision : 03 -[0001] Checksum : 00 -[0006] Oem ID : "LINARO" -[0008] Oem Table ID : "RTSMVEV8" -[0004] Oem Revision : 00000001 -[0004] Asl Compiler ID : "INTL" -[0004] Asl Compiler Revision : 20110623 - -[0004] Local Apic Address : 2C000000 -[0004] Flags (decoded below) : 00000000 - PC-AT Compatibility : 0 - -[0001] Subtable Type : 0B [Generic Interrupt Controller] -[0001] Length : 50 -[0002] Reserved : 0000 -[0004] CPU Interface Number : 00000000 -[0004] Processor UID : 00000000 -[0004] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[0004] Parking Protocol Version : 00000000 -[0004] Performance Interrupt : 00000000 -[0008] Parked Address : 0000000000000000 -[0008] Base Address : 000000002C000000 /* armv8 FVP Base GIC address */ -[0008] Virtual GIC Base Address : 0 -[0008] Hypervisor GIC Base Address : 0 -[0004] Virtual GIC Interrupt : 0 -[0008] Redistributor Base Address : 0 -[0008] ARM MPIDR : 0 -[0001] Efficiency Class : 00 -[0003] Reserved : 000000 - -[0001] Subtable Type : 0B [Generic Interrupt Controller] -[0001] Length : 50 -[0002] Reserved : 0000 -[0004] CPU Interface Number : 00000001 -[0004] Processor UID : 00000001 -[0004] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[0004] Parking Protocol Version : 00000000 -[0004] Performance Interrupt : 00000000 -[0008] Parked Address : 0000000000000000 -[0008] Base Address : 000000002C000000 -[0008] Virtual GIC Base Address : 0 -[0008] Hypervisor GIC Base Address : 0 -[0004] Virtual GIC Interrupt : 0 -[0008] Redistributor Base Address : 0 -[0008] ARM MPIDR : 0000000000000001 -[0001] Efficiency Class : 00 -[0003] Reserved : 000000 - -[0001] Subtable Type : 0B [Generic Interrupt Controller] -[0001] Length : 50 -[0002] Reserved : 0000 -[0004] CPU Interface Number : 00000002 -[0004] Processor UID : 00000002 -[0004] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[0004] Parking Protocol Version : 00000000 -[0004] Performance Interrupt : 00000000 -[0008] Parked Address : 0000000000000000 -[0008] Base Address : 000000002C000000 -[0008] Virtual GIC Base Address : 0 -[0008] Hypervisor GIC Base Address : 0 -[0004] Virtual GIC Interrupt : 0 -[0008] Redistributor Base Address : 0 -[0008] ARM MPIDR : 0000000000000002 -[0001] Efficiency Class : 00 -[0003] Reserved : 000000 - -[0001] Subtable Type : 0B [Generic Interrupt Controller] -[0001] Length : 50 -[0002] Reserved : 0000 -[0004] CPU Interface Number : 00000003 -[0004] Processor UID : 00000003 -[0004] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[0004] Parking Protocol Version : 00000000 -[0004] Performance Interrupt : 00000000 -[0008] Parked Address : 0000000000000000 -[0008] Base Address : 000000002C000000 -[0008] Virtual GIC Base Address : 0 -[0008] Hypervisor GIC Base Address : 0 -[0004] Virtual GIC Interrupt : 0 -[0008] Redistributor Base Address : 0 -[0008] ARM MPIDR : 0000000000000003 -[0001] Efficiency Class : 00 -[0003] Reserved : 000000 - -[0001] Subtable Type : 0B [Generic Interrupt Controller] -[0001] Length : 50 -[0002] Reserved : 0000 -[0004] CPU Interface Number : 00000004 -[0004] Processor UID : 00000004 -[0004] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[0004] Parking Protocol Version : 00000000 -[0004] Performance Interrupt : 00000000 -[0008] Parked Address : 0000000000000000 -[0008] Base Address : 000000002C000000 -[0008] Virtual GIC Base Address : 0 -[0008] Hypervisor GIC Base Address : 0 -[0004] Virtual GIC Interrupt : 0 -[0008] Redistributor Base Address : 0 -[0008] ARM MPIDR : 0000000000000100 -[0001] Efficiency Class : 00 -[0003] Reserved : 000000 - -[0001] Subtable Type : 0B [Generic Interrupt Controller] -[0001] Length : 50 -[0002] Reserved : 0000 -[0004] CPU Interface Number : 00000005 -[0004] Processor UID : 00000005 -[0004] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[0004] Parking Protocol Version : 00000000 -[0004] Performance Interrupt : 00000000 -[0008] Parked Address : 0000000000000000 -[0008] Base Address : 000000002C000000 -[0008] Virtual GIC Base Address : 0 -[0008] Hypervisor GIC Base Address : 0 -[0004] Virtual GIC Interrupt : 0 -[0008] Redistributor Base Address : 0 -[0008] ARM MPIDR : 0000000000000101 -[0001] Efficiency Class : 00 -[0003] Reserved : 000000 - -[0001] Subtable Type : 0B [Generic Interrupt Controller] -[0001] Length : 50 -[0002] Reserved : 0000 -[0004] CPU Interface Number : 00000006 -[0004] Processor UID : 00000006 -[0004] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[0004] Parking Protocol Version : 00000000 -[0004] Performance Interrupt : 00000000 -[0008] Parked Address : 0000000000000000 -[0008] Base Address : 000000002C000000 -[0008] Virtual GIC Base Address : 0 -[0008] Hypervisor GIC Base Address : 0 -[0004] Virtual GIC Interrupt : 0 -[0008] Redistributor Base Address : 0 -[0008] ARM MPIDR : 0000000000000102 -[0001] Efficiency Class : 00 -[0003] Reserved : 000000 - -[0001] Subtable Type : 0B [Generic Interrupt Controller] -[0001] Length : 50 -[0002] Reserved : 0000 -[0004] CPU Interface Number : 00000007 -[0004] Processor UID : 00000007 -[0004] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[0004] Parking Protocol Version : 00000000 -[0004] Performance Interrupt : 00000000 -[0008] Parked Address : 0000000000000000 -[0008] Base Address : 000000002C000000 -[0008] Virtual GIC Base Address : 0 -[0008] Hypervisor GIC Base Address : 0 -[0004] Virtual GIC Interrupt : 0 -[0008] Redistributor Base Address : 0 -[0008] ARM MPIDR : 0000000000000103 -[0001] Efficiency Class : 00 -[0003] Reserved : 000000 - -[0001] Subtable Type : 0C [Generic Interrupt Distributor] -[0001] Length : 18 -[0002] Reserved : 0000 -[0004] Local GIC Hardware ID : 00000000 -[0008] Base Address : 000000002F000000 /* armv8 FVP Base GIC distributor base addr */ -[0004] Interrupt Base : 00000000 -[0001] Version : 02 -[0003] Reserved : 000000 diff --git a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/dbg2.asl b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/dbg2.asl deleted file mode 100644 index 47cee69..0000000 --- a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/dbg2.asl +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2015, Graeme Gregory graeme.gregory@linaro.org - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * NB: This License is also known as the "BSD 2-Clause License". - * - * - * [DBG2] ACPI Table - * - */ - -[0004] Signature : "DBG2" [Debug Port table type 2] -[0004] Table Length : 0000005A -[0001] Revision : 00 -[0001] Checksum : 06 -[0006] Oem ID : "LINARO" -[0008] Oem Table ID : "RTSMVEV8" -[0004] Oem Revision : 00000000 -[0004] Asl Compiler ID : "INTL" -[0004] Asl Compiler Revision : 20140926 - -[0004] Info Offset : 0000002C -[0004] Info Count : 00000001 - -[0001] Revision : 00 -[0002] Length : 002C -[0001] Register Count : 01 -[0002] Namepath Length : 0005 -[0002] Namepath Offset : 0026 -[0002] OEM Data Length : 0000 [Optional field not present] -[0002] OEM Data Offset : 0000 [Optional field not present] -[0002] Port Type : 8000 -[0002] Port Subtype : 0003 -[0002] Reserved : 0000 -[0002] Base Address Offset : 0016 -[0002] Address Size Offset : 0022 - -[000C] Base Address Register : [Generic Address Structure] -[0001] Space ID : 00 [SystemMemory] -[0001] Bit Width : 20 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 03 [DWord Access:32] -[0008] Address : 000000001C090000 - -[0004] Address Size : 00001000 - -[0004] Namepath : "COM1" -[0001] OEM Data : 00 diff --git a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/dsdt.asl b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/dsdt.asl deleted file mode 100644 index 172ca3a..0000000 --- a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/dsdt.asl +++ /dev/null @@ -1,144 +0,0 @@ -/* -* Copyright (c) 2013, Al Stone al.stone@linaro.org -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -* -* NB: This License is also known as the "BSD 2-Clause License". -* -* -* [DSDT] Description of the armv8 VE Model -* -*/ - -DefinitionBlock ( - "dsdt.aml", // output filename - "DSDT", // table signature - 2, // DSDT compliance revision - "LINARO", // OEM ID - "RTSMVEV8", // table ID - 0x00000004) // OEM revision -{ - Scope (_SB) - { - Method (_OSC, 4, NotSerialized) - { - /* Platform-Wide OSPM Capabilities */ - If(LEqual(Arg0,ToUUID("0811B06E-4A27-44F9-8D60-3CBBC22E7B48"))) - { - /* APEI support unconditionally */ - Return (Arg3) - } Else { - CreateDWordField (Arg3, Zero, CDW1) - /* Set invalid UUID error bit */ - Or (CDW1, 0x04, CDW1) - Return (Arg3) - } - } - - // - // Two Emulated aarch64 CPUs each with 4 cores - // - Device(CPU0) { // Cluster 0, Cpu 0 - Name(_HID, "ACPI0007") - Name(_UID, 0) - } - Device(CPU1) { // Cluster 0, Cpu 1 - Name(_HID, "ACPI0007") - Name(_UID, 1) - } - Device(CPU2) { // Cluster 0, Cpu 2 - Name(_HID, "ACPI0007") - Name(_UID, 2) - } - Device(CPU3) { // Cluster 0, Cpu 3 - Name(_HID, "ACPI0007") - Name(_UID, 3) - } - Device(CPU4) { // Cluster 1, Cpu 0 - Name(_HID, "ACPI0007") - Name(_UID, 4) - } - Device(CPU5) { // Cluster 1, Cpu 1 - Name(_HID, "ACPI0007") - Name(_UID, 5) - } - Device(CPU6) { // Cluster 1, Cpu 2 - Name(_HID, "ACPI0007") - Name(_UID, 6) - } - Device(CPU7) { // Cluster 1, Cpu 3 - Name(_HID, "ACPI0007") - Name(_UID, 7) - } - - // SMC91X - Device (NET0) { - Name (_HID, "LNRO0003") - Name (_UID, 0) - - Name (_CRS, ResourceTemplate () { - Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x2F} - }) - } - - // SYSREG - Device (SREG) { - Name (_HID, "LNRO0009") - Name (_UID, 0) - - Method (_CRS, 0x0, Serialized) { - Name (RBUF, ResourceTemplate() { - Memory32Fixed (ReadWrite, 0x1c010000, 0x1000) - }) - Return (RBUF) - } - } - - // VIRTIO - Device (VIRT) { - Name (_HID, "LNRO0005") - Name (_UID, 0) - - Name (_CRS, ResourceTemplate() { - Memory32Fixed (ReadWrite, 0x1c130000, 0x1000) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) {0x4A} - }) - } - - // UART PL011 - Device(COM0) { - Name(_HID, "ARMH0011") - Name(_CID, "PL011") - Name(_UID, Zero) - - Name(_CRS, ResourceTemplate() { - Memory32Fixed(ReadWrite, 0x1c090000, 0x1000) - Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 0x25 } - }) - } - } -} diff --git a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/facp.asl b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/facp.asl deleted file mode 100644 index b52413f..0000000 --- a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/facp.asl +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Copyright (c) 2013, Al Stone al.stone@linaro.org - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * NB: This License is also known as the "BSD 2-Clause License". - * - * - * [FACP] ACPI Table - * - */ - -[0004] Signature : "FACP" -[0004] Table Length : 0000010C -[0001] Revision : 06 -[0001] Checksum : 18 -[0006] Oem ID : "LINARO" -[0008] Oem Table ID : "RTSMVEV8" -[0004] Oem Revision : 00000000 -[0004] Asl Compiler ID : "INTL" -[0004] Asl Compiler Revision : 20111123 - -[0004] FACS Address : 00000000 -[0004] DSDT Address : 00000010 -[0001] Model : 00 -[0001] PM Profile : 04 /* Enterprise Server */ -[0002] SCI Interrupt : 0000 -[0004] SMI Command Port : 00000000 -[0001] ACPI Enable Value : 00 -[0001] ACPI Disable Value : 00 -[0001] S4BIOS Command : 00 -[0001] P-State Control : 00 -[0004] PM1A Event Block Address : 00000001 -[0004] PM1B Event Block Address : 00000000 -[0004] PM1A Control Block Address : 00000001 -[0004] PM1B Control Block Address : 00000000 -[0004] PM2 Control Block Address : 00000001 -[0004] PM Timer Block Address : 00000001 -[0004] GPE0 Block Address : 00000001 -[0004] GPE1 Block Address : 00000000 -[0001] PM1 Event Block Length : 04 -[0001] PM1 Control Block Length : 02 -[0001] PM2 Control Block Length : 01 -[0001] PM Timer Block Length : 04 -[0001] GPE0 Block Length : 08 -[0001] GPE1 Block Length : 00 -[0001] GPE1 Base Offset : 00 -[0001] _CST Support : 00 -[0002] C2 Latency : 0000 -[0002] C3 Latency : 0000 -[0002] CPU Cache Size : 0000 -[0002] Cache Flush Stride : 0000 -[0001] Duty Cycle Offset : 00 -[0001] Duty Cycle Width : 00 -[0001] RTC Day Alarm Index : 00 -[0001] RTC Month Alarm Index : 00 -[0001] RTC Century Index : 00 -[0002] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[0001] Reserved : 00 -[0004] Flags (decoded below) : 00000000 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 1 - All CPUs support C1 (V1) : 0 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 1 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 0 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 1 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 0 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 1 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 1 - Low Power S0 Idle (V5) : 1 - -[0012] Reset Register : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 08 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 01 [Byte Access:8] -[0008] Address : 0000000000000001 - -[0001] Value to cause reset : 00 -[0002] ARM_BOOT_ARCH (decoded below) : 0001 - Use PSCI 0.2+ : 1 - PSCI Use HVC : 0 -[0001] FADT Minor Revision : 01 -[0008] FACS Address : 0000000000000000 -[0008] DSDT Address : 0000000000000010 -[0012] PM1A Event Block : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 20 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 02 [Word Access:16] -[0008] Address : 0000000000000001 - -[0012] PM1B Event Block : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 00 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 00 [Undefined/Legacy] -[0008] Address : 0000000000000000 - -[0012] PM1A Control Block : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 10 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 02 [Word Access:16] -[0008] Address : 0000000000000001 - -[0012] PM1B Control Block : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 00 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 00 [Undefined/Legacy] -[0008] Address : 0000000000000000 - -[0012] PM2 Control Block : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 08 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 00 [Undefined/Legacy] -[0008] Address : 0000000000000001 - -[0012] PM Timer Block : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 20 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 03 [DWord Access:32] -[0008] Address : 0000000000000001 - -[0012] GPE0 Block : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 80 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 01 [Byte Access:8] -[0008] Address : 0000000000000001 - -[0012] GPE1 Block : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 00 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 00 [Undefined/Legacy] -[0008] Address : 0000000000000000 - - -[0012] Sleep Control Register : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 08 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 01 [Byte Access:8] -[0008] Address : 0000000000000000 - -[0012] Sleep Status Register : [Generic Address Structure] -[0001] Space ID : 01 [SystemIO] -[0001] Bit Width : 08 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 01 [Byte Access:8] -[0008] Address : 0000000000000000 - -[0008] Hypervisor ID : 0000000000000000 diff --git a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/gtdt.asl b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/gtdt.asl deleted file mode 100644 index d304243..0000000 --- a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/gtdt.asl +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (c) 2013, Al Stone al.stone@linaro.org - * Hanjun Guo hanjun.guo@linaro.org - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * NB: This License is also known as the "BSD 2-Clause License". - * - * - * [GTDT] Generic Timer Description Table - * Format: [ByteLength] FieldName : HexFieldValue - * - */ - -[0004] Signature : "GTDT" -[0004] Table Length : 00000050 -[0001] Revision : 02 -[0001] Checksum : F1 -[0006] Oem ID : "LINARO" -[0008] Oem Table ID : "RTSMVEV8" -[0004] Oem Revision : 00000001 -[0004] Asl Compiler ID : "INTL" -[0004] Asl Compiler Revision : 20110623 - -[0008] Counter Block Address : 0000000000000000 -[0004] Reserved : 00000000 - -/* In RTSM model's dts file, the last cell of interrupts - * is 0xff01, it means its cpu mask is FF, and trigger type - * and flag is 1 = low-to-high edge triggered. - * - * so in ACPI the Trigger Mode is 1 - Edge triggered, and - * Polarity is 0 - Active high as ACPI spec describled. - * - * using direct mapping for hwirqs, it means that we using - * ID [16, 31] for PPI, not [0, 15] used in FDT. - */ -[0004] Secure EL1 Interrupt : 0000001d -[0004] SEL1 Flags (decoded below) : 00000001 - Trigger Mode : 1 - Polarity : 0 - Always-on : 0 - -[0004] Non-Secure EL1 Interrupt : 0000001e -[0004] NSEL1 Flags (decoded below) : 00000001 - Trigger Mode : 1 - Polarity : 0 - Always-on : 0 - -[0004] Virtual Timer Interrupt : 0000001b -[0004] VT Flags (decoded below) : 00000001 - Trigger Mode : 1 - Polarity : 0 - Always-on : 0 - -[0004] Non-Secure EL2 Interrupt : 0000001a -[0004] NSEL2 Flags (decoded below) : 00000001 - Trigger Mode : 1 - Polarity : 0 - Always-on : 0 - -/* The 64-bit physical address at which the Counter Read block is located */ -[0008] CntReadBase Physical address : 0000000000000000 - -[0004] Platform Timer Count : 00000001 -[0004] Platform Timer Offset : 0000005C - -/* Memory-mapped GT (Generic Timer) structures */ -[0001] Subtable Type : 00 -[0002] Length : 0064 -[0001] Reserved : 000000 -[0008] Block Address : 000000002a810000 -[0004] Timer Count : 00000001 -[0004] Timer Offset : 00000010 - -/* One frame is available */ -[0001] Frame Number : 00 -[0003] Reserved : 000000 -[0008] Base Address : 000000002a820000 -[0008] EL0 Base Address : FFFFFFFFFFFFFFFF -[0004] Timer Interrupt : 00000029 /* 25+16 */ -[0004] Timer Flags (decoded below) : 00000000 /* Active high level-sensitive */ - Trigger Mode : 0 - Polarity : 0 -/* No virtual timer */ -[0004] Virtual Timer Interrupt : 00000000 -[0004] Virtual Timer Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 -[0004] Common Flags (decoded below) : 00000000 - Secure : 0 - Always On : 0 - diff --git a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/spcr.asl b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/spcr.asl deleted file mode 100644 index 9d0edba..0000000 --- a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/spcr.asl +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2015, Graeme Gregory graeme.gregory@linaro.org - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * NB: This License is also known as the "BSD 2-Clause License". - * - * - * [SPCR] ACPI Table - * - */ - -[0004] Signature : "SPCR" [Serial Port Console Redirection table] -[0004] Table Length : 00000050 -[0001] Revision : 02 -[0001] Checksum : 29 -[0006] Oem ID : "LINARO" -[0008] Oem Table ID : "RTSMVEV8" -[0004] Oem Revision : 00000000 -[0004] Asl Compiler ID : "INTL" -[0004] Asl Compiler Revision : 20140926 - -[0001] Interface Type : 03 -[0003] Reserved : 000000 - -[000C] Serial Port Register : [Generic Address Structure] -[0001] Space ID : 00 [SystemMemory] -[0001] Bit Width : 20 -[0001] Bit Offset : 00 -[0001] Encoded Access Width : 03 [DWord Access:32] -[0008] Address : 000000001C090000 - -[0001] Interrupt Type : 08 -[0001] PCAT-compatible IRQ : 00 -[0004] Interrupt : 00000025 -[0001] Baud Rate : 07 -[0001] Parity : 00 -[0001] Stop Bits : 01 -[0001] Flow Control : 00 -[0001] Terminal Type : 03 -[0001] Reserved : 00 -[0002] PCI Device ID : FFFF -[0002] PCI Vendor ID : FFFF -[0001] PCI Bus : 00 -[0001] PCI Device : 00 -[0001] PCI Function : 00 -[0004] PCI Flags : 00000000 -[04Bh] PCI Segment : 00 -[04Ch] Reserved : 00000000 -