Go to the documentation of this file.
39 #ifndef __DEV_RISCV_PLIC_HH__
40 #define __DEV_RISCV_PLIC_HH__
50 #include "params/Plic.hh"
51 #include "params/PlicBase.hh"
57 using namespace RiscvISA;
108 virtual void post(
int src_id) = 0;
110 virtual void clear(
int src_id) = 0;
144 void post(
int src_id)
override;
145 void clear(
int src_id)
override;
150 void init()
override;
206 const Addr pendingStart = 0x1000;
207 const Addr enableStart = 0x2000;
208 const Addr thresholdStart = 0x0200000;
209 const Addr enablePadding = 0x80;
210 const Addr thresholdPadding = 0x1000;
211 const Addr maxBankSize = 0x4000000;
242 const int src32_id,
const int context_id);
245 const int context_id);
250 const int context_id);
275 void propagateOutput();
303 #endif // __DEV_RISCV_PLIC_HH__
void unserialize(ThreadContext &tc, CheckpointIn &cp)
int nSrc32
Number of 32-bit pending registers needed = ceil(nSrc / 32)
std::vector< RegisterRaz > enable_holes
int nContext
Number of interrupt contexts = nThread * 2 e.g.
std::vector< std::vector< Register32 > > enable
std::map< Tick, PlicOutput > outputQueue
PlicBase(const Params ¶ms)
std::vector< uint32_t > pendingPriority
std::vector< Register32 > pending
std::vector< RegisterRaz > reserved
std::vector< Register32 > threshold
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint64_t Tick
Tick count type.
std::vector< uint32_t > maxID
std::vector< std::vector< uint32_t > > effPriority
void serialize(const ThreadContext &tc, CheckpointOut &cp)
Thread context serialization helpers.
NOTE: This implementation of CLINT is based on the SiFive U54MC datasheet: https://sifive....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const std::string & name()
std::vector< Register32 > claim
std::vector< uint32_t > maxPriority
PlicRegisters(const std::string &name, Addr base, Plic *plic)
std::vector< Register32 > priority
EventFunctionWrapper update
std::ostream CheckpointOut
const FlagsType init
This Stat is Initialized.
std::vector< RegisterRaz > claim_holes
std::vector< uint32_t > lastID
Register< uint32_t > Register32
PlicRegisters::Register32 Register32
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Generated on Sun Jul 30 2023 01:56:56 for gem5 by doxygen 1.8.17