gem5
[DEVELOP-FOR-23.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< RegisterAdder > adders) |
void | addRegister (RegisterAdder reg) |
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) |
virtual void | reset () |
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 > |
![]() | |
static constexpr Data | readWithMask (const Data &value, const Data &bitmask) |
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 gem5::Plic::PlicRegisters::init | ( | ) |
Definition at line 196 of file plic.cc.
References gem5::RegisterBank< ByteOrder::little >::addRegister(), claim, claim_holes, enable, enable_holes, enablePadding, enableStart, gem5::ArmISA::i, gem5::ArmISA::j, maxBankSize, gem5::Plic::nContext, gem5::Plic::nSrc, gem5::Plic::nSrc32, pending, pendingStart, gem5::BasicPioDevice::pioSize, plic, priority, gem5::Plic::readClaim(), reserved, threshold, thresholdPadding, thresholdStart, sc_dt::to_string(), gem5::Plic::writeClaim(), gem5::Plic::writeEnable(), gem5::Plic::writePriority(), and gem5::Plic::writeThreshold().
Referenced by gem5::Plic::init().
std::vector<Register32> gem5::Plic::PlicRegisters::claim |
Definition at line 218 of file plic.hh.
Referenced by init(), gem5::Plic::serialize(), and gem5::Plic::unserialize().
std::vector<RegisterRaz> gem5::Plic::PlicRegisters::claim_holes |
std::vector<std::vector<Register32> > gem5::Plic::PlicRegisters::enable |
Definition at line 216 of file plic.hh.
Referenced by init(), gem5::Plic::post(), gem5::Plic::serialize(), gem5::Plic::unserialize(), and gem5::Plic::writePriority().
std::vector<RegisterRaz> gem5::Plic::PlicRegisters::enable_holes |
const Addr gem5::Plic::PlicRegisters::enablePadding = 0x80 |
const Addr gem5::Plic::PlicRegisters::enableStart = 0x2000 |
const Addr gem5::Plic::PlicRegisters::maxBankSize = 0x4000000 |
std::vector<Register32> gem5::Plic::PlicRegisters::pending |
Definition at line 215 of file plic.hh.
Referenced by gem5::Plic::clear(), init(), gem5::Plic::post(), gem5::Plic::readClaim(), gem5::Plic::serialize(), gem5::Plic::unserialize(), and gem5::Plic::writePriority().
const Addr gem5::Plic::PlicRegisters::pendingStart = 0x1000 |
std::vector<Register32> gem5::Plic::PlicRegisters::priority |
Definition at line 214 of file plic.hh.
Referenced by init(), gem5::Plic::post(), gem5::Plic::serialize(), gem5::Plic::unserialize(), and gem5::Plic::updateInt().
std::vector<RegisterRaz> gem5::Plic::PlicRegisters::reserved |
std::vector<Register32> gem5::Plic::PlicRegisters::threshold |
Definition at line 217 of file plic.hh.
Referenced by init(), gem5::Plic::serialize(), gem5::Plic::unserialize(), and gem5::Plic::updateInt().
const Addr gem5::Plic::PlicRegisters::thresholdPadding = 0x1000 |
const Addr gem5::Plic::PlicRegisters::thresholdStart = 0x0200000 |