ruby: no piobus in se mode

Piobus was recently added to se scripts for ruby so that the interrupt
controller can be connected to something (required since the interrupt
controller sends address range messages).  This patch removes the piobus
and instead, the pio port of ruby port will now ignore the range change
messages in se mode.
This commit is contained in:
Nilay Vaish 2014-03-20 08:03:09 -05:00
parent a20fbdfc23
commit 9b3418d163
3 changed files with 4 additions and 6 deletions

View file

@ -232,9 +232,7 @@ if options.ruby:
system.physmem = MemClass(range=AddrRange(options.mem_size),
null = True)
options.use_map = True
system.piobus = NoncoherentBus()
Ruby.create_system(options, system, system.piobus)
Ruby.create_system(options, system)
assert(options.num_cpus == len(system.ruby._cpu_ruby_ports))
for i in xrange(np):

View file

@ -46,6 +46,7 @@
#include "mem/protocol/AccessPermission.hh"
#include "mem/ruby/slicc_interface/AbstractController.hh"
#include "mem/ruby/system/RubyPort.hh"
#include "sim/full_system.hh"
#include "sim/system.hh"
RubyPort::RubyPort(const Params *p)
@ -558,7 +559,7 @@ RubyPort::PioMasterPort::recvRangeChange()
{
RubyPort &r = static_cast<RubyPort &>(owner);
r.gotAddrRanges--;
if (r.gotAddrRanges == 0) {
if (r.gotAddrRanges == 0 && FullSystem) {
r.pioSlavePort.sendRangeChange();
}
}

View file

@ -79,8 +79,7 @@ system.cpu.clk_domain = SrcClockDomain(clock = '2GHz',
voltage_domain = system.voltage_domain)
system.mem_ranges = AddrRange('256MB')
system.piobus = NoncoherentBus()
Ruby.create_system(options, system, system.piobus)
Ruby.create_system(options, system)
# Create a separate clock for Ruby
system.ruby.clk_domain = SrcClockDomain(clock = options.ruby_clock,