gem5
v21.0.0.0
|
MMIO Registers 0x0000 - 0x3FFF: msip (write-through to misc reg file) ...: reserved[0] 0x4000 - 0xBFF7: mtimecmp ...: reserved[1] 0xBFF8: mtime (read-only) More...
#include <clint.hh>
Public Member Functions | |
ClintRegisters (const std::string &name, Addr base, Clint *clint) | |
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 | mtimecmpStart = 0x4000 |
const Addr | mtimeStart = 0xBFF8 |
const Addr | maxBankSize = 0xC000 |
std::vector< Register32 > | msip |
std::vector< Register64 > | mtimecmp |
Register64 | mtime = {"mtime", 0} |
std::vector< RegisterRaz > | reserved |
Clint * | clint |
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 0x0000 - 0x3FFF: msip (write-through to misc reg file) ...: reserved[0] 0x4000 - 0xBFF7: mtimecmp ...: reserved[1] 0xBFF8: mtime (read-only)
void Clint::ClintRegisters::init | ( | ) |
Definition at line 85 of file clint.cc.
References RegisterBank< ByteOrder::little >::addRegister(), clint, ArmISA::i, maxBankSize, msip, mtime, mtimecmp, mtimecmpStart, mtimeStart, Clint::nThread, BasicPioDevice::pioSize, Clint::readMSIP(), reserved, sc_dt::to_string(), and Clint::writeMSIP().
Referenced by Clint::init().
const Addr Clint::ClintRegisters::maxBankSize = 0xC000 |
std::vector<Register32> Clint::ClintRegisters::msip |
Definition at line 110 of file clint.hh.
Referenced by init(), Clint::readMSIP(), Clint::serialize(), and Clint::unserialize().
Register64 Clint::ClintRegisters::mtime = {"mtime", 0} |
Definition at line 112 of file clint.hh.
Referenced by init(), Clint::raiseInterruptPin(), Clint::serialize(), and Clint::unserialize().
std::vector<Register64> Clint::ClintRegisters::mtimecmp |
Definition at line 111 of file clint.hh.
Referenced by init(), Clint::raiseInterruptPin(), Clint::serialize(), and Clint::unserialize().
const Addr Clint::ClintRegisters::mtimecmpStart = 0x4000 |
const Addr Clint::ClintRegisters::mtimeStart = 0xBFF8 |
std::vector<RegisterRaz> Clint::ClintRegisters::reserved |