diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2012-01-17 12:55:09 -0600 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2012-01-17 12:55:09 -0600 |
commit | 2208ea049f60618e432c69c065926bcbc810581a (patch) | |
tree | dcc2c0afed74ec56969df9fa20b92655f767c158 /tests/configs/twosys-tsunami-simple-atomic.py | |
parent | e731cf4c1df8db0c7bcb689aba0146199a93b64e (diff) | |
download | gem5-2208ea049f60618e432c69c065926bcbc810581a.tar.xz |
MEM: Make the bus bridge unidirectional and fixed address range
This patch makes the bus bridge uni-directional and specialises the
bus ports to be a master port and a slave port. This greatly
simplifies the assumptions on both sides as either port only has to
deal with requests or responses. The following patches introduce the
notion of master and slave ports, and would not be possible without
this split of responsibilities.
In making the bridge unidirectional, the address range mechanism of
the bridge is also changed. For the cases where communication is
taking place both ways, an additional bridge is needed. This causes
issues with the existing mechanism, as the busses cannot determine
when to stop iterating the address updates from the two bridges. To
avoid this issue, and also greatly simplify the specification, the
bridge now has a fixed set of address ranges, specified at creation
time.
Diffstat (limited to 'tests/configs/twosys-tsunami-simple-atomic.py')
-rw-r--r-- | tests/configs/twosys-tsunami-simple-atomic.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/configs/twosys-tsunami-simple-atomic.py b/tests/configs/twosys-tsunami-simple-atomic.py index 7c6fde7c3..658508fa0 100644 --- a/tests/configs/twosys-tsunami-simple-atomic.py +++ b/tests/configs/twosys-tsunami-simple-atomic.py @@ -36,11 +36,22 @@ test_sys = makeLinuxAlphaSystem('atomic', SysConfig('netperf-stream-client.rcS')) test_sys.cpu = AtomicSimpleCPU(cpu_id=0) test_sys.cpu.connectAllPorts(test_sys.membus) +# In contrast to the other (one-system) Tsunami configurations we do +# not have an IO cache but instead rely on an IO bridge for accesses +# from masters on the IO bus to the memory bus +test_sys.iobridge = Bridge(delay='50ns', nack_delay='4ns', + ranges = [AddrRange(0, '8GB')]) +test_sys.iobridge.slave = test_sys.iobus.port +test_sys.iobridge.master = test_sys.membus.port drive_sys = makeLinuxAlphaSystem('atomic', SysConfig('netperf-server.rcS')) drive_sys.cpu = AtomicSimpleCPU(cpu_id=0) drive_sys.cpu.connectAllPorts(drive_sys.membus) +drive_sys.iobridge = Bridge(delay='50ns', nack_delay='4ns', + ranges = [AddrRange(0, '8GB')]) +drive_sys.iobridge.slave = drive_sys.iobus.port +drive_sys.iobridge.master = drive_sys.membus.port root = makeDualRoot(test_sys, drive_sys, "ethertrace") |