|
gem5 [DEVELOP-FOR-25.0]
|
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 |
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:
| std::vector<uint32_t> gem5::PlicOutput::maxID |
| std::vector<uint32_t> gem5::PlicOutput::maxPriority |