diff options
author | Chander Sudanthi <chander.sudanthi@arm.com> | 2011-05-13 17:27:00 -0500 |
---|---|---|
committer | Chander Sudanthi <chander.sudanthi@arm.com> | 2011-05-13 17:27:00 -0500 |
commit | 5299c75e62832aab2e200b22c73865ed9c51b335 (patch) | |
tree | d439efab806ba35c1bc8cfee0b0a01656a5d513a /src/dev/arm | |
parent | b79650ceaaabb87f9bfe145663e2bfa3281ed7df (diff) | |
download | gem5-5299c75e62832aab2e200b22c73865ed9c51b335.tar.xz |
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.
Diffstat (limited to 'src/dev/arm')
-rw-r--r-- | src/dev/arm/RealView.py | 9 | ||||
-rw-r--r-- | src/dev/arm/rv_ctrl.cc | 9 |
2 files changed, 14 insertions, 4 deletions
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<uint32_t>(flags); break; + case IdReg: + pkt->set<uint32_t>(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<uint32_t>(); 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(); |