gem5  v22.1.0.0
Public Member Functions | Public Attributes | List of all members
gem5::Clint::ClintRegisters Class Reference

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>

Inheritance diagram for gem5::Clint::ClintRegisters:
gem5::RegisterBank< ByteOrder::little > gem5::RegisterBankBase

Public Member Functions

 ClintRegisters (const std::string &name, Addr base, Clint *clint)
 
void init ()
 
- Public Member Functions inherited from gem5::RegisterBank< ByteOrder::little >
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 &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)
 

Public Attributes

const Addr mtimecmpStart = 0x4000
 
const Addr mtimeStart = 0xBFF8
 
const Addr maxBankSize = 0xC000
 
std::vector< Register32msip
 
std::vector< Register64mtimecmp
 
Register64 mtime = {"mtime", 0}
 
std::vector< RegisterRaz > reserved
 
Clintclint
 

Additional Inherited Members

- Public Types inherited from gem5::RegisterBank< ByteOrder::little >
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 Public Member Functions inherited from gem5::RegisterBank< ByteOrder::little >
static constexpr Data readWithMask (const Data &value, const Data &bitmask)
 
static constexpr Data writeWithMask (const Data &old, const Data &value, const Data &bitmask)
 

Detailed Description

MMIO Registers 0x0000 - 0x3FFF: msip (write-through to misc reg file) ...: reserved[0] 0x4000 - 0xBFF7: mtimecmp ...: reserved[1] 0xBFF8: mtime (read-only)

Definition at line 103 of file clint.hh.

Constructor & Destructor Documentation

◆ ClintRegisters()

gem5::Clint::ClintRegisters::ClintRegisters ( const std::string &  name,
Addr  base,
Clint clint 
)
inline

Definition at line 115 of file clint.hh.

Member Function Documentation

◆ init()

void gem5::Clint::ClintRegisters::init ( )

Member Data Documentation

◆ clint

Clint* gem5::Clint::ClintRegisters::clint

Definition at line 119 of file clint.hh.

Referenced by init().

◆ maxBankSize

const Addr gem5::Clint::ClintRegisters::maxBankSize = 0xC000

Definition at line 108 of file clint.hh.

Referenced by init().

◆ msip

std::vector<Register32> gem5::Clint::ClintRegisters::msip

◆ mtime

Register64 gem5::Clint::ClintRegisters::mtime = {"mtime", 0}

◆ mtimecmp

std::vector<Register64> gem5::Clint::ClintRegisters::mtimecmp

◆ mtimecmpStart

const Addr gem5::Clint::ClintRegisters::mtimecmpStart = 0x4000

Definition at line 106 of file clint.hh.

Referenced by init().

◆ mtimeStart

const Addr gem5::Clint::ClintRegisters::mtimeStart = 0xBFF8

Definition at line 107 of file clint.hh.

Referenced by init().

◆ reserved

std::vector<RegisterRaz> gem5::Clint::ClintRegisters::reserved

Definition at line 113 of file clint.hh.

Referenced by init().


The documentation for this class was generated from the following files:

Generated on Wed Dec 21 2022 10:23:21 for gem5 by doxygen 1.9.1