misc: Merge branch 'release-staging-v20.1.0.0' into develop
Change-Id: I1eacbc5719aa85c5a7650ec33fd99f673fdf443d
diff --git a/src/arch/arm/kvm/arm_cpu.hh b/src/arch/arm/kvm/arm_cpu.hh
index 28453d7..cc3c935 100644
--- a/src/arch/arm/kvm/arm_cpu.hh
+++ b/src/arch/arm/kvm/arm_cpu.hh
@@ -71,7 +71,7 @@
/** KVM ID */
const uint64_t id;
/** gem5 index */
- const IntRegIndex idx;
+ const ArmISA::IntRegIndex idx;
/** Name in debug output */
const char *name;
};
@@ -80,7 +80,7 @@
/** KVM ID */
const uint64_t id;
/** gem5 index */
- const MiscRegIndex idx;
+ const ArmISA::MiscRegIndex idx;
/** Name in debug output */
const char *name;
};
diff --git a/src/arch/arm/kvm/armv8_cpu.cc b/src/arch/arm/kvm/armv8_cpu.cc
index b8ada8d..1001f81 100644
--- a/src/arch/arm/kvm/armv8_cpu.cc
+++ b/src/arch/arm/kvm/armv8_cpu.cc
@@ -42,6 +42,8 @@
#include "debug/KvmContext.hh"
#include "params/ArmV8KvmCPU.hh"
+using namespace ArmISA;
+
// Unlike gem5, kvm doesn't count the SP as a normal integer register,
// which means we only have 31 normal integer registers.
constexpr static unsigned NUM_XREGS = NUM_ARCH_INTREGS - 1;
diff --git a/src/arch/arm/kvm/armv8_cpu.hh b/src/arch/arm/kvm/armv8_cpu.hh
index 9870510..dae9fe7 100644
--- a/src/arch/arm/kvm/armv8_cpu.hh
+++ b/src/arch/arm/kvm/armv8_cpu.hh
@@ -93,27 +93,27 @@
protected:
/** Mapping between integer registers in gem5 and KVM */
struct IntRegInfo {
- IntRegInfo(uint64_t _kvm, IntRegIndex _idx, const char *_name)
+ IntRegInfo(uint64_t _kvm, ArmISA::IntRegIndex _idx, const char *_name)
: kvm(_kvm), idx(_idx), name(_name) {}
/** Register index in KVM */
uint64_t kvm;
/** Register index in gem5 */
- IntRegIndex idx;
+ ArmISA::IntRegIndex idx;
/** Name to use in debug dumps */
const char *name;
};
/** Mapping between misc registers in gem5 and registers in KVM */
struct MiscRegInfo {
- MiscRegInfo(uint64_t _kvm, MiscRegIndex _idx, const char *_name,
- bool _is_device = false)
+ MiscRegInfo(uint64_t _kvm, ArmISA::MiscRegIndex _idx,
+ const char *_name, bool _is_device = false)
: kvm(_kvm), idx(_idx), name(_name), is_device(_is_device) {}
/** Register index in KVM */
uint64_t kvm;
/** Register index in gem5 */
- MiscRegIndex idx;
+ ArmISA::MiscRegIndex idx;
/** Name to use in debug dumps */
const char *name;
/** is device register? (needs 'effectful' state update) */
@@ -137,7 +137,7 @@
/** Mapping between gem5 misc registers and registers in kvm */
static const std::vector<ArmV8KvmCPU::MiscRegInfo> miscRegMap;
/** Device registers (needing "effectful" MiscReg writes) */
- static const std::set<MiscRegIndex> deviceRegSet;
+ static const std::set<ArmISA::MiscRegIndex> deviceRegSet;
/** Mapping between gem5 ID misc registers and registers in kvm */
static const std::vector<ArmV8KvmCPU::MiscRegInfo> miscRegIdMap;
diff --git a/src/arch/arm/kvm/base_cpu.cc b/src/arch/arm/kvm/base_cpu.cc
index 04c5d0f..6fd2651 100644
--- a/src/arch/arm/kvm/base_cpu.cc
+++ b/src/arch/arm/kvm/base_cpu.cc
@@ -45,6 +45,8 @@
#include "params/BaseArmKvmCPU.hh"
#include "params/GenericTimer.hh"
+using namespace ArmISA;
+
#define INTERRUPT_ID(type, vcpu, irq) ( \
((type) << KVM_ARM_IRQ_TYPE_SHIFT) | \
((vcpu) << KVM_ARM_IRQ_VCPU_SHIFT) | \
diff --git a/src/cpu/BaseCPU.py b/src/cpu/BaseCPU.py
index c9e8ae6..ad91f3a 100644
--- a/src/cpu/BaseCPU.py
+++ b/src/cpu/BaseCPU.py
@@ -194,13 +194,13 @@
def connectCachedPorts(self, bus):
for p in self._cached_ports:
- exec('self.%s = bus.cpu_side_ports' % p)
+ exec('self.%s = bus.slave' % p)
def connectUncachedPorts(self, bus):
for p in self._uncached_interrupt_response_ports:
- exec('self.%s = bus.mem_side_ports' % p)
+ exec('self.%s = bus.master' % p)
for p in self._uncached_interrupt_request_ports:
- exec('self.%s = bus.cpu_side_ports' % p)
+ exec('self.%s = bus.slave' % p)
def connectAllPorts(self, cached_bus, uncached_bus = None):
self.connectCachedPorts(cached_bus)
diff --git a/src/cpu/tmp.ipynb b/src/cpu/tmp.ipynb
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/cpu/tmp.ipynb
diff --git a/src/dev/x86/i82094aa.cc b/src/dev/x86/i82094aa.cc
index c7817dc..bb28a8a 100644
--- a/src/dev/x86/i82094aa.cc
+++ b/src/dev/x86/i82094aa.cc
@@ -79,7 +79,7 @@
Port &
X86ISA::I82094AA::getPort(const std::string &if_name, PortID idx)
{
- if (if_name == "int_request")
+ if (if_name == "int_requestor")
return intRequestPort;
if (if_name == "inputs")
return *inputs.at(idx);
diff --git a/src/mem/ruby/slicc_interface/Controller.py b/src/mem/ruby/slicc_interface/Controller.py
index 2c6c655..1f9c0db 100644
--- a/src/mem/ruby/slicc_interface/Controller.py
+++ b/src/mem/ruby/slicc_interface/Controller.py
@@ -66,5 +66,8 @@
Param.Cycles(1, "Default latency for requests added to the " \
"mandatory queue on top-level controllers")
- memory = RequestPort("Port for attaching a memory controller")
+ memory_out_port = RequestPort("Port for attaching a memory controller")
+ memory = DeprecatedParam(memory_out_port, "The request port for Ruby "
+ "memory output to the main memory is now called `memory_out_port`")
+
system = Param.System(Parent.any, "system object parameter")
diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc
index 4fc41c9..fc011cc 100644
--- a/src/mem/ruby/system/RubyPort.cc
+++ b/src/mem/ruby/system/RubyPort.cc
@@ -61,13 +61,13 @@
memResponsePort(csprintf("%s-mem-response-port", name()), this,
p->ruby_system->getAccessBackingStore(), -1,
p->no_retry_on_stall),
- gotAddrRanges(p->port_request_ports_connection_count),
+ gotAddrRanges(p->port_interrupt_out_port_connection_count),
m_isCPUSequencer(p->is_cpu_sequencer)
{
assert(m_version != -1);
// create the response ports based on the number of connected ports
- for (size_t i = 0; i < p->port_response_ports_connection_count; ++i) {
+ for (size_t i = 0; i < p->port_in_ports_connection_count; ++i) {
response_ports.push_back(new MemResponsePort(csprintf
("%s.response_ports%d", name(), i), this,
p->ruby_system->getAccessBackingStore(),
@@ -75,7 +75,7 @@
}
// create the request ports based on the number of connected ports
- for (size_t i = 0; i < p->port_request_ports_connection_count; ++i) {
+ for (size_t i = 0; i < p->port_interrupt_out_port_connection_count; ++i) {
request_ports.push_back(new PioRequestPort(csprintf(
"%s.request_ports%d", name(), i), this));
}
@@ -99,7 +99,7 @@
return memResponsePort;
} else if (if_name == "pio_response_port") {
return pioResponsePort;
- } else if (if_name == "request_ports") {
+ } else if (if_name == "interrupt_out_port") {
// used by the x86 CPUs to connect the interrupt PIO and interrupt
// response port
if (idx >= static_cast<PortID>(request_ports.size())) {
@@ -107,7 +107,7 @@
}
return *request_ports[idx];
- } else if (if_name == "response_ports") {
+ } else if (if_name == "in_ports") {
// used by the CPUs to connect the caches to the interconnect, and
// for the x86 case also the interrupt request port
if (idx >= static_cast<PortID>(response_ports.size())) {
diff --git a/src/mem/ruby/system/Sequencer.py b/src/mem/ruby/system/Sequencer.py
index 6869fc2..0a28d36 100644
--- a/src/mem/ruby/system/Sequencer.py
+++ b/src/mem/ruby/system/Sequencer.py
@@ -35,18 +35,26 @@
cxx_header = "mem/ruby/system/RubyPort.hh"
version = Param.Int(0, "")
- response_ports = VectorResponsePort("CPU response port")
- slave = DeprecatedParam(response_ports,
- '`slave` is now called `response_ports`')
- request_ports = VectorRequestPort("CPU request port")
- master = DeprecatedParam(request_ports,
- '`master` is now called `request_ports`')
+ in_ports = VectorResponsePort("CPU side of this RubyPort/Sequencer. "
+ "The CPU request ports should be connected to this. If a CPU "
+ "has multiple ports (e.g., I/D ports) all of the ports for a "
+ "single CPU can connect to one RubyPort.")
+ slave = DeprecatedParam(in_ports,
+ '`slave` is now called `in_port`')
+
+ interrupt_out_port = VectorRequestPort("Port to connect to x86 interrupt "
+ "controller to send the CPU requests from outside.")
+ master = DeprecatedParam(interrupt_out_port,
+ '`master` is now called `interrupt_out_port`')
+
pio_request_port = RequestPort("Ruby pio request port")
pio_master_port = DeprecatedParam(pio_request_port,
'`pio_master_port` is now called `pio_request_port`')
+
mem_request_port = RequestPort("Ruby mem request port")
mem_master_port = DeprecatedParam(mem_request_port,
'`mem_master_port` is now called `mem_request_port`')
+
pio_response_port = ResponsePort("Ruby pio response port")
pio_slave_port = DeprecatedParam(pio_response_port,
'`pio_slave_port` is now called `pio_response_port`')
diff --git a/tests/gem5/learning_gem5/part1_test.py b/tests/gem5/learning_gem5/part1_test.py
index b57ba17..f8363ac 100644
--- a/tests/gem5/learning_gem5/part1_test.py
+++ b/tests/gem5/learning_gem5/part1_test.py
@@ -38,16 +38,6 @@
valid_isas=('X86', 'RISCV', 'ARM'),
)
-# The "long" simple tests.
-gem5_verify_config(
- name='simple_test',
- verifiers = (),
- config=joinpath(config_path, 'simple.py'),
- config_args = [],
- length = constants.long_tag,
- valid_isas=('MIPS',),
-)
-
# The "quick" two level tests.
gem5_verify_config(
name='two_level_test',
@@ -57,14 +47,3 @@
length = constants.quick_tag,
valid_isas=('X86', 'RISCV', 'ARM'),
)
-
-# The "long" two level tests.
-gem5_verify_config(
- name='two_level_test',
- verifiers = (),
- config=joinpath(config_path, 'two_level.py'),
- config_args = [],
- length = constants.long_tag,
- valid_isas=('MIPS',),
-)
-