gem5
v21.0.0.0
|
MMIO Registers. More...
Public Member Functions | |
PlicRegisters (const std::string &name, Addr base, Plic *plic) | |
void | init () |
![]() | |
constexpr | RegisterBank (const std::string &new_name, Addr new_base) |
virtual | ~RegisterBank () |
void | addRegisters (std::initializer_list< std::reference_wrapper< RegisterBase >> regs) |
void | addRegister (RegisterBase ®) |
Addr | base () const |
Addr | size () const |
const std::string & | name () const |
virtual void | read (Addr addr, void *buf, Addr bytes) |
virtual void | write (Addr addr, const void *buf, Addr bytes) |
Public Attributes | |
const Addr | pendingStart = 0x1000 |
const Addr | enableStart = 0x2000 |
const Addr | thresholdStart = 0x0200000 |
const Addr | enablePadding = 0x80 |
const Addr | thresholdPadding = 0x1000 |
const Addr | maxBankSize = 0x4000000 |
std::vector< Register32 > | priority |
std::vector< Register32 > | pending |
std::vector< std::vector< Register32 > > | enable |
std::vector< Register32 > | threshold |
std::vector< Register32 > | claim |
std::vector< RegisterRaz > | enable_holes |
std::vector< RegisterRaz > | claim_holes |
std::vector< RegisterRaz > | reserved |
Plic * | plic |
Additional Inherited Members | |
![]() | |
using | Register8 = Register< uint8_t > |
using | Register8LE = Register< uint8_t, ByteOrder::little > |
using | Register8BE = Register< uint8_t, ByteOrder::big > |
using | Register16 = Register< uint16_t > |
using | Register16LE = Register< uint16_t, ByteOrder::little > |
using | Register16BE = Register< uint16_t, ByteOrder::big > |
using | Register32 = Register< uint32_t > |
using | Register32LE = Register< uint32_t, ByteOrder::little > |
using | Register32BE = Register< uint32_t, ByteOrder::big > |
using | Register64 = Register< uint64_t > |
using | Register64LE = Register< uint64_t, ByteOrder::little > |
using | Register64BE = Register< uint64_t, ByteOrder::big > |
![]() | |
template<typename Data > | |
static constexpr Data | readWithMask (const Data &value, const Data &bitmask) |
template<typename Data > | |
static constexpr Data | writeWithMask (const Data &old, const Data &value, const Data &bitmask) |
MMIO Registers.
Priority (0-7):
... reserved[0]
Pending:
... reserved[1]
Enable:
Threshold:
Claim / Complete:
... reserved[3]
void Plic::PlicRegisters::init | ( | ) |
Definition at line 194 of file plic.cc.
References RegisterBank< BankByteOrder >::addRegister(), claim, claim_holes, enable, enable_holes, enablePadding, enableStart, ArmISA::i, ArmISA::j, maxBankSize, Plic::nContext, Plic::nSrc, Plic::nSrc32, pending, pendingStart, BasicPioDevice::pioSize, plic, priority, Plic::readClaim(), reserved, threshold, thresholdPadding, thresholdStart, sc_dt::to_string(), Plic::writeClaim(), Plic::writeEnable(), Plic::writePriority(), and Plic::writeThreshold().
Referenced by Plic::init().
std::vector<Register32> Plic::PlicRegisters::claim |
Definition at line 199 of file plic.hh.
Referenced by init(), Plic::serialize(), and Plic::unserialize().
std::vector<RegisterRaz> Plic::PlicRegisters::claim_holes |
std::vector<std::vector<Register32> > Plic::PlicRegisters::enable |
Definition at line 197 of file plic.hh.
Referenced by init(), Plic::post(), Plic::serialize(), Plic::unserialize(), and Plic::writePriority().
std::vector<RegisterRaz> Plic::PlicRegisters::enable_holes |
const Addr Plic::PlicRegisters::enablePadding = 0x80 |
const Addr Plic::PlicRegisters::enableStart = 0x2000 |
const Addr Plic::PlicRegisters::maxBankSize = 0x4000000 |
std::vector<Register32> Plic::PlicRegisters::pending |
Definition at line 196 of file plic.hh.
Referenced by Plic::clear(), init(), Plic::post(), Plic::readClaim(), Plic::serialize(), Plic::unserialize(), and Plic::writePriority().
const Addr Plic::PlicRegisters::pendingStart = 0x1000 |
std::vector<Register32> Plic::PlicRegisters::priority |
Definition at line 195 of file plic.hh.
Referenced by init(), Plic::post(), Plic::serialize(), Plic::unserialize(), and Plic::updateInt().
std::vector<RegisterRaz> Plic::PlicRegisters::reserved |
std::vector<Register32> Plic::PlicRegisters::threshold |
Definition at line 198 of file plic.hh.
Referenced by init(), Plic::serialize(), Plic::unserialize(), and Plic::updateInt().
const Addr Plic::PlicRegisters::thresholdPadding = 0x1000 |
const Addr Plic::PlicRegisters::thresholdStart = 0x0200000 |