From d84a0714220ffcc10eed0530ec01ed1a01a4ad4b Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Wed, 18 Jul 2018 16:53:18 +0100 Subject: dev, arm: Fix incorrect GIC address range sizes The GICv2 specifies that 8KiB of the memory map is allocated to the CPU interface and 4KiB is allocated to the distributor. The current distributor size is off by 1 and the CPU interface is completely off by a lot. Change-Id: I90a9f669a46a37d79c6cc542087cf91f2044f104 Signed-off-by: Andreas Sandberg Reviewed-by: Ciro Santilli Reviewed-by: Curtis Dunham Reviewed-on: https://gem5-review.googlesource.com/11769 --- src/dev/arm/RealView.py | 2 +- src/dev/arm/gic_pl390.hh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dev/arm/RealView.py b/src/dev/arm/RealView.py index 60b678080..837f79849 100644 --- a/src/dev/arm/RealView.py +++ b/src/dev/arm/RealView.py @@ -1052,7 +1052,7 @@ Memory map: 0x2b000000-0x2b00ffff: HDLCD 0x2c001000-0x2c001fff: GIC (distributor) - 0x2c002000-0x2c0020ff: GIC (CPU interface) + 0x2c002000-0x2c003fff: GIC (CPU interface) 0x2c004000-0x2c005fff: vGIC (HV) 0x2c006000-0x2c007fff: vGIC (VCPU) 0x2c1c0000-0x2c1cffff: GICv2m MSI frame 0 diff --git a/src/dev/arm/gic_pl390.hh b/src/dev/arm/gic_pl390.hh index b4e880bf2..7fd4bcbda 100644 --- a/src/dev/arm/gic_pl390.hh +++ b/src/dev/arm/gic_pl390.hh @@ -72,7 +72,7 @@ class Pl390 : public BaseGic, public BaseGicRegisters GICD_PIDR2 = 0xfe8, // distributor peripheral ID2 GICD_PIDR3 = 0xfec, // distributor peripheral ID3 - DIST_SIZE = 0xfff + DIST_SIZE = 0x1000, }; /** @@ -111,7 +111,7 @@ class Pl390 : public BaseGic, public BaseGicRegisters GICC_APR3 = 0xdc, // active priority register 3 GICC_IIDR = 0xfc, // cpu interface id register - CPU_SIZE = 0xff + CPU_SIZE = 0x2000, }; static const int SGI_MAX = 16; // Number of Software Gen Interrupts -- cgit v1.2.3