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

MMIO Registers. More...

Inheritance diagram for gem5::Plic::PlicRegisters:
gem5::RegisterBank< ByteOrder::little > gem5::RegisterBankBase

Public Member Functions

 PlicRegisters (const std::string &name, Addr base, Plic *plic)
 
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 pendingStart = 0x1000
 
const Addr enableStart = 0x2000
 
const Addr thresholdStart = 0x0200000
 
const Addr enablePadding = 0x80
 
const Addr thresholdPadding = 0x1000
 
const Addr maxBankSize = 0x4000000
 
std::vector< Register32priority
 
std::vector< Register32pending
 
std::vector< std::vector< Register32 > > enable
 
std::vector< Register32threshold
 
std::vector< Register32claim
 
std::vector< RegisterRaz > enable_holes
 
std::vector< RegisterRaz > claim_holes
 
std::vector< RegisterRaz > reserved
 
Plicplic
 

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.

Priority (0-7):

... reserved[0]

Pending:

... reserved[1]

Enable:

Threshold:

Claim / Complete:

... reserved[3]

Definition at line 187 of file plic.hh.

Constructor & Destructor Documentation

◆ PlicRegisters()

gem5::Plic::PlicRegisters::PlicRegisters ( const std::string &  name,
Addr  base,
Plic plic 
)
inline

Definition at line 207 of file plic.hh.

Member Function Documentation

◆ init()

void gem5::Plic::PlicRegisters::init ( )

Member Data Documentation

◆ claim

std::vector<Register32> gem5::Plic::PlicRegisters::claim

Definition at line 202 of file plic.hh.

Referenced by init(), gem5::Plic::serialize(), and gem5::Plic::unserialize().

◆ claim_holes

std::vector<RegisterRaz> gem5::Plic::PlicRegisters::claim_holes

Definition at line 204 of file plic.hh.

Referenced by init().

◆ enable

std::vector<std::vector<Register32> > gem5::Plic::PlicRegisters::enable

◆ enable_holes

std::vector<RegisterRaz> gem5::Plic::PlicRegisters::enable_holes

Definition at line 203 of file plic.hh.

Referenced by init().

◆ enablePadding

const Addr gem5::Plic::PlicRegisters::enablePadding = 0x80

Definition at line 193 of file plic.hh.

Referenced by init().

◆ enableStart

const Addr gem5::Plic::PlicRegisters::enableStart = 0x2000

Definition at line 191 of file plic.hh.

Referenced by init().

◆ maxBankSize

const Addr gem5::Plic::PlicRegisters::maxBankSize = 0x4000000

Definition at line 195 of file plic.hh.

Referenced by init().

◆ pending

std::vector<Register32> gem5::Plic::PlicRegisters::pending

◆ pendingStart

const Addr gem5::Plic::PlicRegisters::pendingStart = 0x1000

Definition at line 190 of file plic.hh.

Referenced by init().

◆ plic

Plic* gem5::Plic::PlicRegisters::plic

Definition at line 211 of file plic.hh.

Referenced by init().

◆ priority

std::vector<Register32> gem5::Plic::PlicRegisters::priority

◆ reserved

std::vector<RegisterRaz> gem5::Plic::PlicRegisters::reserved

Definition at line 205 of file plic.hh.

Referenced by init().

◆ threshold

std::vector<Register32> gem5::Plic::PlicRegisters::threshold

◆ thresholdPadding

const Addr gem5::Plic::PlicRegisters::thresholdPadding = 0x1000

Definition at line 194 of file plic.hh.

Referenced by init().

◆ thresholdStart

const Addr gem5::Plic::PlicRegisters::thresholdStart = 0x0200000

Definition at line 192 of file plic.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