From aac0ec2b8b2abfc4a6ac9fa94e17d27618a405b4 Mon Sep 17 00:00:00 2001 From: Vijayenthiran Subramaniam Date: Fri, 4 Oct 2019 17:14:49 +0530 Subject: RdDaneil: Madt: Include entries to boot Chip 1 cores Change-Id: I2620271fab45fa6f6140488fc202d59b38e5a2c9 Signed-off-by: Vijayenthiran Subramaniam --- Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Madt.aslc | 31 +++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Madt.aslc b/Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Madt.aslc index 6995a891..0ce22561 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Madt.aslc +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Madt.aslc @@ -78,6 +78,7 @@ RedisDiscLength /* DiscoveryRangeLength */ \ } +#if 0 // EFI_ACPI_6_2_GIC_ITS_STRUCTURE #define EFI_ACPI_6_2_GIC_ITS_INIT(GicItsId, GicItsBase) \ { \ @@ -88,16 +89,20 @@ GicItsBase, /* PhysicalBaseAddress */ \ EFI_ACPI_RESERVED_DWORD /* DiscoveryRangeLength */ \ } +#endif // Multiple APIC Description Table #pragma pack (1) typedef struct { EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header; - EFI_ACPI_6_2_GIC_STRUCTURE GicInterfaces[4]; + EFI_ACPI_6_2_GIC_STRUCTURE GicInterfaces[8]; EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; - EFI_ACPI_6_2_GICR_STRUCTURE GicRedistributor; + EFI_ACPI_6_2_GICR_STRUCTURE GicRedistributor_1; + EFI_ACPI_6_2_GICR_STRUCTURE GicRedistributor_2; +#if 0 EFI_ACPI_6_2_GIC_ITS_STRUCTURE GicIts[4]; +#endif } EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE; #pragma pack () @@ -136,6 +141,24 @@ STATIC EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = { 0, 3, GET_MPID(0x300, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + + // Chip 1 + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core0 + 0, 0, GET_MPID(0x01000000ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core1 + 0, 1, GET_MPID(0x01000100ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core2 + 0, 2, GET_MPID(0x01000200ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core3 + 0, 3, GET_MPID(0x01000300ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), }, // GIC Distributor Entry EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 (PcdGicDistributorBase), @@ -143,6 +166,9 @@ STATIC EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = { // GIC Redistributor EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributorsBase), SIZE_16MB), + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributorsBase) + 0x40000000000ULL, + SIZE_16MB), +#if 0 { // GIC ITS EFI_ACPI_6_2_GIC_ITS_INIT(0, 0x30040000), @@ -150,6 +176,7 @@ STATIC EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = { EFI_ACPI_6_2_GIC_ITS_INIT(2, 0x30080000), EFI_ACPI_6_2_GIC_ITS_INIT(3, 0x300a0000) } +#endif }; // -- cgit v1.2.3