gem5  v21.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Public Attributes | List of all members
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 Clint::ClintRegisters:
RegisterBank< ByteOrder::little > RegisterBankBase

Public Member Functions

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

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 Clint::ClintRegisters::init ( )

Member Data Documentation

◆ clint

Clint* Clint::ClintRegisters::clint

Definition at line 119 of file clint.hh.

Referenced by init().

◆ maxBankSize

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

Definition at line 108 of file clint.hh.

Referenced by init().

◆ msip

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

Definition at line 110 of file clint.hh.

Referenced by init(), Clint::readMSIP(), Clint::serialize(), and Clint::unserialize().

◆ mtime

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

Definition at line 112 of file clint.hh.

Referenced by init(), Clint::raiseInterruptPin(), Clint::serialize(), and Clint::unserialize().

◆ mtimecmp

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

Definition at line 111 of file clint.hh.

Referenced by init(), Clint::raiseInterruptPin(), Clint::serialize(), and Clint::unserialize().

◆ mtimecmpStart

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

Definition at line 106 of file clint.hh.

Referenced by init().

◆ mtimeStart

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

Definition at line 107 of file clint.hh.

Referenced by init().

◆ reserved

std::vector<RegisterRaz> 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 Tue Mar 23 2021 19:41:34 for gem5 by doxygen 1.8.17