*/
#include "base/trace.hh"
+#include "debug/PciConfigAll.hh"
#include "dev/pciconfigall.hh"
#include "dev/pcireg.h"
#include "dev/platform.hh"
#include "params/PciConfigAll.hh"
#include "sim/system.hh"
-using namespace std;
-
-PciConfigAll::PciConfigAll(Params *p)
- : PioDevice(p)
+PciConfigAll::PciConfigAll(const Params *p)
+ : BasicPioDevice(p, p->size)
{
- pioAddr = p->platform->calcConfigAddr(params()->bus,0,0);
+ // the pio_addr Python parameter is ignored, and overridden by
+ // this caluclated value
+ pioAddr = p->platform->calcPciConfigAddr(params()->bus,0,0);
}
panic("invalid access size(?) for PCI configspace!\n");
}
pkt->makeAtomicResponse();
- return params()->pio_delay;
+ return pioDelay;
}
Tick
PciConfigAll::write(PacketPtr pkt)
{
- panic("Attempting to write to config space on non-existant device\n");
+ panic("Attempting to write to config space on non-existent device\n");
M5_DUMMY_RETURN
}
-void
-PciConfigAll::addressRanges(AddrRangeList &range_list)
-{
- range_list.clear();
- range_list.push_back(RangeSize(pioAddr, params()->size));
-}
-
-
#ifndef DOXYGEN_SHOULD_SKIP_THIS
PciConfigAll *
PciConfigAllParams::create()
{
- PciConfigAll::Params *p = new PciConfigAll::Params;
- p->pio_delay = pio_latency;
- p->platform = platform;
- p->system = system;
- p->bus = bus;
- p->size = size;
-
- return new PciConfigAll(p);
+ return new PciConfigAll(this);
}
#endif // DOXYGEN_SHOULD_SKIP_THIS