Go to the documentation of this file.
41 #ifndef __ARCH_ARM_SYSTEM_HH__
42 #define __ARCH_ARM_SYSTEM_HH__
49 #include "params/ArmSystem.hh"
void setGenericTimer(GenericTimer *generic_timer)
Sets the pointer to the Generic Timer.
uint8_t physAddrRange() const
Returns the supported physical address range in bits.
virtual System * getSystemPtr()=0
GenericTimer * _genericTimer
Pointer to the Generic Timer wrapper.
const unsigned _havePAN
True if Priviledge Access Never is implemented.
ArmSystem(const Params &p)
const bool _haveLSE
True if LSE is implemented (ARMv8.1)
bool haveLSE() const
Returns true if LSE is implemented (ARMv8.1)
bool highestELIs64() const
Returns true if the register width of the highest implemented exception level is 64 bits (ARMv8)
const bool _haveTME
True if system implements the transactional memory extension (TME)
bool haveLPAE() const
Returns true if this system implements the Large Physical Address Extension.
static bool callSemihosting64(ThreadContext *tc, bool gem5_ops=false)
Make a Semihosting call from aarch64.
bool haveVHE() const
Returns true if Virtualization Host Extensions is implemented.
static void callClearWakeRequest(ThreadContext *tc)
Notify the power controller of WAKEREQUEST deassertion.
bool haveLargeAsid64() const
Returns true if ASID is 16 bits in AArch64 (ARMv8)
FVPBasePwrCtrl * getPowerController() const
Get a pointer to the system's power controller.
bool haveCrypto() const
Returns true if this system implements the Crypto Extension.
static bool callSemihosting(ThreadContext *tc, bool gem5_ops=false)
Make a Semihosting call from either aarch64 or aarch32.
BaseGic * getGIC() const
Get a pointer to the system's GIC.
constexpr uint64_t mask(unsigned nbits)
Generate a 64-bit mask of 'nbits' 1s, right justified.
static ArmSystem * getArmSystem(ThreadContext *tc)
Returns a valid ArmSystem pointer if using ARM ISA, it fails otherwise.
Addr _resetAddr
Reset address (ARMv8)
const bool _haveSVE
True if SVE is implemented (ARMv8)
bool multiProc
true if this a multiprocessor system
ArmISA::ExceptionLevel highestEL() const
Returns the highest implemented exception level.
FVPBasePwrCtrl * _pwrCtrl
Pointer to the Power Controller (if any)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
static constexpr Addr PageShift
ArmSemihosting *const semihosting
True if the Semihosting interface is enabled.
bool havePAN() const
Returns true if Priviledge Access Never is implemented.
const uint8_t _physAddrRange64
Supported physical address range in bits if the highest implemented exception level is 64 bits (ARMv8...
static bool callSetWakeRequest(ThreadContext *tc)
Notify the power controller of WAKEREQUEST assertion.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool haveSVE() const
Returns true if SVE is implemented (ARMv8)
const unsigned _haveSecEL2
True if Secure EL2 is implemented.
static void callClearStandByWfi(ThreadContext *tc)
Make a call to notify the power controller of STANDBYWFI deassertion.
bool _highestELIs64
True if the register width of the highest implemented exception level is 64 bits (ARMv8)
Semihosting for AArch32 and AArch64.
Addr physAddrMask() const
Returns the physical address mask.
void setPowerController(FVPBasePwrCtrl *pwr_ctrl)
Sets the pointer to the Power Controller.
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
const bool _haveCrypto
True if this system implements the Crypto Extension.
static void callSetStandByWfi(ThreadContext *tc)
Make a call to notify the power controller of STANDBYWFI assertion.
unsigned sveVL() const
Returns the SVE vector length at reset, in quadwords.
bool haveSemihosting() const
Is Arm Semihosting support enabled?
bool haveSecurity() const
Returns true if this system implements the Security Extensions.
void setGIC(BaseGic *gic)
Sets the pointer to the GIC.
Addr resetAddr() const
Returns the reset address if the highest implemented exception level is 64 bits (ARMv8)
GenericTimer * getGenericTimer() const
Get a pointer to the system's generic timer model.
static constexpr Addr PageBytes
static bool haveEL(ThreadContext *tc, ArmISA::ExceptionLevel el)
Return true if the system implements a specific exception level.
uint8_t physAddrRange64() const
Returns the supported physical address range in bits if the highest implemented exception level is 64...
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
const bool _haveVHE
True if FEAT_VHE (Virtualization Host Extensions) is implemented.
bool haveSecEL2() const
Returns true if Priviledge Access Never is implemented.
bool haveTME() const
Returns true if this system implements the transactional memory extension (ARMv9)
const bool _haveLargeAsid64
True if ASID is 16 bits in AArch64 (ARMv8)
const bool _haveVirtualization
True if this system implements the virtualization Extensions.
static bool callSemihosting32(ThreadContext *tc, bool gem5_ops=false)
Make a Semihosting call from aarch32.
const unsigned _sveVL
SVE vector length at reset, in quadwords.
const bool _haveSecurity
True if this system implements the Security Extensions.
const bool _haveLPAE
True if this system implements the Large Physical Address Extension.
void setResetAddr(Addr addr)
bool haveVirtualization() const
Returns true if this system implements the virtualization Extensions.
Generated on Tue Sep 21 2021 12:24:46 for gem5 by doxygen 1.8.17