Go to the documentation of this file.
47 #include "debug/Iob.hh"
83 panic(
"Invalid address reached Iob\n");
115 panic(
"Read to unknown IOB offset 0x%x\n", accessAddr);
165 panic(
"Read to unknown JBus offset 0x%x\n", accessAddr);
176 panic(
"Invalid address reached Iob\n");
231 panic(
"Write to unknown IOB offset 0x%x\n", accessAddr);
258 panic(
"Write to unknown JBus offset 0x%x\n", accessAddr);
269 DPRINTF(
Iob,
"Receiving Device interrupt: %d for cpu %d vec %d\n",
284 DPRINTF(
Iob,
"Generating interrupt because of I/O write to cpu: %d vec %d\n",
289 warn(
"Sending reset to CPU: %d\n", cpu_id);
291 panic(
"Don't know how to set non-POR reset to cpu\n");
296 DPRINTF(
Iob,
"Idling CPU because of I/O write cpu: %d\n", cpu_id);
300 DPRINTF(
Iob,
"Resuming CPU because of I/O write cpu: %d\n", cpu_id);
304 panic(
"Invalid type to generate ipi\n");
316 DPRINTF(
Iob,
"Receiving jBus interrupt: %d for cpu %d vec %d\n",
382 return new Iob(
this);
IntMan intMan[NumDeviceIds]
void makeAtomicResponse()
T getBE() const
Get the data in the packet byte swapped from big endian to host endian.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void post(int cpu_id, int int_num, int index)
#define UNSERIALIZE_SCALAR(scalar)
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void writeIob(PacketPtr pkt)
int ContextID
Globally unique thread context ID.
uint64_t Tick
Tick count type.
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
void receiveDeviceInterrupt(DeviceId devid)
RequestPtr req
A pointer to the original request.
bool receiveJBusInterrupt(int cpu_id, int source, uint64_t d0, uint64_t d1)
void paramOut(CheckpointOut &cp, const string &name, ExtMachInst const &machInst)
void setBE(T v)
Set the value in the data pointer to v as big endian.
AddrRangeList getAddrRanges() const override
Every PIO device is obliged to provide an implementation that returns the address ranges the device r...
This device is the base class which all devices senstive to an address range inherit from.
const Params * params() const
const Addr JIntDataA1Addr
AddrRange RangeSize(Addr start, Addr size)
void readIob(PacketPtr pkt)
void generateIpi(Type type, int cpu_id, int vector)
#define SERIALIZE_ARRAY(member, size)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
#define SERIALIZE_SCALAR(scalar)
uint64_t jBusData0[MaxNiagaraProcs]
IntBusy jIntBusy[MaxNiagaraProcs]
#define UNSERIALIZE_ARRAY(member, size)
void writeJBus(PacketPtr pkt)
void readJBus(PacketPtr pkt)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint64_t jBusData1[MaxNiagaraProcs]
void paramIn(CheckpointIn &cp, const string &name, ExtMachInst &machInst)
IntCtl intCtl[NumDeviceIds]
std::ostream CheckpointOut
const Addr JIntDataA0Addr
std::string csprintf(const char *format, const Args &...args)
void serialize(CheckpointOut &cp) const override
Serialize an object.
#define ULL(N)
uint64_t constant
void invoke(ThreadContext *tc, const StaticInstPtr &inst=StaticInst::nullStaticInstPtr)
#define panic(...)
This implements a cprintf based panic() function.
const int MaxNiagaraProcs
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
Generated on Wed Sep 30 2020 14:02:11 for gem5 by doxygen 1.8.17