layout: documentation title: “ARM implementation” doc: gem5 documentation parent: architecture_support permalink: /documentation/general_docs/architecture_support/arm_implementation/

ARM Implementation

Supported features and modes

The ARM Architecture models within gem5 support an ARMv8.0-A profile of the ARMĀ® architecture with multi-processor extensions. This includes both AArch32 and AArch64 state at all ELs. This basically means supporting:

The baseline model is ARMv8.0 compliant, we also support some mandatory/optional ARMv8.x features (with x > 0)

From gem5 v21.2

The best way to get a synced version of Arm architectural features is to have a look at the ArmExtension enum used by the release object and the available example releases provided within the same file.

A user can choose one of the following options:

  • Use the default release
  • Use another example release (e.g. Armv82)
  • Generate a custom release from the available ArmExtension enum values

Before gem5 v21.2

The best way to get a synced version of Arm architectural features is to have a look at Arm ID registers and boolean values: