FSConfig.py (9060:ee4104e628f3) FSConfig.py (9164:d112473185ea)
1# Copyright (c) 2010-2012 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 57 unchanged lines hidden (view full) ---

66 if not mdesc:
67 # generic system
68 mdesc = SysConfig()
69 self.readfile = mdesc.script()
70 self.iobus = NoncoherentBus()
71 self.membus = MemBus()
72 # By default the bridge responds to all addresses above the I/O
73 # base address (including the PCI config space)
1# Copyright (c) 2010-2012 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 57 unchanged lines hidden (view full) ---

66 if not mdesc:
67 # generic system
68 mdesc = SysConfig()
69 self.readfile = mdesc.script()
70 self.iobus = NoncoherentBus()
71 self.membus = MemBus()
72 # By default the bridge responds to all addresses above the I/O
73 # base address (including the PCI config space)
74 self.bridge = Bridge(delay='50ns', nack_delay='4ns',
74 self.bridge = Bridge(delay='50ns',
75 ranges = [AddrRange(IO_address_space_base, Addr.max)])
76 self.physmem = SimpleMemory(range = AddrRange(mdesc.mem()))
77 self.bridge.master = self.iobus.slave
78 self.bridge.slave = self.membus.master
79 self.physmem.port = self.membus.master
80 self.disk0 = CowIdeDisk(driveID='master')
81 self.disk2 = CowIdeDisk(driveID='master')
82 self.disk0.childImage(mdesc.disk())

--- 86 unchanged lines hidden (view full) ---

169
170 self = SparcSystem()
171 if not mdesc:
172 # generic system
173 mdesc = SysConfig()
174 self.readfile = mdesc.script()
175 self.iobus = NoncoherentBus()
176 self.membus = MemBus()
75 ranges = [AddrRange(IO_address_space_base, Addr.max)])
76 self.physmem = SimpleMemory(range = AddrRange(mdesc.mem()))
77 self.bridge.master = self.iobus.slave
78 self.bridge.slave = self.membus.master
79 self.physmem.port = self.membus.master
80 self.disk0 = CowIdeDisk(driveID='master')
81 self.disk2 = CowIdeDisk(driveID='master')
82 self.disk0.childImage(mdesc.disk())

--- 86 unchanged lines hidden (view full) ---

169
170 self = SparcSystem()
171 if not mdesc:
172 # generic system
173 mdesc = SysConfig()
174 self.readfile = mdesc.script()
175 self.iobus = NoncoherentBus()
176 self.membus = MemBus()
177 self.bridge = Bridge(delay='50ns', nack_delay='4ns')
177 self.bridge = Bridge(delay='50ns')
178 self.t1000 = T1000()
179 self.t1000.attachOnChipIO(self.membus)
180 self.t1000.attachIO(self.iobus)
181 self.physmem = SimpleMemory(range = AddrRange(Addr('1MB'), size = '64MB'),
182 zero = True)
183 self.physmem2 = SimpleMemory(range = AddrRange(Addr('2GB'), size ='256MB'),
184 zero = True)
185 self.bridge.master = self.iobus.slave

--- 49 unchanged lines hidden (view full) ---

235 if not mdesc:
236 # generic system
237 mdesc = SysConfig()
238
239 self.readfile = mdesc.script()
240 self.iobus = NoncoherentBus()
241 self.membus = MemBus()
242 self.membus.badaddr_responder.warn_access = "warn"
178 self.t1000 = T1000()
179 self.t1000.attachOnChipIO(self.membus)
180 self.t1000.attachIO(self.iobus)
181 self.physmem = SimpleMemory(range = AddrRange(Addr('1MB'), size = '64MB'),
182 zero = True)
183 self.physmem2 = SimpleMemory(range = AddrRange(Addr('2GB'), size ='256MB'),
184 zero = True)
185 self.bridge.master = self.iobus.slave

--- 49 unchanged lines hidden (view full) ---

235 if not mdesc:
236 # generic system
237 mdesc = SysConfig()
238
239 self.readfile = mdesc.script()
240 self.iobus = NoncoherentBus()
241 self.membus = MemBus()
242 self.membus.badaddr_responder.warn_access = "warn"
243 self.bridge = Bridge(delay='50ns', nack_delay='4ns')
243 self.bridge = Bridge(delay='50ns')
244 self.bridge.master = self.iobus.slave
245 self.bridge.slave = self.membus.master
246
247 self.mem_mode = mem_mode
248
249 if machine_type == "RealView_PBX":
250 self.realview = RealViewPBX()
251 elif machine_type == "RealView_EB":

--- 65 unchanged lines hidden (view full) ---

317
318 self = LinuxMipsSystem()
319 if not mdesc:
320 # generic system
321 mdesc = SysConfig()
322 self.readfile = mdesc.script()
323 self.iobus = NoncoherentBus()
324 self.membus = MemBus()
244 self.bridge.master = self.iobus.slave
245 self.bridge.slave = self.membus.master
246
247 self.mem_mode = mem_mode
248
249 if machine_type == "RealView_PBX":
250 self.realview = RealViewPBX()
251 elif machine_type == "RealView_EB":

--- 65 unchanged lines hidden (view full) ---

317
318 self = LinuxMipsSystem()
319 if not mdesc:
320 # generic system
321 mdesc = SysConfig()
322 self.readfile = mdesc.script()
323 self.iobus = NoncoherentBus()
324 self.membus = MemBus()
325 self.bridge = Bridge(delay='50ns', nack_delay='4ns')
325 self.bridge = Bridge(delay='50ns')
326 self.physmem = SimpleMemory(range = AddrRange('1GB'))
327 self.bridge.master = self.iobus.slave
328 self.bridge.slave = self.membus.master
329 self.physmem.port = self.membus.master
330 self.disk0 = CowIdeDisk(driveID='master')
331 self.disk2 = CowIdeDisk(driveID='master')
332 self.disk0.childImage(mdesc.disk())
333 self.disk2.childImage(disk('linux-bigswap2.img'))

--- 29 unchanged lines hidden (view full) ---

363 interrupts_address_space_base = 0xa000000000000000
364 APIC_range_size = 1 << 12;
365
366 x86_sys.membus = MemBus()
367 x86_sys.physmem.port = x86_sys.membus.master
368
369 # North Bridge
370 x86_sys.iobus = NoncoherentBus()
326 self.physmem = SimpleMemory(range = AddrRange('1GB'))
327 self.bridge.master = self.iobus.slave
328 self.bridge.slave = self.membus.master
329 self.physmem.port = self.membus.master
330 self.disk0 = CowIdeDisk(driveID='master')
331 self.disk2 = CowIdeDisk(driveID='master')
332 self.disk0.childImage(mdesc.disk())
333 self.disk2.childImage(disk('linux-bigswap2.img'))

--- 29 unchanged lines hidden (view full) ---

363 interrupts_address_space_base = 0xa000000000000000
364 APIC_range_size = 1 << 12;
365
366 x86_sys.membus = MemBus()
367 x86_sys.physmem.port = x86_sys.membus.master
368
369 # North Bridge
370 x86_sys.iobus = NoncoherentBus()
371 x86_sys.bridge = Bridge(delay='50ns', nack_delay='4ns')
371 x86_sys.bridge = Bridge(delay='50ns')
372 x86_sys.bridge.master = x86_sys.iobus.slave
373 x86_sys.bridge.slave = x86_sys.membus.master
374 # Allow the bridge to pass through the IO APIC (two pages),
375 # everything in the IO address range up to the local APIC, and
376 # then the entire PCI address space and beyond
377 x86_sys.bridge.ranges = \
378 [
379 AddrRange(x86_sys.pc.south_bridge.io_apic.pio_addr,
380 x86_sys.pc.south_bridge.io_apic.pio_addr +
381 APIC_range_size - 1),
382 AddrRange(IO_address_space_base,
383 interrupts_address_space_base - 1),
384 AddrRange(pci_config_address_space_base,
385 Addr.max)
386 ]
387
388 # Create a bridge from the IO bus to the memory bus to allow access to
389 # the local APIC (two pages)
372 x86_sys.bridge.master = x86_sys.iobus.slave
373 x86_sys.bridge.slave = x86_sys.membus.master
374 # Allow the bridge to pass through the IO APIC (two pages),
375 # everything in the IO address range up to the local APIC, and
376 # then the entire PCI address space and beyond
377 x86_sys.bridge.ranges = \
378 [
379 AddrRange(x86_sys.pc.south_bridge.io_apic.pio_addr,
380 x86_sys.pc.south_bridge.io_apic.pio_addr +
381 APIC_range_size - 1),
382 AddrRange(IO_address_space_base,
383 interrupts_address_space_base - 1),
384 AddrRange(pci_config_address_space_base,
385 Addr.max)
386 ]
387
388 # Create a bridge from the IO bus to the memory bus to allow access to
389 # the local APIC (two pages)
390 x86_sys.apicbridge = Bridge(delay='50ns', nack_delay='4ns')
390 x86_sys.apicbridge = Bridge(delay='50ns')
391 x86_sys.apicbridge.slave = x86_sys.iobus.master
392 x86_sys.apicbridge.master = x86_sys.membus.slave
393 x86_sys.apicbridge.ranges = [AddrRange(interrupts_address_space_base,
394 interrupts_address_space_base +
395 numCPUs * APIC_range_size
396 - 1)]
397
398 # connect the io bus

--- 163 unchanged lines hidden ---
391 x86_sys.apicbridge.slave = x86_sys.iobus.master
392 x86_sys.apicbridge.master = x86_sys.membus.slave
393 x86_sys.apicbridge.ranges = [AddrRange(interrupts_address_space_base,
394 interrupts_address_space_base +
395 numCPUs * APIC_range_size
396 - 1)]
397
398 # connect the io bus

--- 163 unchanged lines hidden ---