changeset c0db268f811b in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=c0db268f811b
description:
        ruby: correct errors in changeset 4eec7bdde5b0
        Couple of errors were discovered in 4eec7bdde5b0 which necessitated 
this patch.
        Firstly, we create interrupt controllers in the se mode, but no piobus 
was
        being created.  RubyPort, which earlier used to ignore range changes now
        forwards those to the piobus.  The lack of piobus resulted in 
segmentation
        fault.  This patch creates a piobus even in se mode.  It is not created 
only
        when some tester is running.  Secondly,  I had missed out on modifying 
port
        connections for other coherence protocols.

diffstat:

 configs/example/se.py               |  5 +++--
 configs/ruby/MESI_Three_Level.py    |  4 +++-
 configs/ruby/MI_example.py          |  4 +++-
 configs/ruby/MOESI_CMP_directory.py |  4 +++-
 configs/ruby/MOESI_CMP_token.py     |  4 +++-
 configs/ruby/MOESI_hammer.py        |  4 +++-
 tests/configs/simple-timing-ruby.py |  4 ++--
 7 files changed, 20 insertions(+), 9 deletions(-)

diffs (100 lines):

diff -r d76312a74915 -r c0db268f811b configs/example/se.py
--- a/configs/example/se.py     Sun Feb 23 19:16:16 2014 -0600
+++ b/configs/example/se.py     Mon Feb 24 20:50:05 2014 -0600
@@ -231,9 +231,10 @@
     # Set the option for physmem so that it is not allocated any space
     system.physmem = MemClass(range=AddrRange(options.mem_size),
                               null = True)
+    options.use_map = True
 
-    options.use_map = True
-    Ruby.create_system(options, system)
+    system.piobus = NoncoherentBus()
+    Ruby.create_system(options, system, system.piobus)
     assert(options.num_cpus == len(system.ruby._cpu_ruby_ports))
 
     for i in xrange(np):
diff -r d76312a74915 -r c0db268f811b configs/ruby/MESI_Three_Level.py
--- a/configs/ruby/MESI_Three_Level.py  Sun Feb 23 19:16:16 2014 -0600
+++ b/configs/ruby/MESI_Three_Level.py  Mon Feb 24 20:50:05 2014 -0600
@@ -117,7 +117,9 @@
                           cluster_id = i, ruby_system = ruby_system)
 
             if piobus != None:
-                cpu_seq.pio_port = piobus.slave
+                cpu_seq.pio_master_port = piobus.slave
+                cpu_seq.mem_master_port = piobus.slave
+                cpu_seq.pio_slave_port = piobus.master
 
             exec("ruby_system.l0_cntrl%d = l0_cntrl" % (
                         i*num_cpus_per_cluster+j))
diff -r d76312a74915 -r c0db268f811b configs/ruby/MI_example.py
--- a/configs/ruby/MI_example.py        Sun Feb 23 19:16:16 2014 -0600
+++ b/configs/ruby/MI_example.py        Mon Feb 24 20:50:05 2014 -0600
@@ -92,7 +92,9 @@
         l1_cntrl.sequencer = cpu_seq
 
         if piobus != None:
-            cpu_seq.pio_port = piobus.slave
+            cpu_seq.pio_master_port = piobus.slave
+            cpu_seq.mem_master_port = piobus.slave
+            cpu_seq.pio_slave_port = piobus.master
 
         exec("ruby_system.l1_cntrl%d = l1_cntrl" % i)
         #
diff -r d76312a74915 -r c0db268f811b configs/ruby/MOESI_CMP_directory.py
--- a/configs/ruby/MOESI_CMP_directory.py       Sun Feb 23 19:16:16 2014 -0600
+++ b/configs/ruby/MOESI_CMP_directory.py       Mon Feb 24 20:50:05 2014 -0600
@@ -102,7 +102,9 @@
         l1_cntrl.sequencer = cpu_seq
 
         if piobus != None:
-            cpu_seq.pio_port = piobus.slave
+            cpu_seq.pio_master_port = piobus.slave
+            cpu_seq.mem_master_port = piobus.slave
+            cpu_seq.pio_slave_port = piobus.master
 
         exec("ruby_system.l1_cntrl%d = l1_cntrl" % i)
         #
diff -r d76312a74915 -r c0db268f811b configs/ruby/MOESI_CMP_token.py
--- a/configs/ruby/MOESI_CMP_token.py   Sun Feb 23 19:16:16 2014 -0600
+++ b/configs/ruby/MOESI_CMP_token.py   Mon Feb 24 20:50:05 2014 -0600
@@ -122,7 +122,9 @@
         l1_cntrl.sequencer = cpu_seq
 
         if piobus != None:
-            cpu_seq.pio_port = piobus.slave
+            cpu_seq.pio_master_port = piobus.slave
+            cpu_seq.mem_master_port = piobus.slave
+            cpu_seq.pio_slave_port = piobus.master
 
         exec("ruby_system.l1_cntrl%d = l1_cntrl" % i)
         #
diff -r d76312a74915 -r c0db268f811b configs/ruby/MOESI_hammer.py
--- a/configs/ruby/MOESI_hammer.py      Sun Feb 23 19:16:16 2014 -0600
+++ b/configs/ruby/MOESI_hammer.py      Mon Feb 24 20:50:05 2014 -0600
@@ -115,7 +115,9 @@
         l1_cntrl.sequencer = cpu_seq
 
         if piobus != None:
-            cpu_seq.pio_port = piobus.slave
+            cpu_seq.pio_master_port = piobus.slave
+            cpu_seq.mem_master_port = piobus.slave
+            cpu_seq.pio_slave_port = piobus.master
 
         if options.recycle_latency:
             l1_cntrl.recycle_latency = options.recycle_latency
diff -r d76312a74915 -r c0db268f811b tests/configs/simple-timing-ruby.py
--- a/tests/configs/simple-timing-ruby.py       Sun Feb 23 19:16:16 2014 -0600
+++ b/tests/configs/simple-timing-ruby.py       Mon Feb 24 20:50:05 2014 -0600
@@ -79,8 +79,8 @@
                                        voltage_domain = system.voltage_domain)
 
 system.mem_ranges = AddrRange('256MB')
-
-Ruby.create_system(options, system)
+system.piobus = NoncoherentBus()
+Ruby.create_system(options, system, system.piobus)
 
 # Create a separate clock for Ruby
 system.ruby.clk_domain = SrcClockDomain(clock = options.ruby_clock,
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to