aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2017-06-05 18:31:19 +0100
committerLeif Lindholm <leif.lindholm@linaro.org>2017-06-06 13:08:04 +0100
commit852cfcac1785a262d9202342ce3e63fc6b5d8220 (patch)
treea16e3112c24858f05dd239d56a855b3eebc6fb97
parent4e9cfc934508ca95df3ae51e63a1681fc41d345b (diff)
Platforms/FVP: Fix MADT to run the Foundation model in GICv3 mode with 4 CPUs
This upgrades the MADT table so that it exposes the GIC as a v3. The virtual base address and interrupt, and the hypervisor base address are corrected as well. Since the Foundation model has 4 cores at the most, and since refactoring this code to update the ACPI tables dynamically based on the actual core count is more trouble that its worth, remove the second cluster while we are at it. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: James Morse <james.morse@arm.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
-rw-r--r--Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl116
1 files changed, 19 insertions, 97 deletions
diff --git a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl
index 9cd3031..7d91562 100644
--- a/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl
+++ b/Platforms/ARM/VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl
@@ -61,9 +61,9 @@
[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] Virtual GIC Base Address : 000000002C02F000
+[0008] Hypervisor GIC Base Address : 000000002C010000
+[0004] Virtual GIC Interrupt : 00000019
[0008] Redistributor Base Address : 0
[0008] ARM MPIDR : 0
[0001] Efficiency Class : 00
@@ -82,9 +82,9 @@
[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] Virtual GIC Base Address : 000000002C02F000
+[0008] Hypervisor GIC Base Address : 000000002C010000
+[0004] Virtual GIC Interrupt : 00000019
[0008] Redistributor Base Address : 0
[0008] ARM MPIDR : 0000000000000001
[0001] Efficiency Class : 00
@@ -103,9 +103,9 @@
[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] Virtual GIC Base Address : 000000002C02F000
+[0008] Hypervisor GIC Base Address : 000000002C010000
+[0004] Virtual GIC Interrupt : 00000019
[0008] Redistributor Base Address : 0
[0008] ARM MPIDR : 0000000000000002
[0001] Efficiency Class : 00
@@ -124,103 +124,25 @@
[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] Virtual GIC Base Address : 000000002C02F000
+[0008] Hypervisor GIC Base Address : 000000002C010000
+[0004] Virtual GIC Interrupt : 00000019
[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
+[0001] Version : 03
[0003] Reserved : 000000
+
+[0001] Subtable Type : 0E [Generic Interrupt Redistributor]
+[0001] Length : 10
+[0002] Reserved : 0000
+[0008] Base Address : 000000002F100000 /* armv8 FVP Base GIC redistributor base addr */
+[0004] Region Size : 00200000