diff -r f1bdec85cb68 -r 3abbe36ae6ef src/dev/arm/RealView.py --- a/src/dev/arm/RealView.py Thu Sep 16 11:02:45 2010 +0300 +++ b/src/dev/arm/RealView.py Thu Sep 16 11:09:04 2010 +0300 @@ -123,6 +123,73 @@ kmi1 = Pl050(pio_addr=0x10007000, int_num=53) l2x0_fake = IsaFake(pio_addr=0x1f002000, pio_size=0xfff, warn_access="1") + flash_fake = IsaFake(pio_addr=0x40000000, pio_size=0x4000000) + dmac_fake = AmbaFake(pio_addr=0x10030000) + uart1_fake = AmbaFake(pio_addr=0x1000a000) + uart2_fake = AmbaFake(pio_addr=0x1000b000) + uart3_fake = AmbaFake(pio_addr=0x1000c000) + smc_fake = AmbaFake(pio_addr=0x100e1000) + sp810_fake = AmbaFake(pio_addr=0x10001000, ignore_access=True) + watchdog_fake = AmbaFake(pio_addr=0x10010000) + gpio0_fake = AmbaFake(pio_addr=0x10013000) + gpio1_fake = AmbaFake(pio_addr=0x10014000) + gpio2_fake = AmbaFake(pio_addr=0x10015000) + ssp_fake = AmbaFake(pio_addr=0x1000d000) + sci_fake = AmbaFake(pio_addr=0x1000e000) + aaci_fake = AmbaFake(pio_addr=0x10004000) + mmc_fake = AmbaFake(pio_addr=0x10005000) + rtc_fake = AmbaFake(pio_addr=0x10017000, amba_id=0x41031) + + + + # Attach I/O devices that are on chip + def attachOnChipIO(self, bus): + self.gic.pio = bus.port + self.l2x0_fake.pio = bus.port + self.flash_fake.pio = bus.port + + # Attach I/O devices to specified bus object. Can't do this + # earlier, since the bus object itself is typically defined at the + # System level. + def attachIO(self, bus): + self.uart.pio = bus.port + self.realview_io.pio = bus.port + self.timer0.pio = bus.port + self.timer1.pio = bus.port + self.clcd.pio = bus.port + self.kmi0.pio = bus.port + self.kmi1.pio = bus.port + self.dmac_fake.pio = bus.port + self.uart1_fake.pio = bus.port + self.uart2_fake.pio = bus.port + self.uart3_fake.pio = bus.port + self.smc_fake.pio = bus.port + self.sp810_fake.pio = bus.port + self.watchdog_fake.pio = bus.port + self.gpio0_fake.pio = bus.port + self.gpio1_fake.pio = bus.port + self.gpio2_fake.pio = bus.port + self.ssp_fake.pio = bus.port + self.sci_fake.pio = bus.port + self.aaci_fake.pio = bus.port + self.mmc_fake.pio = bus.port + self.rtc_fake.pio = bus.port + + +# Reference for memory map and interrupt number +# RealView Emulation Baseboard User Guide (ARM DUI 0143B) +# Chapter 4: Programmer's Reference +class RealViewEB(RealView): + uart = Pl011(pio_addr=0x10009000, int_num=44) + realview_io = RealViewCtrl(pio_addr=0x10000000) + gic = Gic(dist_addr=0x10041000, cpu_addr=0x10040000) + timer0 = Sp804(int_num0=36, int_num1=36, pio_addr=0x10011000) + timer1 = Sp804(int_num0=37, int_num1=37, pio_addr=0x10012000) + clcd = Pl111(pio_addr=0x10020000, int_num=23) + kmi0 = Pl050(pio_addr=0x10006000, int_num=20) + kmi1 = Pl050(pio_addr=0x10007000, int_num=21) + + l2x0_fake = IsaFake(pio_addr=0x1f002000, pio_size=0xfff, warn_access="1") dmac_fake = AmbaFake(pio_addr=0x10030000) uart1_fake = AmbaFake(pio_addr=0x1000a000) uart2_fake = AmbaFake(pio_addr=0x1000b000) @@ -173,68 +240,3 @@ self.mmc_fake.pio = bus.port self.rtc_fake.pio = bus.port - -# Reference for memory map and interrupt number -# RealView Emulation Baseboard User Guide (ARM DUI 0143B) -# Chapter 4: Programmer's Reference -class RealViewEB(RealView): - uart = Pl011(pio_addr=0x10009000, int_num=44) - realview_io = RealViewCtrl(pio_addr=0x10000000) - gic = Gic(dist_addr=0x10041000, cpu_addr=0x10040000) - timer0 = Sp804(int_num0=36, int_num1=36, pio_addr=0x10011000) - timer1 = Sp804(int_num0=37, int_num1=37, pio_addr=0x10012000) - clcd = Pl111(pio_addr=0x10020000, int_num=23) - kmi0 = Pl050(pio_addr=0x10006000, int_num=20) - kmi1 = Pl050(pio_addr=0x10007000, int_num=21) - - l2x0_fake = IsaFake(pio_addr=0x1f002000, pio_size=0xfff, warn_access="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) - smc_fake = AmbaFake(pio_addr=0x100e1000) - sp810_fake = AmbaFake(pio_addr=0x10001000, ignore_access=True) - watchdog_fake = AmbaFake(pio_addr=0x10010000) - gpio0_fake = AmbaFake(pio_addr=0x10013000) - gpio1_fake = AmbaFake(pio_addr=0x10014000) - gpio2_fake = AmbaFake(pio_addr=0x10015000) - ssp_fake = AmbaFake(pio_addr=0x1000d000) - sci_fake = AmbaFake(pio_addr=0x1000e000) - aaci_fake = AmbaFake(pio_addr=0x10004000) - mmc_fake = AmbaFake(pio_addr=0x10005000) - rtc_fake = AmbaFake(pio_addr=0x10017000, amba_id=0x41031) - - - - # Attach I/O devices that are on chip - def attachOnChipIO(self, bus): - self.gic.pio = bus.port - self.l2x0_fake.pio = bus.port - - # Attach I/O devices to specified bus object. Can't do this - # earlier, since the bus object itself is typically defined at the - # System level. - def attachIO(self, bus): - self.uart.pio = bus.port - self.realview_io.pio = bus.port - self.timer0.pio = bus.port - self.timer1.pio = bus.port - self.clcd.pio = bus.port - self.kmi0.pio = bus.port - self.kmi1.pio = bus.port - self.dmac_fake.pio = bus.port - self.uart1_fake.pio = bus.port - self.uart2_fake.pio = bus.port - self.uart3_fake.pio = bus.port - self.smc_fake.pio = bus.port - self.sp810_fake.pio = bus.port - self.watchdog_fake.pio = bus.port - self.gpio0_fake.pio = bus.port - self.gpio1_fake.pio = bus.port - self.gpio2_fake.pio = bus.port - self.ssp_fake.pio = bus.port - self.sci_fake.pio = bus.port - self.aaci_fake.pio = bus.port - self.mmc_fake.pio = bus.port - self.rtc_fake.pio = bus.port -