From 5299c75e62832aab2e200b22c73865ed9c51b335 Mon Sep 17 00:00:00 2001 From: Chander Sudanthi Date: Fri, 13 May 2011 17:27:00 -0500 Subject: ARM: Better RealView/Versatile EB platform support. Add registers and components to better support the VersatileEB board. Made the MIDR and SYS_ID register parameters to ArmSystem and RealviewCtrl respectively. --- src/dev/arm/RealView.py | 9 +++++++-- src/dev/arm/rv_ctrl.cc | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src/dev/arm') diff --git a/src/dev/arm/RealView.py b/src/dev/arm/RealView.py index f913dc94b..e7cba9106 100644 --- a/src/dev/arm/RealView.py +++ b/src/dev/arm/RealView.py @@ -75,7 +75,8 @@ class A9SCU(BasicPioDevice): class RealViewCtrl(BasicPioDevice): type = 'RealViewCtrl' - proc_id = Param.UInt32(0x0C000000, "Platform ID") + proc_id = Param.UInt32(0x0C000000, "Processor ID, SYS_PROCID") + idreg = Param.UInt32(0x00000000, "ID Register, SYS_ID") class Gic(PioDevice): type = 'Gic' @@ -145,7 +146,7 @@ class RealViewPBX(RealView): l2x0_fake = IsaFake(pio_addr=0x1f002000, pio_size=0xfff) - flash_fake = IsaFake(pio_addr=0x40000000, pio_size=0x4000000) + flash_fake = IsaFake(pio_addr=0x40000000, pio_size=0x20000000) dmac_fake = AmbaFake(pio_addr=0x10030000) uart1_fake = AmbaFake(pio_addr=0x1000a000) uart2_fake = AmbaFake(pio_addr=0x1000b000) @@ -212,10 +213,12 @@ class RealViewEB(RealView): kmi1 = Pl050(pio_addr=0x10007000, int_num=21, is_mouse=True) l2x0_fake = IsaFake(pio_addr=0x1f002000, pio_size=0xfff, warn_access="1") + flash_fake = IsaFake(pio_addr=0x40000000, pio_size=0x20000000-1) dmac_fake = AmbaFake(pio_addr=0x10030000) uart1_fake = AmbaFake(pio_addr=0x1000a000) uart2_fake = AmbaFake(pio_addr=0x1000b000) uart3_fake = AmbaFake(pio_addr=0x1000c000) + smcreg_fake = IsaFake(pio_addr=0x10080000, pio_size=0x10000-1) smc_fake = AmbaFake(pio_addr=0x100e1000) sp810_fake = AmbaFake(pio_addr=0x10001000, ignore_access=True) watchdog_fake = AmbaFake(pio_addr=0x10010000) @@ -261,4 +264,6 @@ class RealViewEB(RealView): self.aaci_fake.pio = bus.port self.mmc_fake.pio = bus.port self.rtc_fake.pio = bus.port + self.flash_fake.pio = bus.port + self.smcreg_fake.pio = bus.port diff --git a/src/dev/arm/rv_ctrl.cc b/src/dev/arm/rv_ctrl.cc index e24fea737..9c546036a 100644 --- a/src/dev/arm/rv_ctrl.cc +++ b/src/dev/arm/rv_ctrl.cc @@ -97,8 +97,12 @@ RealViewCtrl::read(PacketPtr pkt) case Flags: pkt->set(flags); break; + case IdReg: + pkt->set(params()->idreg); + break; default: - panic("Tried to read RealView I/O at offset %#x that doesn't exist\n", daddr); + warn("Tried to read RealView I/O at offset %#x that doesn't exist\n", + daddr); break; } pkt->makeAtomicResponse(); @@ -128,7 +132,8 @@ RealViewCtrl::write(PacketPtr pkt) flags = pkt->get(); break; default: - panic("Tried to write RVIO at offset %#x that doesn't exist\n", daddr); + warn("Tried to write RVIO at offset %#x that doesn't exist\n", + daddr); break; } pkt->makeAtomicResponse(); -- cgit v1.2.3