38 #ifndef __DEV_RISCV_PLIC_HH__
39 #define __DEV_RISCV_PLIC_HH__
49 #include "params/Plic.hh"
55 using namespace RiscvISA;
128 void post(
int src_id);
129 void clear(
int src_id);
134 void init()
override;
190 const Addr pendingStart = 0x1000;
191 const Addr enableStart = 0x2000;
192 const Addr thresholdStart = 0x0200000;
193 const Addr enablePadding = 0x80;
194 const Addr thresholdPadding = 0x1000;
195 const Addr maxBankSize = 0x4000000;
226 const int src32_id,
const int context_id);
229 const int context_id);
234 const int context_id);
259 void propagateOutput();
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
std::vector< Register32 > priority
std::vector< Register32 > pending
std::vector< RegisterRaz > enable_holes
PlicRegisters(const std::string &name, Addr base, Plic *plic)
std::vector< Register32 > threshold
std::vector< std::vector< Register32 > > enable
std::vector< RegisterRaz > reserved
std::vector< RegisterRaz > claim_holes
std::vector< Register32 > claim
std::vector< uint32_t > lastID
int nContext
Number of interrupt contexts = nThread * 2 e.g.
std::map< Tick, PlicOutput > outputQueue
EventFunctionWrapper update
PlicRegisters::Register32 Register32
std::vector< std::vector< uint32_t > > effPriority
int nSrc32
Number of 32-bit pending registers needed = ceil(nSrc / 32)
std::vector< uint32_t > pendingPriority
Register< uint32_t > Register32
const FlagsType init
This Stat is Initialized.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
std::ostream CheckpointOut
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void unserialize(ThreadContext &tc, CheckpointIn &cp)
uint64_t Tick
Tick count type.
void serialize(const ThreadContext &tc, CheckpointOut &cp)
Thread context serialization helpers.
Declaration of the Packet class.
NOTE: This implementation of CLINT is based on the SiFive U54MC datasheet: https://sifive....
std::vector< uint32_t > maxPriority
std::vector< uint32_t > maxID
const std::string & name()