gem5 v24.1.0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Attributes | List of all members
gem5::PlicOutput Struct Reference

NOTE: This implementation of PLIC is based on he riscv-plic-spec repository: https://github.com/riscv/riscv-plic-spec/releases/tag/1.0.0. More...

#include <plic.hh>

Public Attributes

std::vector< uint32_t > maxID
 
std::vector< uint32_t > maxPriority
 

Detailed Description

NOTE: This implementation of PLIC is based on he riscv-plic-spec repository: https://github.com/riscv/riscv-plic-spec/releases/tag/1.0.0.

PLIC Latency Model MMIO changed (aside from threshold) => update internal states => calculate new output => schedule update (3 cycles delay) => update output & schedule next update => update xEIP lines

threshold changed => update xEIP lines

This ensures cycle-accurate values for MMIO accesses and xEIP lines

NOTE: check pending bit when returning maxID to avoid claiming by multiple contexts. Note that pending bits are not propagated through the 3-cycle delay.

TODO:

Definition at line 91 of file plic.hh.

Member Data Documentation

◆ maxID

std::vector<uint32_t> gem5::PlicOutput::maxID

◆ maxPriority

std::vector<uint32_t> gem5::PlicOutput::maxPriority

Definition at line 94 of file plic.hh.

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


The documentation for this struct was generated from the following file:

Generated on Mon Jan 13 2025 04:28:55 for gem5 by doxygen 1.9.8