gem5 v24.0.0.0
Loading...
Searching...
No Matches
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 >
void setDebugFlag (const ::gem5::debug::SimpleFlag &flag)
 
constexpr RegisterBank (const std::string &new_name, Addr new_base)
 
virtual ~RegisterBank ()
 
void addRegisters (std::initializer_list< RegisterAdder > adders)
 
void addRegistersAt (std::initializer_list< RegisterAdder > adders)
 
void addRegister (RegisterAdder 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)
 
virtual void reset ()
 

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
 
using Register8LE
 
using Register8BE
 
using Register16
 
using Register16LE
 
using Register16BE
 
using Register32
 
using Register32LE
 
using Register32BE
 
using Register64
 
using Register64LE
 
using Register64BE
 
- 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):

  • memory map: 0x0000000 - 0x0000FFC (1024 sources, 32 bits each)
  • gem5: vector<uint32_t> (index: source_id, size: n_src)

... reserved[0]

Pending:

  • memory map: 0x0001000 - 0x0001080 (1024 sources, 1 bit each)
  • gem5: vector<bitset<32>> (index: addr_offset, size: ceil(n_src/32))

... reserved[1]

Enable:

  • memory map: 0x0002000 - 0x01F2000 (15872 contexts, 1024 sources, 1 bit each)
  • gem5: vector<vector<bitset<32>>> (index: [context_id addr_offset], size: [n_context, ceil(n_src/32)]) ... reserved[2]

Threshold:

  • memory map: 0x0200000 - 0x3FFFFFC (15872 contexts, 32-bit each, 0x1000 byte spacing)
  • gem5: vector<uint32_t> (index: context_id, size: n_context)

Claim / Complete:

  • memory map: 0x0200004 - 0x3FFFFFC (15872 contexts, 32-bit each, 0x1000 byte spacing)
  • gem5: getter / setter functions

... reserved[3]

Definition at line 197 of file plic.hh.

Constructor & Destructor Documentation

◆ PlicRegisters()

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

Definition at line 217 of file plic.hh.

Member Function Documentation

◆ init()

Member Data Documentation

◆ claim

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

Definition at line 212 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 214 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 213 of file plic.hh.

Referenced by init().

◆ enablePadding

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

Definition at line 203 of file plic.hh.

Referenced by init().

◆ enableStart

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

Definition at line 201 of file plic.hh.

Referenced by init().

◆ maxBankSize

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

Definition at line 205 of file plic.hh.

Referenced by init().

◆ pending

◆ pendingStart

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

Definition at line 200 of file plic.hh.

Referenced by init().

◆ plic

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

Definition at line 221 of file plic.hh.

Referenced by init().

◆ priority

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

Definition at line 208 of file plic.hh.

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

◆ reserved

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

Definition at line 215 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 204 of file plic.hh.

Referenced by init().

◆ thresholdStart

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

Definition at line 202 of file plic.hh.

Referenced by init().


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

Generated on Tue Jun 18 2024 16:24:13 for gem5 by doxygen 1.11.0