38#ifndef __ARCH_RISCV_PMA_CHECKER_HH__
39#define __ARCH_RISCV_PMA_CHECKER_HH__
46#include "params/BasePMAChecker.hh"
47#include "params/PMAChecker.hh"
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
The AddrRangeMap uses an STL map to implement an interval tree for address decoding.
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Based on the RISC-V ISA privileged specifications V1.11, there is no implementation guidelines on the...
virtual Fault checkVAddrAlignment(const RequestPtr &req, BaseMMU::Mode mode)=0
BasePMAChecker(const BasePMACheckerParams ¶ms)
virtual Fault check(const RequestPtr &req, BaseMMU::Mode mode, Addr vaddr=0)=0
virtual void takeOverFrom(BasePMAChecker *old)=0
This class provides an abstract PMAChecker for RISC-V to provide PMA checking functionality.
bool isUncacheable(const AddrRange &range)
PMAChecker(const Params ¶ms)
AddrRangeList uncacheable
Fault checkPAddrAlignment(const RequestPtr &req, BaseMMU::Mode mode, Addr vaddr)
Fault createMisalignFault(Addr vaddr, BaseMMU::Mode mode)
Fault check(const RequestPtr &req, BaseMMU::Mode mode, Addr vaddr=0) override
void takeOverFrom(BasePMAChecker *old) override
AddrRangeMap< bool, 3 > misaligned
Fault checkVAddrAlignment(const RequestPtr &req, BaseMMU::Mode mode) override
bool misalignedSupport(const AddrRange &range)
const Params & params() const
bool addressAlign(const Addr addr, const Addr size)
Abstract superclass for simulation objects.
const Params & params() const
const SimObjectParams & _params
Cached copy of the object parameters.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< FaultBase > Fault
std::shared_ptr< Request > RequestPtr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Declaration of the Packet class.