Panic if physical memory isn't connected to anything
send range change at init for all devices dev/io_device.cc: dev/io_device.hh: add init function for pio devices to sent status changes around mem/physical.cc: mem/physical.hh: Panic if physical memory isn't connected to anything --HG-- extra : convert_revision : 4223d1c3c73522d1e196c218eb0084d238677ad9
This commit is contained in:
parent
e17a15f4c5
commit
93b271117f
4 changed files with 18 additions and 1 deletions
|
@ -88,6 +88,13 @@ PioDevice::~PioDevice()
|
||||||
delete pioPort;
|
delete pioPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PioDevice::init()
|
||||||
|
{
|
||||||
|
if (!pioPort)
|
||||||
|
panic("Pio port not connected to anything!");
|
||||||
|
pioPort->sendStatusChange(Port::RangeChange);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
BasicPioDevice::addressRanges(AddrRangeList &range_list)
|
BasicPioDevice::addressRanges(AddrRangeList &range_list)
|
||||||
{
|
{
|
||||||
|
|
|
@ -229,6 +229,8 @@ class PioDevice : public SimObject
|
||||||
|
|
||||||
virtual ~PioDevice();
|
virtual ~PioDevice();
|
||||||
|
|
||||||
|
virtual void init();
|
||||||
|
|
||||||
virtual Port *getPort(const std::string &if_name)
|
virtual Port *getPort(const std::string &if_name)
|
||||||
{
|
{
|
||||||
if (if_name == "pio") {
|
if (if_name == "pio") {
|
||||||
|
|
|
@ -90,6 +90,14 @@ PhysicalMemory::PhysicalMemory(const string &n)
|
||||||
page_ptr = 0;
|
page_ptr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PhysicalMemory::init()
|
||||||
|
{
|
||||||
|
if (!port)
|
||||||
|
panic("PhysicalMemory not connected to anything!");
|
||||||
|
port->sendStatusChange(Port::RangeChange);
|
||||||
|
}
|
||||||
|
|
||||||
PhysicalMemory::~PhysicalMemory()
|
PhysicalMemory::~PhysicalMemory()
|
||||||
{
|
{
|
||||||
if (pmem_addr)
|
if (pmem_addr)
|
||||||
|
|
|
@ -107,7 +107,7 @@ class PhysicalMemory : public MemObject
|
||||||
int deviceBlockSize();
|
int deviceBlockSize();
|
||||||
void getAddressRanges(AddrRangeList &resp, AddrRangeList &snoop);
|
void getAddressRanges(AddrRangeList &resp, AddrRangeList &snoop);
|
||||||
virtual Port *getPort(const std::string &if_name);
|
virtual Port *getPort(const std::string &if_name);
|
||||||
void virtual init() { port->sendStatusChange(Port::RangeChange); }
|
void virtual init();
|
||||||
|
|
||||||
// fast back-door memory access for vtophys(), remote gdb, etc.
|
// fast back-door memory access for vtophys(), remote gdb, etc.
|
||||||
// uint64_t phys_read_qword(Addr addr) const;
|
// uint64_t phys_read_qword(Addr addr) const;
|
||||||
|
|
Loading…
Reference in a new issue