T1000.py revision 3814
112472Sglenn.bergmans@arm.comfrom m5.params import *
212472Sglenn.bergmans@arm.comfrom m5.proxy import *
312472Sglenn.bergmans@arm.comfrom Device import BasicPioDevice, IsaFake, BadAddr
412472Sglenn.bergmans@arm.comfrom Uart import Uart8250
512472Sglenn.bergmans@arm.comfrom Platform import Platform
612472Sglenn.bergmans@arm.comfrom SimConsole import SimConsole, ConsoleListener
712472Sglenn.bergmans@arm.com
812472Sglenn.bergmans@arm.comclass T1000(Platform):
912472Sglenn.bergmans@arm.com    type = 'T1000'
1012472Sglenn.bergmans@arm.com    system = Param.System(Parent.any, "system")
1112472Sglenn.bergmans@arm.com
1212472Sglenn.bergmans@arm.com    fake_clk = IsaFake(pio_addr=0x9600000000, pio_size=0x100000000,
134486Sbinkertn@umich.edu            warn_access="Accessing Clock Unit -- Unimplemented!")
144486Sbinkertn@umich.edu
154486Sbinkertn@umich.edu    fake_membnks = IsaFake(pio_addr=0x9700000000, pio_size=16384,
164486Sbinkertn@umich.edu            ret_data64=0x0000000000000000, update_data=False,
174486Sbinkertn@umich.edu            warn_access="Accessing Memory Banks -- Unimplemented!")
184486Sbinkertn@umich.edu
194486Sbinkertn@umich.edu    fake_iob = IsaFake(pio_addr=0x9800000000, pio_size=0x100000000,
204486Sbinkertn@umich.edu            warn_access="Accessing IOB -- Unimplemented!")
214486Sbinkertn@umich.edu
224486Sbinkertn@umich.edu    fake_jbi = IsaFake(pio_addr=0x8000000000, pio_size=0x100000000,
234486Sbinkertn@umich.edu            warn_access="Accessing JBI -- Unimplemented!")
244486Sbinkertn@umich.edu
254486Sbinkertn@umich.edu    fake_l2_1 = IsaFake(pio_addr=0xA900000000, pio_size=0x8,
264486Sbinkertn@umich.edu            ret_data64=0x0000000000000001, update_data=True,
274486Sbinkertn@umich.edu            warn_access="Accessing L2 Cache Banks -- Unimplemented!")
284486Sbinkertn@umich.edu
294486Sbinkertn@umich.edu    fake_l2_2 = IsaFake(pio_addr=0xA900000040, pio_size=0x8,
304486Sbinkertn@umich.edu            ret_data64=0x0000000000000001, update_data=True,
314486Sbinkertn@umich.edu            warn_access="Accessing L2 Cache Banks -- Unimplemented!")
324486Sbinkertn@umich.edu
334486Sbinkertn@umich.edu    fake_l2_3 = IsaFake(pio_addr=0xA900000080, pio_size=0x8,
344486Sbinkertn@umich.edu            ret_data64=0x0000000000000001, update_data=True,
354486Sbinkertn@umich.edu            warn_access="Accessing L2 Cache Banks -- Unimplemented!")
364486Sbinkertn@umich.edu
374486Sbinkertn@umich.edu    fake_l2_4 = IsaFake(pio_addr=0xA9000000C0, pio_size=0x8,
384486Sbinkertn@umich.edu            ret_data64=0x0000000000000001, update_data=True,
394486Sbinkertn@umich.edu            warn_access="Accessing L2 Cache Banks -- Unimplemented!")
4012472Sglenn.bergmans@arm.com
414486Sbinkertn@umich.edu    fake_ssi = IsaFake(pio_addr=0xff00000000, pio_size=0x10000000,
423102SN/A            warn_access="Accessing SSI -- Unimplemented!")
433102SN/A
4412472Sglenn.bergmans@arm.com    hvuart = Uart8250(pio_addr=0xfff0c2c000)
452542SN/A    puart0 = Uart8250(pio_addr=0x1f10000000)
461310SN/A    console = SimConsole(listener = ConsoleListener())
472542SN/A
481366SN/A    # Attach I/O devices to specified bus object.  Can't do this
499338SAndreas.Sandberg@arm.com    # earlier, since the bus object itself is typically defined at the
501310SN/A    # System level.
518839Sandreas.hansson@arm.com    def attachIO(self, bus):
522542SN/A        self.fake_clk.pio = bus.port
531310SN/A        self.fake_membnks.pio = bus.port
5412472Sglenn.bergmans@arm.com        self.fake_iob.pio = bus.port
5512472Sglenn.bergmans@arm.com        self.fake_jbi.pio = bus.port
5612472Sglenn.bergmans@arm.com        self.fake_l2_1.pio = bus.port
5712472Sglenn.bergmans@arm.com        self.fake_l2_2.pio = bus.port
5812472Sglenn.bergmans@arm.com        self.fake_l2_3.pio = bus.port
5912472Sglenn.bergmans@arm.com        self.fake_l2_4.pio = bus.port
6012472Sglenn.bergmans@arm.com        self.fake_ssi.pio = bus.port
6112472Sglenn.bergmans@arm.com        self.puart0.pio = bus.port
6212472Sglenn.bergmans@arm.com        self.hvuart.pio = bus.port
6312472Sglenn.bergmans@arm.com