43 #ifndef __ARCH_ARM_SYSTEM_HH__
44 #define __ARCH_ARM_SYSTEM_HH__
51 #include "params/ArmSystem.hh"
52 #include "params/GenericArmSystem.hh"
ObjectFile * getBootLoader(ObjectFile *const obj)
Get a boot loader that matches the kernel.
const uint8_t _physAddrRange64
Supported physical address range in bits if the highest implemented exception level is 64 bits (ARMv8...
virtual void initState()
Initialise the system.
const bool _haveLargeAsid64
True if ASID is 16 bits in AArch64 (ARMv8)
ExceptionLevel highestEL() const
Returns the highest implemented exception level.
GenericArmSystem(Params *p)
uint8_t physAddrRange() const
Returns the supported physical address range in bits.
Addr physAddrMask() const
Returns the physical address mask.
const Params * params() const
ThreadContext is the external interface to all thread state for anything outside of the CPU...
uint8_t physAddrRange64() const
Returns the supported physical address range in bits if the highest implemented exception level is 64...
void setGenericTimer(GenericTimer *generic_timer)
Sets the pointer to the Generic Timer.
ObjectFile * bootldr
Pointer to the bootloader object.
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ran...
std::vector< std::unique_ptr< ObjectFile > > bootLoaders
Bootloaders.
bool haveLPAE() const
Returns true if this system implements the Large Physical Address Extension.
bool _highestELIs64
True if the register width of the highest implemented exception level is 64 bits (ARMv8) ...
bool multiProc
true if this a multiprocessor system
const bool _haveVirtualization
True if this system implements the virtualization Extensions.
const Params * params() const
virtual ~GenericArmSystem()
const AddrRange _m5opRange
Range for memory-mapped m5 pseudo ops.
bool highestELIs64() const
Returns true if the register width of the highest implemented exception level is 64 bits (ARMv8) ...
const AddrRange & m5opRange() const
Range used by memory-mapped m5 pseudo-ops if enabled.
Linux::DebugPrintkEvent * debugPrintkEvent
PC based event to skip the dprink() call and emulate its functionality.
GenericArmSystemParams Params
bool haveSecurity() const
Returns true if this system implements the Security Extensions.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const Addr _resetAddr64
Reset address if the highest implemented exception level is 64 bits (ARMv8)
bool haveVirtualization() const
Returns true if this system implements the virtualization Extensions.
virtual void initState()
Initialise the system.
GenericTimer * _genericTimer
Pointer to the Generic Timer wrapper.
virtual Addr fixFuncEventAddr(Addr addr)
Fix up an address used to match PCs for hooking simulator events on to target function executions...
const bool _haveLPAE
True if this system implements the Large Physical Address Extension.
const bool _haveSecurity
True if this system implements the Security Extensions.
bool haveLargeAsid64() const
Returns true if ASID is 16 bits in AArch64 (ARMv8)
GenericTimer * getGenericTimer() const
Get a pointer to the system's generic timer model.
Addr resetAddr64() const
Returns the reset address if the highest implemented exception level is 64 bits (ARMv8) ...