From 3ece6ab029756fa40679677d124e14acd1349416 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Sat, 15 Jan 2005 04:12:25 -0500 Subject: New and improved configuration mechanism. No more writing of wierd ini files. The ini files are still used as an intermediate step, but a sophisticated python library exists to help build them more easily. SConscript: add the new embedded file stuff remove all of the old object description junk base/inifile.cc: base/inifile.hh: get rid of findDefault and findAppend since they were the source of much evil. base/trace.cc: For now, if we don't have the dprintf_stream set up, dump to standard out. We probably want a command line option for this. dev/alpha_console.cc: PioDevice now takes a platform parameter. All PioDevices must have a pio_latency parameter. We stick a dummy parameter in here for now until we get rid of the builder stuff. dev/alpha_console.hh: don't need Platform anymore dev/baddev.cc: PioDevice now takes a platform parameter. All PioDevices must have a pio_latency parameter. We stick a dummy parameter in here for now until we get rid of the builder stuff. Same for the platform parameter, though we just pass the PioDevice a null parameter since it isn't used by this device and it's quicker. dev/baddev.hh: fix #include guards dev/etherlink.cc: rename parameters. dev/ethertap.cc: rename parameters dev/ide_ctrl.cc: All devices need an address even if it will get overwritten later. dev/ide_disk.cc: use an enum for the drive ID stuff. rename disk_delay -> delay Actually, I think that we should implement "cable select" and have the controller tell the drive what it is. dev/io_device.cc: dev/io_device.hh: All IO devices take a Platform * dev/ns_gige.cc: all devices need an io_bus. rename header_bus to io_bus We don't need stuff for the interrupt controller since it's all in the platform now. dev/ns_gige.hh: We don't need stuff for the interrupt controller now since it's all in the platform. dev/pciconfigall.cc: Pass a dummy NULL to the PioDevice for the platform since we don't need one. dev/pcidev.cc: Move a bunch of common functionality into the PciDev dev/platform.hh: remove unneeded code dev/tsunami.cc: remove unused param dev/tsunami_cchip.cc: pass platform pointer dev/tsunami_io.cc: dev/tsunami_pchip.cc: dev/uart.cc: pass platform variable dev/uart.hh: don't need to keep a platform pointer. it's in the base class kern/linux/linux_system.cc: kern/tru64/tru64_system.cc: rename some parameters sim/builder.cc: clean up builder code. use more parameters from the config node. all sections with a type= are now created, the old mechanisms no longer work sim/builder.hh: remove some extra variables since they are found in the ConfigNode sim/main.cc: add a quick hack command line argument -X to dump out the embedded files. (probably should be fixed up a little.) accept .mpy files printing to the streams has to happen after the hierarchy is built since we're moving away from param contexts sim/param.cc: add parsing support for ranges sim/process.cc: isValid isn't very useful anymore. interpret the names stdout, stderr, cout, cerr for the file descriptors sim/pyconfig/SConscript: Add Action handlers for creating an embedded python file and for creating an embedded C file. use these action handlers to embed all objects found in the objects tree into the binary along with the importer and the m5config stuff sim/pyconfig/m5config.py: Major changes to the original configuration file generator. These changes largely involve implementing copy-on-write like semantics for all of the SimObjects. Real documentation must be written. sim/universe.cc: Universe becomes a SimObject since we don't really have the notion of param contexts in the python code. --HG-- rename : sim/pyconfig/m5configbase.py => sim/pyconfig/m5config.py extra : convert_revision : c353453e5beb91c37f15755998fc0d8858c6829a --- dev/alpha_console.cc | 8 +++++--- dev/alpha_console.hh | 3 +-- dev/baddev.cc | 7 ++++++- dev/baddev.hh | 6 +++--- dev/etherlink.cc | 23 +++++++++++------------ dev/ethertap.cc | 6 +++--- dev/ide_ctrl.cc | 2 ++ dev/ide_disk.cc | 13 +++++++------ dev/io_device.cc | 8 ++++---- dev/io_device.hh | 12 +++++++----- dev/ns_gige.cc | 9 +++++---- dev/ns_gige.hh | 2 -- dev/pciconfigall.cc | 5 +++-- dev/pcidev.cc | 14 +++++++++++++- dev/platform.hh | 2 -- dev/tsunami.cc | 2 -- dev/tsunami_cchip.cc | 2 +- dev/tsunami_io.cc | 2 +- dev/tsunami_pchip.cc | 2 +- dev/uart.cc | 4 ++-- dev/uart.hh | 1 - 21 files changed, 75 insertions(+), 58 deletions(-) (limited to 'dev') diff --git a/dev/alpha_console.cc b/dev/alpha_console.cc index 7deabe2fc..8309ea16d 100644 --- a/dev/alpha_console.cc +++ b/dev/alpha_console.cc @@ -56,10 +56,10 @@ using namespace std; AlphaConsole::AlphaConsole(const string &name, SimConsole *cons, SimpleDisk *d, - System *system, BaseCPU *cpu, Platform *platform, + System *system, BaseCPU *cpu, Platform *p, int num_cpus, MemoryController *mmu, Addr a, HierParams *hier, Bus *bus) - : PioDevice(name), disk(d), console(cons), addr(a) + : PioDevice(name, p), disk(d), console(cons), addr(a) { mmu->add_child(this, RangeSize(addr, size)); @@ -79,7 +79,7 @@ AlphaConsole::AlphaConsole(const string &name, SimConsole *cons, SimpleDisk *d, alphaAccess->numCPUs = num_cpus; alphaAccess->mem_size = system->physmem->size(); alphaAccess->cpuClock = cpu->getFreq() / 1000000; - alphaAccess->intrClockFrequency = platform->intrFrequency(); + alphaAccess->intrClockFrequency = platform->intrFrequency(); alphaAccess->diskUnit = 1; alphaAccess->diskCount = 0; @@ -329,6 +329,7 @@ BEGIN_DECLARE_SIM_OBJECT_PARAMS(AlphaConsole) SimObjectParam cpu; SimObjectParam platform; SimObjectParam io_bus; + Param pio_latency; SimObjectParam hier; END_DECLARE_SIM_OBJECT_PARAMS(AlphaConsole) @@ -344,6 +345,7 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(AlphaConsole) INIT_PARAM(cpu, "Processor"), INIT_PARAM(platform, "platform"), INIT_PARAM_DFLT(io_bus, "The IO Bus to attach to", NULL), + INIT_PARAM_DFLT(pio_latency, "Programmed IO latency", 1000), INIT_PARAM_DFLT(hier, "Hierarchy global variables", &defaultHierParams) END_INIT_SIM_OBJECT_PARAMS(AlphaConsole) diff --git a/dev/alpha_console.hh b/dev/alpha_console.hh index 49c3a9f78..96b0a22c2 100644 --- a/dev/alpha_console.hh +++ b/dev/alpha_console.hh @@ -42,7 +42,6 @@ class BaseCPU; class SimConsole; class System; -class Platform; class SimpleDisk; /* @@ -75,7 +74,7 @@ class AlphaConsole : public PioDevice protected: union { AlphaAccess *alphaAccess; - uint8_t *consoleData; + uint8_t *consoleData; }; /** the disk must be accessed from the console */ diff --git a/dev/baddev.cc b/dev/baddev.cc index 73b082d47..bb1d289ab 100644 --- a/dev/baddev.cc +++ b/dev/baddev.cc @@ -37,6 +37,7 @@ #include "base/trace.hh" #include "cpu/exec_context.hh" #include "dev/baddev.hh" +#include "dev/platform.hh" #include "mem/bus/bus.hh" #include "mem/bus/pio_interface.hh" #include "mem/bus/pio_interface_impl.hh" @@ -48,7 +49,7 @@ using namespace std; BadDevice::BadDevice(const string &name, Addr a, MemoryController *mmu, HierParams *hier, Bus *bus, const string &devicename) - : PioDevice(name), addr(a), devname(devicename) + : PioDevice(name, NULL), addr(a), devname(devicename) { mmu->add_child(this, RangeSize(addr, size)); @@ -83,20 +84,24 @@ BadDevice::cacheAccess(MemReqPtr &req) BEGIN_DECLARE_SIM_OBJECT_PARAMS(BadDevice) + SimObjectParam platform; SimObjectParam mmu; Param addr; SimObjectParam hier; SimObjectParam io_bus; + Param pio_latency; Param devicename; END_DECLARE_SIM_OBJECT_PARAMS(BadDevice) BEGIN_INIT_SIM_OBJECT_PARAMS(BadDevice) + INIT_PARAM(platform, "Platform"), INIT_PARAM(mmu, "Memory Controller"), INIT_PARAM(addr, "Device Address"), INIT_PARAM_DFLT(hier, "Hierarchy global variables", &defaultHierParams), INIT_PARAM_DFLT(io_bus, "The IO Bus to attach to", NULL), + INIT_PARAM_DFLT(pio_latency, "Programmed IO latency", 1000), INIT_PARAM(devicename, "Name of device to error on") END_INIT_SIM_OBJECT_PARAMS(BadDevice) diff --git a/dev/baddev.hh b/dev/baddev.hh index 8680f6b0a..a9e904c62 100644 --- a/dev/baddev.hh +++ b/dev/baddev.hh @@ -31,8 +31,8 @@ * kernel that touches the frame buffer which isn't allowed. */ -#ifndef __BADDEV_HH__ -#define __BADDEV_HH__ +#ifndef __DEV_BADDEV_HH__ +#define __DEV_BADDEV_HH__ #include "base/range.hh" #include "dev/io_device.hh" @@ -90,4 +90,4 @@ class BadDevice : public PioDevice Tick cacheAccess(MemReqPtr &req); }; -#endif // __BADDEV_HH__ +#endif // __DEV_BADDEV_HH__ diff --git a/dev/etherlink.cc b/dev/etherlink.cc index d637e152a..0acc50b0b 100644 --- a/dev/etherlink.cc +++ b/dev/etherlink.cc @@ -261,28 +261,27 @@ REGISTER_SERIALIZEABLE("LinkDelayEvent", LinkDelayEvent) BEGIN_DECLARE_SIM_OBJECT_PARAMS(EtherLink) - SimObjectParam interface1; - SimObjectParam interface2; - Param link_speed; - Param link_delay; - SimObjectParam packet_dump; + SimObjectParam int1; + SimObjectParam int2; + Param speed; + Param delay; + SimObjectParam dump; END_DECLARE_SIM_OBJECT_PARAMS(EtherLink) BEGIN_INIT_SIM_OBJECT_PARAMS(EtherLink) - INIT_PARAM(interface1, "interface 1"), - INIT_PARAM(interface2, "interface 2"), - INIT_PARAM_DFLT(link_speed, "link speed in bits per second", 100000000), - INIT_PARAM_DFLT(link_delay, "transmit delay of packets in us", 0), - INIT_PARAM_DFLT(packet_dump, "object to dump network packets to", NULL) + INIT_PARAM(int1, "interface 1"), + INIT_PARAM(int2, "interface 2"), + INIT_PARAM_DFLT(speed, "link speed in bits per second", 100000000), + INIT_PARAM_DFLT(delay, "transmit delay of packets in us", 0), + INIT_PARAM_DFLT(dump, "object to dump network packets to", NULL) END_INIT_SIM_OBJECT_PARAMS(EtherLink) CREATE_SIM_OBJECT(EtherLink) { - return new EtherLink(getInstanceName(), interface1, interface2, link_speed, - link_delay, packet_dump); + return new EtherLink(getInstanceName(), int1, int2, speed, delay, dump); } REGISTER_SIM_OBJECT("EtherLink", EtherLink) diff --git a/dev/ethertap.cc b/dev/ethertap.cc index 1603a9bd3..807765d91 100644 --- a/dev/ethertap.cc +++ b/dev/ethertap.cc @@ -311,7 +311,7 @@ EtherTap::unserialize(Checkpoint *cp, const std::string §ion) BEGIN_DECLARE_SIM_OBJECT_PARAMS(EtherTap) SimObjectParam peer; - SimObjectParam packet_dump; + SimObjectParam dump; Param port; Param bufsz; @@ -320,7 +320,7 @@ END_DECLARE_SIM_OBJECT_PARAMS(EtherTap) BEGIN_INIT_SIM_OBJECT_PARAMS(EtherTap) INIT_PARAM_DFLT(peer, "peer interface", NULL), - INIT_PARAM_DFLT(packet_dump, "object to dump network packets to", NULL), + INIT_PARAM_DFLT(dump, "object to dump network packets to", NULL), INIT_PARAM_DFLT(port, "tap port", 3500), INIT_PARAM_DFLT(bufsz, "tap buffer size", 10000) @@ -329,7 +329,7 @@ END_INIT_SIM_OBJECT_PARAMS(EtherTap) CREATE_SIM_OBJECT(EtherTap) { - EtherTap *tap = new EtherTap(getInstanceName(), packet_dump, port, bufsz); + EtherTap *tap = new EtherTap(getInstanceName(), dump, port, bufsz); if (peer) { tap->setPeer(peer); diff --git a/dev/ide_ctrl.cc b/dev/ide_ctrl.cc index 109908ead..037de1dea 100644 --- a/dev/ide_ctrl.cc +++ b/dev/ide_ctrl.cc @@ -664,6 +664,7 @@ IdeController::unserialize(Checkpoint *cp, const std::string §ion) BEGIN_DECLARE_SIM_OBJECT_PARAMS(IdeController) + Param addr; SimObjectVectorParam disks; SimObjectParam mmu; SimObjectParam configspace; @@ -680,6 +681,7 @@ END_DECLARE_SIM_OBJECT_PARAMS(IdeController) BEGIN_INIT_SIM_OBJECT_PARAMS(IdeController) + INIT_PARAM(addr, "Device Address"), INIT_PARAM(disks, "IDE disks attached to this controller"), INIT_PARAM(mmu, "Memory controller"), INIT_PARAM(configspace, "PCI Configspace"), diff --git a/dev/ide_disk.cc b/dev/ide_disk.cc index 073c10436..bfaf3d3aa 100644 --- a/dev/ide_disk.cc +++ b/dev/ide_disk.cc @@ -1171,12 +1171,14 @@ IdeDisk::unserialize(Checkpoint *cp, const string §ion) #ifndef DOXYGEN_SHOULD_SKIP_THIS +enum DriveID { master, slave }; +static const char *DriveID_strings[] = { "master", "slave" }; BEGIN_DECLARE_SIM_OBJECT_PARAMS(IdeDisk) SimObjectParam image; SimObjectParam physmem; - Param driveID; - Param disk_delay; + SimpleEnumParam driveID; + Param delay; END_DECLARE_SIM_OBJECT_PARAMS(IdeDisk) @@ -1184,16 +1186,15 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(IdeDisk) INIT_PARAM(image, "Disk image"), INIT_PARAM(physmem, "Physical memory"), - INIT_PARAM(driveID, "Drive ID (0=master 1=slave)"), - INIT_PARAM_DFLT(disk_delay, "Fixed disk delay in microseconds", 1) + INIT_ENUM_PARAM(driveID, "Drive ID (0=master 1=slave)", DriveID_strings), + INIT_PARAM_DFLT(delay, "Fixed disk delay in microseconds", 1) END_INIT_SIM_OBJECT_PARAMS(IdeDisk) CREATE_SIM_OBJECT(IdeDisk) { - return new IdeDisk(getInstanceName(), image, physmem, driveID, - disk_delay); + return new IdeDisk(getInstanceName(), image, physmem, driveID, delay); } REGISTER_SIM_OBJECT("IdeDisk", IdeDisk) diff --git a/dev/io_device.cc b/dev/io_device.cc index 7703ad5e3..ffded5858 100644 --- a/dev/io_device.cc +++ b/dev/io_device.cc @@ -31,8 +31,8 @@ #include "mem/bus/dma_interface.hh" #include "sim/builder.hh" -PioDevice::PioDevice(const std::string &name) - : FunctionalMemory(name), pioInterface(NULL), pioLatency(0) +PioDevice::PioDevice(const std::string &name, Platform *p) + : FunctionalMemory(name), platform(p), pioInterface(NULL), pioLatency(0) {} PioDevice::~PioDevice() @@ -43,8 +43,8 @@ PioDevice::~PioDevice() DEFINE_SIM_OBJECT_CLASS_NAME("PioDevice", PioDevice) -DmaDevice::DmaDevice(const std::string &name) - : PioDevice(name), dmaInterface(NULL) +DmaDevice::DmaDevice(const std::string &name, Platform *p) + : PioDevice(name, p), dmaInterface(NULL) {} DmaDevice::~DmaDevice() diff --git a/dev/io_device.hh b/dev/io_device.hh index 8c9dc4a35..649706956 100644 --- a/dev/io_device.hh +++ b/dev/io_device.hh @@ -26,24 +26,26 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __IO_DEVICE_HH__ -#define __IO_DEVICE_HH__ +#ifndef __DEV_IO_DEVICE_HH__ +#define __DEV_IO_DEVICE_HH__ #include "mem/functional_mem/functional_memory.hh" class BaseInterface; class Bus; class HierParams; +class Platform; template class DMAInterface; class PioDevice : public FunctionalMemory { protected: + Platform *platform; BaseInterface *pioInterface; Tick pioLatency; public: - PioDevice(const std::string &name); + PioDevice(const std::string &name, Platform *p); virtual ~PioDevice(); }; @@ -53,8 +55,8 @@ class DmaDevice : public PioDevice DMAInterface *dmaInterface; public: - DmaDevice(const std::string &name); + DmaDevice(const std::string &name, Platform *p); virtual ~DmaDevice(); }; -#endif // __IO_DEVICE_HH__ +#endif // __DEV_IO_DEVICE_HH__ diff --git a/dev/ns_gige.cc b/dev/ns_gige.cc index eee8fbbce..aa47436f7 100644 --- a/dev/ns_gige.cc +++ b/dev/ns_gige.cc @@ -36,7 +36,6 @@ #include "base/inet.hh" #include "cpu/exec_context.hh" -#include "cpu/intr_control.hh" #include "dev/dma.hh" #include "dev/etherlink.hh" #include "dev/ns_gige.hh" @@ -2637,6 +2636,7 @@ REGISTER_SIM_OBJECT("NSGigEInt", NSGigEInt) BEGIN_DECLARE_SIM_OBJECT_PARAMS(NSGigE) + Param addr; Param tx_delay; Param rx_delay; Param intr_delay; @@ -2644,7 +2644,7 @@ BEGIN_DECLARE_SIM_OBJECT_PARAMS(NSGigE) SimObjectParam physmem; Param rx_filter; Param hardware_address; - SimObjectParam header_bus; + SimObjectParam io_bus; SimObjectParam payload_bus; SimObjectParam hier; Param pio_latency; @@ -2667,6 +2667,7 @@ END_DECLARE_SIM_OBJECT_PARAMS(NSGigE) BEGIN_INIT_SIM_OBJECT_PARAMS(NSGigE) + INIT_PARAM(addr, "Device Address"), INIT_PARAM_DFLT(tx_delay, "Transmit Delay", 1000), INIT_PARAM_DFLT(rx_delay, "Receive Delay", 1000), INIT_PARAM_DFLT(intr_delay, "Interrupt Delay in microseconds", 0), @@ -2675,7 +2676,7 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(NSGigE) INIT_PARAM_DFLT(rx_filter, "Enable Receive Filter", true), INIT_PARAM_DFLT(hardware_address, "Ethernet Hardware Address", "00:99:00:00:00:01"), - INIT_PARAM_DFLT(header_bus, "The IO Bus to attach to for headers", NULL), + INIT_PARAM_DFLT(io_bus, "The IO Bus to attach to for headers", NULL), INIT_PARAM_DFLT(payload_bus, "The IO Bus to attach to for payload", NULL), INIT_PARAM_DFLT(hier, "Hierarchy global variables", &defaultHierParams), INIT_PARAM_DFLT(pio_latency, "Programmed IO latency in bus cycles", 1), @@ -2715,7 +2716,7 @@ CREATE_SIM_OBJECT(NSGigE) params->tx_delay = tx_delay; params->rx_delay = rx_delay; params->hier = hier; - params->header_bus = header_bus; + params->header_bus = io_bus; params->payload_bus = payload_bus; params->pio_latency = pio_latency; params->dma_desc_free = dma_desc_free; diff --git a/dev/ns_gige.hh b/dev/ns_gige.hh index 8d6016126..bc7a87373 100644 --- a/dev/ns_gige.hh +++ b/dev/ns_gige.hh @@ -91,7 +91,6 @@ struct dp_rom { uint8_t perfectMatch[ETH_ADDR_LEN]; }; -class IntrControl; class NSGigEInt; class PhysicalMemory; class BaseInterface; @@ -302,7 +301,6 @@ class NSGigE : public PciDev /** * Interrupt management */ - IntrControl *intctrl; void devIntrPost(uint32_t interrupts); void devIntrClear(uint32_t interrupts); void devIntrChangeMask(); diff --git a/dev/pciconfigall.cc b/dev/pciconfigall.cc index 609763e92..1a9804f79 100644 --- a/dev/pciconfigall.cc +++ b/dev/pciconfigall.cc @@ -48,9 +48,10 @@ using namespace std; -PciConfigAll::PciConfigAll(const string &name, Addr a, MemoryController *mmu, +PciConfigAll::PciConfigAll(const string &name, + Addr a, MemoryController *mmu, HierParams *hier, Bus *bus, Tick pio_latency) - : PioDevice(name), addr(a) + : PioDevice(name, NULL), addr(a) { mmu->add_child(this, RangeSize(addr, size)); diff --git a/dev/pcidev.cc b/dev/pcidev.cc index d156b6a02..c45afadd4 100644 --- a/dev/pcidev.cc +++ b/dev/pcidev.cc @@ -42,6 +42,7 @@ #include "dev/pciareg.h" #include "dev/pcidev.hh" #include "dev/pciconfigall.hh" +#include "mem/bus/bus.hh" #include "mem/functional_mem/memory_control.hh" #include "sim/builder.hh" #include "sim/param.hh" @@ -51,7 +52,8 @@ using namespace std; PciDev::PciDev(Params *p) - : DmaDevice(p->name), _params(p), plat(p->plat), configData(p->configData) + : DmaDevice(p->name, p->plat), _params(p), plat(p->plat), + configData(p->configData) { // copy the config data from the PciConfigData object if (configData) { @@ -283,6 +285,11 @@ PciDev::unserialize(Checkpoint *cp, const std::string §ion) BEGIN_DECLARE_SIM_OBJECT_PARAMS(PciConfigData) + SimObjectParam mmu; + Param addr; + SimObjectParam io_bus; + Param pio_latency; + Param VendorID; Param DeviceID; Param Command; @@ -320,6 +327,11 @@ END_DECLARE_SIM_OBJECT_PARAMS(PciConfigData) BEGIN_INIT_SIM_OBJECT_PARAMS(PciConfigData) + INIT_PARAM(mmu, "Memory Controller"), + INIT_PARAM(addr, "Device Address"), + INIT_PARAM_DFLT(io_bus, "The IO Bus to attach to", NULL), + INIT_PARAM_DFLT(pio_latency, "Programmed IO latency in bus cycles", 1), + INIT_PARAM(VendorID, "Vendor ID"), INIT_PARAM(DeviceID, "Device ID"), INIT_PARAM_DFLT(Command, "Command Register", 0x00), diff --git a/dev/platform.hh b/dev/platform.hh index 717e49411..47ca6209f 100644 --- a/dev/platform.hh +++ b/dev/platform.hh @@ -47,8 +47,6 @@ class Platform : public SimObject public: /** Pointer to the interrupt controller */ IntrControl *intrctrl; - /** Pointer to the simulation console */ - SimConsole *cons; /** Pointer to the PCI configuration space */ PciConfigAll *pciconfig; diff --git a/dev/tsunami.cc b/dev/tsunami.cc index f98254354..a95b7365d 100644 --- a/dev/tsunami.cc +++ b/dev/tsunami.cc @@ -107,7 +107,6 @@ Tsunami::unserialize(Checkpoint *cp, const std::string §ion) BEGIN_DECLARE_SIM_OBJECT_PARAMS(Tsunami) SimObjectParam system; - SimObjectParam cons; SimObjectParam intrctrl; SimObjectParam pciconfig; Param interrupt_frequency; @@ -117,7 +116,6 @@ END_DECLARE_SIM_OBJECT_PARAMS(Tsunami) BEGIN_INIT_SIM_OBJECT_PARAMS(Tsunami) INIT_PARAM(system, "system"), - INIT_PARAM(cons, "system console"), INIT_PARAM(intrctrl, "interrupt controller"), INIT_PARAM(pciconfig, "PCI configuration"), INIT_PARAM_DFLT(interrupt_frequency, "frequency of interrupts", 1024) diff --git a/dev/tsunami_cchip.cc b/dev/tsunami_cchip.cc index a1f900153..823d1f118 100644 --- a/dev/tsunami_cchip.cc +++ b/dev/tsunami_cchip.cc @@ -51,7 +51,7 @@ using namespace std; TsunamiCChip::TsunamiCChip(const string &name, Tsunami *t, Addr a, MemoryController *mmu, HierParams *hier, Bus* bus, Tick pio_latency) - : PioDevice(name), addr(a), tsunami(t) + : PioDevice(name, t), addr(a), tsunami(t) { mmu->add_child(this, RangeSize(addr, size)); diff --git a/dev/tsunami_io.cc b/dev/tsunami_io.cc index 51ff8b81c..a223c95c7 100644 --- a/dev/tsunami_io.cc +++ b/dev/tsunami_io.cc @@ -162,7 +162,7 @@ TsunamiIO::ClockEvent::unserialize(Checkpoint *cp, const std::string §ion) TsunamiIO::TsunamiIO(const string &name, Tsunami *t, time_t init_time, Addr a, MemoryController *mmu, HierParams *hier, Bus *bus, Tick pio_latency) - : PioDevice(name), addr(a), tsunami(t), rtc(t) + : PioDevice(name, t), addr(a), tsunami(t), rtc(t) { mmu->add_child(this, RangeSize(addr, size)); diff --git a/dev/tsunami_pchip.cc b/dev/tsunami_pchip.cc index 9af19d930..f846725f9 100644 --- a/dev/tsunami_pchip.cc +++ b/dev/tsunami_pchip.cc @@ -51,7 +51,7 @@ using namespace std; TsunamiPChip::TsunamiPChip(const string &name, Tsunami *t, Addr a, MemoryController *mmu, HierParams *hier, Bus *bus, Tick pio_latency) - : PioDevice(name), addr(a), tsunami(t) + : PioDevice(name, t), addr(a), tsunami(t) { mmu->add_child(this, RangeSize(addr, size)); diff --git a/dev/uart.cc b/dev/uart.cc index 2ff94dda5..3c4ab6d04 100644 --- a/dev/uart.cc +++ b/dev/uart.cc @@ -88,8 +88,8 @@ Uart::IntrEvent::scheduleIntr() Uart::Uart(const string &name, SimConsole *c, MemoryController *mmu, Addr a, Addr s, HierParams *hier, Bus *bus, Tick pio_latency, Platform *p) - : PioDevice(name), addr(a), size(s), cons(c), txIntrEvent(this, TX_INT), - rxIntrEvent(this, RX_INT), platform(p) + : PioDevice(name, p), addr(a), size(s), cons(c), + txIntrEvent(this, TX_INT), rxIntrEvent(this, RX_INT) { mmu->add_child(this, RangeSize(addr, size)); diff --git a/dev/uart.hh b/dev/uart.hh index 855915840..d1f167526 100644 --- a/dev/uart.hh +++ b/dev/uart.hh @@ -72,7 +72,6 @@ class Uart : public PioDevice IntrEvent txIntrEvent; IntrEvent rxIntrEvent; - Platform *platform; public: Uart(const std::string &name, SimConsole *c, MemoryController *mmu, -- cgit v1.2.3