[Linaro-uefi,1/5] Platforms/FVP: Fix MADT to run the Foundation model in GICv3 mode with 4 CPUs

Message ID 20170605173123.8704-2-james.morse@arm.com
State New
Headers show
Series
  • [Linaro-uefi,1/5] Platforms/FVP: Fix MADT to run the Foundation model in GICv3 mode with 4 CPUs
Related show

Commit Message

James Morse June 5, 2017, 5:31 p.m.
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>

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>
---
 .../VExpress/AcpiTables/rtsm_ve-aemv8a/apic.asl    | 116 ++++-----------------
 1 file changed, 19 insertions(+), 97 deletions(-)

Patch hide | download patch | download mbox

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