38 #ifndef __DEV_RISCV_CLINT_HH__
39 #define __DEV_RISCV_CLINT_HH__
48 #include "params/Clint.hh"
54 using namespace RiscvISA;
89 void raiseInterruptPin(
int id);
106 const Addr mtimecmpStart = 0x4000;
107 const Addr mtimeStart = 0xBFF8;
108 const Addr maxBankSize = 0xC000;
141 void init()
override;
142 Port & getPort(
const std::string &if_name,
MMIO Registers 0x0000 - 0x3FFF: msip (write-through to misc reg file) ...: reserved[0] 0x4000 - 0xBFF...
ClintRegisters(const std::string &name, Addr base, Clint *clint)
std::vector< Register64 > mtimecmp
std::vector< RegisterRaz > reserved
std::vector< Register32 > msip
NOTE: This implementation of CLINT is based on the SiFive U54MC datasheet: https://sifive....
ClintRegisters::Register32 Register32
IntSinkPin< Clint > signal
void lowerInterruptPin(int id)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Ports are used to interface objects to each other.
Register< uint64_t > Register64
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....
const PortID InvalidPortID
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)
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
uint64_t Tick
Tick count type.
void serialize(const ThreadContext &tc, CheckpointOut &cp)
Thread context serialization helpers.
Declaration of the Packet class.
const std::string & name()