Page 2
Use of the word “partner” in reference to Arm’s customers is not intended to create or refer to any partnership relationship with any other company.
Page 3
This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by Arm and the party that Arm delivered this document to.
This chapter describes the clocks, resets, and input synchronization of the Cortex-A76 core. Chapter A4 Power management This chapter describes the power domains and the power modes in the Cortex-A76 core. Chapter A5 Memory Management Unit This chapter describes the Memory Management Unit (MMU) of the Cortex-A76 core.
Page 17
Part C Debug descriptions This part describes the debug functionality of the Cortex-A76 core. Chapter C1 Debug This chapter describes the Cortex-A76 core debug registers and shows examples of how to use them. Chapter C2 Performance Monitor Unit This chapter describes the Performance Monitor Unit (PMU) and the registers that it uses.
Page 18
Glossary is a list of terms used in Arm documentation, together with definitions for those ® terms. The Arm Glossary does not contain terms that are industry standard unless the Arm meaning differs from the generally accepted meaning. See the Glossary for more information.
Page 20
Other publications • ANSI/IEEE Std 754-2008, IEEE Standard for Binary Floating-Point Arithmetic. Note Arm floating-point terminology is largely based on the earlier ANSI/IEEE Std 754-1985 issue of the standard. See the Arm Architecture Reference Manual Armv8, for Armv8-A ® architecture profile for more information.
Chapter A1 Introduction This chapter provides an overview of the Cortex-A76 core and its features. It contains the following sections: • A1.1 About the core on page A1-26. • A1.2 Features on page A1-27. • A1.3 Implementation options on page A1-28.
The PSTATE Speculative Store Bypass Safe (SSBS) bit and the speculation barriers (CSDB, SSBB, PSSBB) instructions introduced in the Armv8.5-A extension. The Cortex-A76 core has a Level 1 (L1) memory system and a private, integrated Level 2 (L2) cache. It also includes a superscalar, variable-length, out-of-order pipeline.
A1 Introduction A1.4 Supported standards and specifications A1.4 Supported standards and specifications The Cortex-A76 core implements the Armv8-A architecture and some architecture extensions. It also supports interconnect, interrupt, timer, debug, and trace architectures. Table A1-2 Compliance with standards and specifications Architecture...
The Cortex-A76 core is delivered as a synthesizable Register Transfer Level (RTL) description in Verilog HDL. Before you can use the Cortex-A76 core, you must implement it, integrate it, and program it. A different party can perform each of the following tasks. Each task can include implementation and integration choices that affect the behavior and features of the core.
Chapter A2 Technical overview This chapter describes the structure of the Cortex-A76 core. It contains the following sections: • A2.1 Components on page A2-34. • A2.2 Interfaces on page A2-38. • A2.3 About system control on page A2-39. • A2.4 About the Generic Timer on page A2-40.
Page 35
A2 Technical overview A2.1 Components The following figure is an overview of the Cortex-A76 core. DynamIQ™ Cluster Core 3* Core 2* Core 1* Core 0 Register Rename Execution Pipeline Instruction Issue/Commit Instruction Click and type. Right-click to select fill color.
Page 36
There are multiple asynchronous bridges between the Cortex-A76 core and the DSU. Only the CPU bridge between the Cortex-A76 core and the DSU can be configured to run synchronously, however it does not affect the other interfaces such as debug, trace, and GIC which are always asynchronous. For...
A2 Technical overview A2.2 Interfaces A2.2 Interfaces The Cortex-A76 core has several interfaces to connect it to a SoC. The DSU manages all interfaces. For information on the interfaces, see the Arm DynamIQ Shared Unit Technical Reference Manual. ® ™...
• A Hypervisor virtual timer. The Cortex-A76 core does not include the system counter. This resides in the SoC. The system counter value is distributed to the core with a 64-bit bus. For more information on the Generic Timer, see the Arm...
Chapter A3 Clocks, resets, and input synchronization This chapter describes the clocks, resets, and input synchronization of the Cortex-A76 core. It contains the following sections: • A3.1 About clocks, resets, and input synchronization on page A3-42. • A3.2 Asynchronous interface on page A3-43.
About clocks, resets, and input synchronization The Cortex-A76 core supports hierarchical clock gating. The Cortex-A76 core contains several interfaces that connect to other components in the system. These interfaces can be in the same clock domain or in other clock domains.
Chapter A4 Power management This chapter describes the power domains and the power modes in the Cortex-A76 core. It contains the following sections: • A4.1 About power management on page A4-46. • A4.2 Voltage domains on page A4-47. • A4.3 Power domains on page A4-48.
A4 Power management A4.1 About power management A4.1 About power management The Cortex-A76 core provides mechanisms to control both dynamic and static power dissipation. Dynamic power management includes the following features: • Architectural clock gating. • Per-core Dynamic Voltage and Frequency Scaling (DVFS).
The Cortex-A76 core supports a VCPU voltage domain and a VSYS voltage domain. The following figure shows the VCPU and VSYS voltage domains in each Cortex-A76 core and in the DSU. The example shows a configuration with four Cortex-A76 cores.
A4.3 Power domains A4.3 Power domains The Cortex-A76 core contains a core power domain (PDCPU), and a core top-level SYS power domain (PDSYS) where all the Cortex-A76 core I/O signals go through. The PDCPU power domain contains all logic and part of the core asynchronous bridge that enyo_cpu belongs to the VCPU domain.
Page 49
PDSYS VSYS voltage domain Figure A4-2 Cortex-A76 core power domain diagram at enyo_core level The following figure shows the power domains in the DSU, where everything in the same color is part of the same power domain. The example shows four Cortex-A76 cores. The number of Cortex-A76 cores can vary, and the number of domains increases based on the number of Cortex-A76 cores present.
A4.4 Architectural clock gating modes When the Cortex-A76 core is in standby mode, it is architecturally clock gated at the top of the clock tree. Wait for Interrupt (WFI) and Wait for Event (WFE) are features of Armv8-A architecture that put the core in a low-power standby mode by architecturally disabling the clock at the top of the clock tree.
All power mode transitions are performed at the request of the power controller, using a P-Channel interface to communicate with the Cortex-A76 core. There is one P-Channel per core, plus one P-Channel for the cluster. The Cortex-A76 core provides the current requirements on the PACTIVE signals, so that the power controller can make decisions and request any change with PREQ and PSTATE.
RAM within the core domain. A4.6.2 The Cortex-A76 core supports a full shutdown mode where power can be removed completely and no state is retained. The shutdown can be for either the whole cluster or just for an individual core, which allows other cores in the cluster to continue operating.
However, only some powered-up and powered-down domain combinations are valid and supported. The following information shows the supported power domain states for the Cortex-A76 core. The PDCPU power domain supports the power states described in the following table.
A4.10 Debug over powerdown The Cortex-A76 core supports debug over powerdown, which allows a debugger to retain its connection with the core even when powered down. This enables debug to continue through powerdown scenarios, rather than having to re-establish a connection each time the core is powered up.
Chapter A5 Memory Management Unit This chapter describes the Memory Management Unit (MMU) of the Cortex-A76 core. It contains the following sections: • A5.1 About the MMU on page A5-62. • A5.2 TLB organization on page A5-64. • A5.3 TLB match process on page A5-65.
The TLB entries contain a Virtual Machine Identifier (VMID) to permit virtual machine switches by the hypervisor without requiring the TLB to be invalidated. A5.1.2 AArch64 behavior The Cortex-A76 core is an Armv8 compliant core that supports execution in AArch64 state. The following table shows the AArch64 behavior. Table A5-2 AArch64 behavior AArch64...
Page 63
A5 Memory Management Unit A5.1 About the MMU The Cortex-A76 core also supports the Virtualization Host Extension (VHE) including ASID space for EL2. When VHE is implemented and enabled, EL2 has the same behavior as EL1. See the Arm Architecture Reference Manual Armv8, for Armv8-A architecture profile for more ®...
The main TLB is invalidated automatically at reset unless the DISCACHEINVLD signal is set HIGH when the Cortex-A76 core is reset. This signal must only be used in diagnostic mode. If caches are not invalidated on reset, their functionality cannot be guaranteed. See the Arm...
A5.4 Translation table walks A5.4 Translation table walks When the Cortex-A76 core generates a memory access, the MMU: 1. Performs a lookup for the requested VA, current ASID, current VMID, and current translation regime in the relevant instruction or data.
Device-GRE Device Gathering, Reordering, Early Write Acknowledgment. In the Cortex-A76 core, a page is cacheable only if the inner memory attribute and outer memory attribute are Write Back. In all other cases, all pages are downgraded to Non-cacheable Normal memory.
The L1 instruction and data caches are invalidated automatically at reset unless the DISCACHEINVLD signal is set HIGH when the Cortex-A76 core is reset. This signal must only be used in diagnostic mode. If caches are not invalidated on reset, their functionality cannot be guaranteed. See the Arm DynamIQ ®...
Page 74
A6.2.5 Data cache coherency To maintain data coherency between multiple cores, the Cortex-A76 core uses the MESI protocol. A6.2.6 Write streaming mode A cache line is allocated to the L1 on either a read miss or a write miss.
A6.3.1 Program flow prediction The Cortex-A76 core contains program flow prediction hardware, also known as branch prediction. Branch prediction increases overall performance and reduces power consumption. With program flow prediction disabled, all taken branches incur a penalty that is associated with flushing the pipeline.
The Cortex-A76 core supports atomics to device or non-cacheable memory, however this relies on the interconnect also supporting atomics. If such an atomic instruction is executed when the interconnect does not support them, it will result in an abort.
Page 78
Transient memory. A6.4.2 Internal exclusive monitor The Cortex-A76 core L1 memory system has an internal exclusive monitor. This monitor is a 2-state, open and exclusive, state machine that manages Load-Exclusive or Store- Exclusive accesses and Clear-Exclusive ( ) instructions. You can use these instructions to construct...
The Armv8-A architecture introduces a Data Cache Zero by Virtual Address ( ) instruction. DC ZVA In the Cortex-A76 core, this enables a block of 64 bytes in memory, aligned to 64 bytes in size, to be set to zero. For more information, see the Arm Architecture Reference Manual Armv8, for Armv8-A architecture ®...
A6.6 Direct access to internal memory The Cortex-A76 core provides a mechanism to read the internal memory that is used by the L1 caches, L2 cache, and TLB structures through implementation defined system registers. This functionality can be useful when debugging software or hardware issues.
The L2 cache is invalidated automatically at reset unless the DISCACHEINVLD signal is set HIGH when the Cortex-A76 core is reset. This signal must be used only in diagnostic mode. If caches are not invalidated on reset, their functionality cannot be guaranteed. See the Arm...
Memory that is marked Outer Write-Through or Outer Non-cacheable is downgraded to Non- cacheable, even if the inner attributes are Write-Back cacheable. The following table shows the transaction capabilities of the Cortex-A76 core. It lists the maximum possible values for read, write, DVM issuing, and snoop capabilities of the private L2 cache.
Chapter A8 Reliability, Availability, and Serviceability (RAS) This chapter describes the RAS features implemented in the Cortex-A76 core. It contains the following sections: • A8.1 Cache ECC and parity on page A8-102. • A8.2 Cache protection behavior on page A8-103.
The Cortex-A76 core implements the RAS extension to the Armv8-A architecture which provides mechanisms for standardized reporting of the errors generated by cache protection mechanisms. When configured with core cache protection, the Cortex-A76 core can detect and correct a 1-bit error in any RAM and detect 2-bit errors in some RAMs.
The configuration of the RAS extension that is implemented in the Cortex-A76 core includes cache protection. In this case, the Cortex-A76 core protects against errors that result in a RAM bitcell holding the incorrect value. The RAMs in the Cortex-A76 core have the following capability: Single Error Detect.
When a component accesses memory, an error might be detected in that memory and then be corrected, deferred, or detected but silently propagated. The following table lists the types of RAS errors that are supported in the Cortex-A76 core. Table A8-2 RAS error types supported in the Cortex-A76 core RAS error type Definition Corrected A Corrected Error (CE) is reported for a single-bit ECC error on any protected RAM.
A8.6 Error recording The component that detects an error is called a node. The Cortex-A76 core is a node that interacts with the DynamIQ Shared Unit node. There is one record per node for the errors detected. For more information on error recording generated by cache protection, see the Arm Reliability, ®...
A8.7 Error injection A8.7 Error injection To support testing of error handling software, the Cortex-A76 core can inject errors in the error detection logic. The following table describes all the possible types of error that the core can encounter and therefore inject.
Chapter A9 Generic Interrupt Controller CPU interface This chapter describes the Cortex-A76 core implementation of the Arm Generic Interrupt Controller (GIC) CPU interface. It contains the following sections: • A9.1 About the Generic Interrupt Controller CPU interface on page A9-112.
A9.1 About the Generic Interrupt Controller CPU interface The Cortex-A76 core implements the GIC CPU interface as described in the Arm Generic Interrupt Controller Architecture Specification. This interfaces with an external GICv3 or GICv4 distributor component within the cluster system and is a resource for supporting and managing interrupts.
A9.2 Bypassing the CPU interface The GIC CPU Interface is always implemented within the Cortex-A76 core. However, you can disable it if you assert the GICCDISABLE signal HIGH at reset. If you disable the GIC CPU interface, the input pins nVIRQ and nVFIQ can be driven by an external GIC in the SoC. GIC...
A10.1 About the Advanced SIMD and floating-point support A10.1 About the Advanced SIMD and floating-point support The Cortex-A76 core supports the Advanced SIMD and scalar floating-point instructions in the A64 instruction set and the Advanced SIMD and floating-point instructions in the A32 and T32 instruction sets.
Software can identify the Advanced SIMD and floating-point features using the feature identification registers in the AArch64 Execution state only. The Cortex-A76 core only supports AArch32 in EL0, therefore none of the feature identification registers are accessible in the AArch32 Execution state.
B1.1 AArch32 architectural system register summary This chapter identifies the AArch32 architectural system registers implemented in the Cortex-A76 core. The following table identifies the architecturally defined registers that are implemented in the Cortex-A76 core. For a description of these registers see the Arm Architecture Reference Manual ®...
AArch64 architectural system register summary This section identifies the AArch64 architectural system registers implemented in the Cortex-A76 core that have implementation defined bit fields. The register descriptions for these registers only contain information about the implementation defined bits. AArch64 implementation defined register summary This section identifies the AArch64 architectural registers implemented in the Cortex-A76 core that are implementation defined.
B2.2 AArch64 architectural system register summary B2.2 AArch64 architectural system register summary This section describes the AArch64 architectural system registers implemented in the Cortex-A76 core. The section contains two tables: Registers with implementation defined bit fields This table identifies the architecturally defined registers in Cortex-A76 that have implementation defined bit fields.
B2.3 AArch64 implementation defined register summary B2.3 AArch64 implementation defined register summary This section describes the AArch64 registers in the Cortex-A76 core that are implementation defined. The following tables lists the AArch 64 implementation defined registers, sorted by opcode. Table B2-3 AArch64 implementation defined registers...
AFSR0_EL1 provides additional fault status information for exceptions that are IMPLEMENTATION DEFINED taken to EL1. In the Cortex-A76 core, no additional information is provided for these exceptions. Therefore this register is not used. Bit field descriptions AFSR0_EL1 is a 32-bit register, and is part of: •...
AFSR0_EL3 provides additional fault status information for exceptions that are IMPLEMENTATION DEFINED taken to EL3. In the Cortex-A76 core, no additional information is provided for these exceptions. Therefore this register is not used. Bit field descriptions AFSR0_EL3 is a 32-bit register, and is part of: •...
AFSR1_EL2, Auxiliary Fault Status Register 1, EL2 AFSR1_EL2 provides additional fault status information for exceptions that are IMPLEMENTATION DEFINED taken to EL2. This register is not used in the Cortex-A76 core. Bit field descriptions AFSR1_EL2 is a 32-bit register, and is part of: •...
AFSR1_EL3, Auxiliary Fault Status Register 1, EL3 AFSR1_EL3 provides additional fault status information for exceptions that are IMPLEMENTATION DEFINED taken to EL3. This register is not used in the Cortex-A76 core. Bit field descriptions AFSR1_EL3 is a 32-bit register, and is part of: •...
AMAIR_EL1, Auxiliary Memory Attribute Indirection Register, EL1 AMAIR_EL1 provides memory attributes for the memory regions specified by IMPLEMENTATION DEFINED MAIR_EL1. This register is not used in the Cortex-A76 core. Bit field descriptions AMAIR_EL1 is a 64-bit register, and is part of: •...
AMAIR_EL2, Auxiliary Memory Attribute Indirection Register, EL2 AMAIR_EL2 provides memory attributes for the memory regions specified by IMPLEMENTATION DEFINED MAIR_EL2. This register is not used in the Cortex-A76 core. Bit field descriptions AMAIR_EL2 is a 64-bit register, and is part of: •...
AMAIR_EL3, Auxiliary Memory Attribute Indirection Register, EL3 AMAIR_EL3 provides memory attributes for the memory regions specified by IMPLEMENTATION DEFINED MAIR_EL3. This register is not used in the Cortex-A76 core. Bit field descriptions AMAIR_EL3 is a 64-bit register, and is part of: •...
Usage constraints Accessing the CPUACTLR_EL1 The CPU Auxiliary Control Register can be written only when the system is idle. Arm recommends that you write to this register after a powerup reset, before the MMU is enabled. Setting many of these bits can cause significantly lower performance on your code. Therefore, Arm strongly recommends that you do not modify this register unless directed by Arm.
Usage constraints Accessing the CPUACTLR2_EL1 The CPUACTLR2_EL1 can be written only when the system is idle. Arm recommends that you write to this register after a powerup reset, before the MMU is enabled. Setting many of these bits can cause significantly lower performance on your code. Therefore, Arm strongly recommends that you do not modify this register unless directed by Arm.
Page 179
Usage constraints Accessing the CPUECTLR_EL1 The CPU Extended Control Register can be written only when the system is idle. Arm recommends that you write to this register after a powerup reset, before the MMU is enabled. This register can be read using MRS with the following syntax: MRS <Xt>,<systemreg>...
CPUPCR_EL3 is only accessible in Secure state. Usage constraints Accessing the CPUPCR_EL3 The CPUPCR_EL3 can be written only when the system is idle. Arm recommends that you write to this register after a powerup reset, before the MMU is enabled. Writing to this register might cause behaviors.
CPUPMR_EL3 is only accessible in Secure state. Usage constraints Accessing the CPUPMR_EL3 The CPUPMR_EL3 can be written only when the system is idle. Arm recommends that you write to this register after a powerup reset, before the MMU is enabled. Writing to this register might cause behaviors.
CPUPOR_EL3 is only accessible in Secure state. Usage constraints Accessing the CPUPOR_EL3 The CPUPOR_EL3 can be written only when the system is idle. Arm recommends that you write to this register after a powerup reset, before the MMU is enabled. Writing to this register might cause behaviors.
CPUPSELR_EL3 is only accessible in Secure state. Usage constraints Accessing the CPUPSELR_EL3 The CPUPSELR_EL3 can be written only when the system is idle. Arm recommends that you write to this register after a powerup reset, before the MMU is enabled. Writing to this register might cause behaviors.
Page 195
SError interrupt. The Parity Error codes are not used in the RAS extension. Configurations There are no configuration notes. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Select record 1 containing errors from Level 3 RAMs located on the DSU. Configurations There are no configuration notes. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
ID_AA64ISAR0_EL1 is a 64-bit register, and is part of the Identification registers functional group. This register is Read Only. The optional Cryptographic Extension is not included in the base product of the core. Arm requires licensees to have contractual rights to obtain the Cryptographic Extension.
The ID_AA64PFR0_EL1 provides additional information about implemented core features in AArch64. The optional Advanced SIMD and floating-point support is not included in the base product of the core. Arm requires licensees to have contractual rights to obtain the Advanced SIMD and floating-point support.
Page 232
B2.64 ID_DFR0_EL1, AArch32 Debug Feature Register 0, EL1 Configurations There are no configuration notes. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 257
B2.77 ID_PFR0_EL1, AArch32 Processor Feature Register 0, EL1 Configurations There are no configuration notes. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 268
MP1: CPUID: 0. MP8: CPUID: 7. Aff0, [7:0] Affinity level 0. The level identifies individual threads within a multithreaded core. The Cortex-A76 core is single-threaded, so this field has the value 0x00 Configurations MPIDR_EL1[31:0] is mapped to external register EDDEVAFF0.
REVIDR_EL1, Revision ID Register, EL1 The REVIDR_EL1 provides revision information, additional to MIDR_EL1, that identifies minor fixes (errata) which might be present in a specific implementation of the Cortex-A76 core. Bit field descriptions REVIDR_EL1 is a 32-bit register, and is part of the Identification registers functional group.
Translation table base address, bits[47:x]. Bits [x-1:1] are RES0 x is based on the value of TCR_EL1.T0SZ, the stage of translation, and the memory translation granule size. For instructions on how to calculate it, see the Arm Architecture Reference Manual Armv8, for ® Armv8-A architecture profile.
Translation table base address, bits[47:x]. Bits [x-1:1] are RES0 x is based on the value of TCR_EL2.T0SZ, the stage of translation, and the memory translation granule size. For instructions on how to calculate it, see the Arm Architecture Reference Manual Arm v8, for ®...
Translation table base address, bits[47:x]. Bits [x-1:1] are RES0 x is based on the value of TCR_EL1.T0SZ, the stage of translation, and the memory translation granule size. For instructions on how to calculate it, see the Arm Architecture Reference Manual Armv8, for ® Armv8-A architecture profile.
Configurations B2.101.1 VDISR_EL2 at EL1 using AArch64 on page B2-286. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. This section contains the following subsection: •...
The ERR0* registers are agnostic to the architectural state. For example, this means that for ERRSELR==0 and ERRSELR_EL1==0, ERXPFGFR and ERXPFGFR_EL1 will both access ERR0PFGFR. For those registers not described in this chapter, see the Arm Architecture Reference Manual Armv8, for ®...
B3 Error system registers B3.6 ERR0MISC1, Error Record Miscellaneous Register 1 B3.6 ERR0MISC1, Error Record Miscellaneous Register 1 This register is unused in the Cortex-A76 core and marked as RES0 Configurations When ERRSELR.SEL==0, ERR0MISC1 is accessible from B2.42 ERXMISC1_EL1, Selected Error Record Miscellaneous Register 1, EL1 on page B2-202.
Page 308
No errors were deferred. At least one error was not corrected and deferred by poisoning. PN, [22] Poison. The value is: The Cortex-A76 core cannot distinguish a poisoned value from a corrupted value. UET, [21:20] Uncorrected Error Type. The value is: Uncontainable.
B4.1 CPU interface registers B4.1 CPU interface registers Each CPU interface block provides the interface for the Cortex-A76 core that interfaces with a GIC distributor within the system. The Cortex-A76 core only supports system register access to the GIC CPU interface registers. The following table lists the three types of GIC CPU interface system registers supported in the Cortex-A76 core.
The value of this field controls how the 8-bit interrupt priority field is split into a group priority field, that determines interrupt preemption, and a subpriority field. The minimum value that is implemented is: Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
The minimum value implemented of ICC_BPR1_EL1 Secure register is The minimum value implemented of ICC_BPR1_EL1 Non-secure register is Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
Page 320
ICC_BPR1 determines the preemption group for Group 1 interrupts. ICC_BPR0 determines the preemption group for Group 0 and Group 1 interrupts. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
Page 322
Control whether the same register is used for interrupt preemption of both Group 0 and Group 1 Secure interrupt at EL1. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
This bit is RAO/WI. The core only supports a system register interface to the GIC CPU interface. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
Page 325
This bit is RAO/WI. The core only supports a system register interface to the GIC CPU interface. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
Page 327
This bit is RAO/WI. The core only supports a system register interface to the GIC CPU interface. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
The value of this field controls how the 8-bit interrupt priority field is split into a group priority field, that determines interrupt preemption, and a subpriority field. The minimum value that is implemented is: Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
The minimum value that is implemented of ICV_BPR1_EL1 Secure register is The minimum value that is implemented of ICV_BPR1_EL1 Non-secure register is Bit fields and details that are not provided in this description are architecturally defined. See the Arm ®...
Page 334
Group 1 interrupts. Reads of ICV_BPR1_EL1 return ICV_BPR0_EL1 plus one, saturated to 111. Writes to ICV_BPR1_EL1 are IGNORED. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
Page 342
Virtual Group 0 interrupt enable. The possible values are: Virtual Group 0 interrupts are disabled. Virtual Group 0 interrupts are enabled. Bit fields and details that are not provided in this description are architecturally defined. See the Arm ® Generic Interrupt Controller Architecture Specification.
The core has several Advanced SIMD and floating-point system registers in the AArch64 execution state. Each register has a specific purpose, specific usage constraints, configurations, and attributes. The following table gives a summary of the Cortex-A76 core Advanced SIMD and floating-point system registers in the AArch64 execution state.
AArch32 register summary The core has one Advanced SIMD and floating-point system registers in the AArch32 execution state. The following table gives a summary of the Cortex-A76 core Advanced SIMD and floating-point system registers in the AArch32 execution state. Table B5-7 AArch32 Advanced SIMD and floating-point system registers...
Page 360
Register access is encoded as follows: Table B5-8 FPSCR access encoding spec_reg 0001 Note The Cortex-A76 core implementation does not support the deprecated VFP short vector feature. Attempts to execute the associated VFP data-processing instructions result in an Instruction UNDEFINED exception.
Chapter C1 Debug This chapter describes the Cortex-A76 core debug registers and shows examples of how to use them. It contains the following sections: • C1.1 About debug methods on page C1-366. • C1.2 Debug register interfaces on page C1-367.
Software running on the core. • An external debugger. The Cortex-A76 core implements the Armv8 Debug architecture and debug events as described in the Architecture Reference Manual Armv8, for Armv8-A architecture profile. It also implements ® improvements to Debug introduced in Armv8.1 and Armv8.2.
Architecture Reference Manual Armv8, for Armv8-A architecture profile for more ® information about the debug events. C1.3.1 Watchpoint debug events In the Cortex-A76 core, watchpoint debug events are always synchronous. Memory hint instructions and cache clean operations, except , do not generate DC ZVA DC IVAC watchpoint debug events.
C2.1 About the PMU The Cortex-A76 core includes performance monitors that enable you to gather various statistics on the operation of the core and its memory system during runtime. These provide useful information about the behavior of the core that you can use when debugging or profiling code.
The PMU has 32-bit counters that increment when they are enabled, based on events, and a 64- bit cycle counter. PMU register interfaces The Cortex-A76 core supports access to the performance monitor registers from the internal system register interface and a memory-mapped interface. C2.2.1...
You can route this signal to an external interrupt controller for prioritization and masking. This is the only mechanism that signals this interrupt to the core. This interrupt is also driven as a trigger input to the CTI. See the Arm DynamIQ Shared Unit Technical ®...
Access enable bit The access enable bit for traps on accesses to activity monitor registers is required at EL2 and EL3. In the Cortex-A76 core, the CPUAMEN[4] bit in registers ACTLR_EL2 and ACTLR_EL3 controls the activity monitor registers enable. Note In the Cortex-A76 core, the CPUAMEN[4] bit is in ACTLR (S) and HACTLR.
C3.3 AMU counters C3.3 AMU counters The Cortex-A76 core implements five counters, 0-4. The activity monitor counters, CPUAMEVCNTR0-4, have the following characteristics: • All events are counted in 64-bit wrapping counters that overflow when they wrap. There is no support for overflow status indication or interrupts.
C3 Activity Monitor Unit C3.4 AMU events C3.4 AMU events The following table describes the counters that are implemented in the Cortex-A76 core and the mapping to fixed and programmable events. Table C3-1 Mapping of counters to fixed events Activity...
Page 391
Chapter C4 Embedded Trace Macrocell This chapter describes the ETM for the Cortex-A76 core. It contains the following sections: • C4.1 About the ETM on page C4-392. • C4.2 ETM trace unit generation options and resources on page C4-393. •...
About the ETM The ETM trace unit is a module that performs real-time instruction flow tracing based on the ETMv4 architecture. The ETM is a CoreSight component, and is an integral part of the Arm Real-time Debug solution, DS-5 Development Studio.
C4 Embedded Trace Macrocell C4.6 ETM trace unit register interfaces C4.6 ETM trace unit register interfaces The Cortex-A76 core supports only memory-mapped interface to trace registers. See the Arm Embedded Trace Macrocell Architecture Specification ETMv4 for information on the ®...
This section describes the interaction with the PMU and the effect of debug double lock on trace register access. Interaction with the PMU The Cortex-A76 core includes a PMU that enables events, such as cache misses and instructions executed, to be counted over a period of time. The PMU and ETM trace unit function together.
Page 404
CRn, op2, CRm, Op1 or instructions in the order of CRm, MCRR MRRC Op1. For those registers not described in this chapter, see the Arm Architecture Reference Manual Arm v8, for ® ® v8-A architecture profile.
Page 406
D3.1 Memory-mapped debug register summary on page D3-416 for a complete list of registers accessible from the external debug interface. The 64-bit registers cover two addresses on the external memory interface. For those registers not described in this chapter, see the Arm Architecture Reference ®...
Page 410
A debugger must ensure that UNKNOWN DBGBCRn_EL1.E has a defined value before it enables debug. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 411
CLAIM bits. A single write operation can set multiple bits to 1. Writing 0 to one of these bits has no effect. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
Memory-mapped debug register summary The following table shows the offset address for the registers that are accessible from the external debug interface. For those registers not described in this chapter, see the Arm Architecture Reference Manual Armv8, for ® Armv8-A architecture profile.
PRMBL_0, [7:0] Preamble byte 0. 0x0D Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDCIDR0 can be accessed through the external debug interface, offset...
Debug component. PRMBL_1, [3:0] Preamble. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDCIDR1 can be accessed through the external debug interface, offset...
PRMBL_2, [7:0] Preamble byte 2. 0x05 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDCIDR2 can be accessed through the external debug interface, offset...
PRMBL_3, [7:0] Preamble byte 3. 0xB1 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDCIDR3 can be accessed through the external debug interface, offset...
None supported. RES0, [23:0] Reserved. RES0 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDDEVID can be accessed through the external debug interface, offset...
Figure D3-6 EDDEVID1 bit assignments RES0, [31:0] Reserved. RES0 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDDEVID1 can be accessed through the external debug interface, offset...
Part_0, [7:0] Least significant byte of the debug part number. 0x0B Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDPIDR0 can be accessed through the external debug interface, offset...
Arm Limited. This is the least significant nibble of JEP106 ID code. Part_1, [3:0] Most significant nibble of the debug part number. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
DES_1, [2:0] Arm Limited. This is the most significant nibble of JEP106 ID code. 0b011 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDPIDR2 can be accessed through the external debug interface, offset...
Part minor revision. CMOD, [3:0] Customer modified. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The EDPIDR3 can be accessed through the external debug interface, offset...
ID registers. DES_2, [3:0] Arm Limited This is the least significant nibble JEP106 continuation code. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
64-bit registers. MCRR MRRC The following table gives a summary of the Cortex-A76 PMU registers in the AArch32 Execution state. For those registers not described in this chapter, see the Arm Architecture Reference Manual Armv8, for ® Armv8-A architecture profile.
Common architectural and microarchitectural feature events that can be counted by the PMU event counters. The following table shows the PMCEID0 bit assignments with event implemented or not implemented when the associated bit is set to 1 or 0. See the Arm Architecture Reference ®...
Page 438
This event counts any instruction fetch which misses in the cache. The … on page C2-374. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 440
This event counts any instruction fetch which misses in the cache. The … on page C2-374. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 442
No action. This is the reset value. Reset PMCCNTR to zero. This bit is always RAZ. Resetting PMCCNTR does not clear the PMCCNTR overflow bit to 0. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile for more information.
Page 446
The PMU counters and their associated control registers are accessible in the AArch64 Execution state with instructions. The following table gives a summary of the Cortex-A76 PMU registers in the AArch64 Execution state. For those registers not described in this chapter, see the Arm Architecture Reference Manual Armv8, for ® Armv8-A architecture profile.
Number of event counters. The value is: Six counters. 0x06 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The PMCFGR can be accessed through the external debug interface, offset...
PRMBL_0, [7:0] Preamble byte 0. 0x0D Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The PMCIDR0 can be accessed through the external debug interface, offset...
Debug component. PRMBL_1, [3:0] Preamble byte 1. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The PMCIDR1 can be accessed through the external debug interface, offset...
PRMBL_2, [7:0] Preamble byte 2. 0x05 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The PMCIDR2 can be accessed through the external debug interface, offset...
PRMBL_3, [7:0] Preamble byte 3. 0xB1 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The PMCIDR3 can be accessed through the external debug interface, offset...
Part_0, [7:0] Least significant byte of the performance monitor part number. 0x0B Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The PMPIDR0 can be accessed through the external debug interface, offset...
Arm Limited. This is the least significant nibble of JEP106 ID code. Part_1, [3:0] Most significant nibble of the performance monitor part number. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
DES_1, [2:0] Arm Limited. This is the most significant nibble of JEP106 ID code. 0b011 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The PMPIDR2 can be accessed through the external debug interface, offset...
Part minor revision. CMOD, [3:0] Customer modified. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The PMPIDR3 can be accessed through the external debug interface, offset...
ID registers. DES_2, [3:0] Arm Limited. This is the least significant nibble JEP106 continuation code. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Armv8-A architecture, the largest counter has 64 bits, therefore the value of this field is 0b111111 N, [7:0] Number of activity counters implemented, where the number of counters is N+1. The Cortex-A76 core implements five counters, therefore the value is 0x04 Configurations There are no configuration notes.
Page 500
Type of comparison: Instruction address, 0b00 RES0 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCACATRn can be accessed through the external debug interface, offset...
Figure D9-2 TRCACVRn bit assignments ADDRESS, [63:0] The address value to compare against. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCACVRn can be accessed through the external debug interface, offset...
Non-secure Invasive Debug: Non-secure Invasive Debug is not implemented. 0b00 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCAUTHSTATUS can be accessed through the external debug interface, offset...
The address range that address range comparator pair defines, is selected. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCBBCTLR can be accessed through the external debug interface, offset...
RES0 THRESHOLD, [11:0] Instruction trace cycle count threshold. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCCCTLR can be accessed through the external debug interface, offset...
The trace unit ignores the relevant byte in TRCCIDCVR0 when it performs the Context ID comparison. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
RES0 VALUE, [31:0] The data value to compare against. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCIDCVR0 can be accessed through the external debug interface, offset...
PRMBL_0, [7:0] Preamble byte 0. 0x0D Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCIDR0 can be accessed through the external debug interface, offset...
Debug component. PRMBL_1, [3:0] Preamble byte 1. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCIDR1 can be accessed through the external debug interface, offset...
PRMBL_2, [7:0] Preamble byte 2. 0x05 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCIDR2 can be accessed through the external debug interface, offset...
PRMBL_3, [7:0] Preamble byte 3. 0xB1 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCIDR3 can be accessed through the external debug interface, offset...
On writes, for each bit: Has no effect. Clears the relevant bit of the claim tag. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
On writes, for each bit: Has no effect. Sets the relevant bit of the claim tag. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 516
When CNTTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0]. When CNTTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
Page 518
When CNTTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0]. When CNTTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
Defines the reload value for the counter. This value is loaded into the counter each time the reload event occurs. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
RES0 VALUE, [15:0] Contains the current counter value. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCNTRLDVRn registers can be accessed through the external debug interface, offsets:...
Page 523
0b11 RES1, [0] Reserved. RES1 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCONFIGR can be accessed through the external debug interface, offset...
Indicates the value read in the CLUSTERIDAFF1 configuration signal. Aff0, [7:0] Affinity level 0. Lowest level affinity field. Indicates the core number in the Cortex-A76 core. The possible values are: A cluster with one core only. A cluster with two cores.
Page 525
D9 ETM registers D9.21 TRCDEVAFF0, Device Affinity Register 0 A cluster with four cores. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCDEVAFF0 can be accessed through the external debug interface, offset...
Architecture ID: ETMv4 component. 0x4A13 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCDEVARCH can be accessed through the external debug interface, offset...
Figure D9-22 TRCDEVID bit assignments DEVID, [31:0] RAZ. There are no component-defined capabilities. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCDEVID can be accessed through the external debug interface, offset...
The main type of the component: Trace source. 0b0011 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCDEVTYPE can be accessed through the external debug interface, offset...
Page 531
When TYPE0 is 0, selects a single selected resource from 0-15 defined by bits[3:0]. When TYPE0 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
Event does not cause an event element. Event causes an event element. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
RES0 SEL0, [4:0] Selects an event from the external input bus for External Input Resource 0. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 535
0b00 RES1, [0] Reserved. RES1 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCIDR0 can be accessed through the external debug interface, offset...
REVISION, [3:0] Trace unit implementation revision number: ETM revision. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCIDR1 can be accessed through the external debug interface, offset...
Page 538
IASIZE, [4:0] Instruction address size in bytes: Maximum of 64-bit address size. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCIDR2 can be accessed through the external debug interface, offset...
Page 540
The minimum value that can be programmed in TRCCCCTLR.THRESHOLD: Instruction trace cycle counting minimum threshold is 4. 0x004 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 542
D9 ETM registers D9.33 TRCIDR4, ID Register 4 Four address comparator pairs are implemented. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCIDR4 can be accessed through the external debug interface, offset...
Page 544
Number of external inputs implemented: 32 external inputs implemented. 0xAD Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCIDR5 can be accessed through the external debug interface, offset...
The maximum number of P0 elements in the trace stream that can be speculative at any time. Maximum speculation depth of the instruction trace stream. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
The number of P0 right-hand keys that the trace unit can use. Number of P0 right-hand keys. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The number of P1 right-hand keys that the trace unit can use. Number of P1 right-hand keys. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The number of special P1 right-hand keys that the trace unit can use. Number of special P1 right-hand keys. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The number of conditional instruction right-hand keys that the trace unit can use, including normal and special keys. Number of conditional instruction right-hand keys. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The number of special conditional instruction right-hand keys that the trace unit can use, including normal and special keys. Number of special conditional instruction right-hand keys. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
RES0 SUPPORT, [3:0] No implementation specific extensions are supported. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCIMSPEC0 can be accessed through the external debug interface, offset...
When a bit is set to 1, the corresponding output pin is HIGH. The TRCITATBIDR bit values correspond to the physical state of the output pins. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
A debug agent to perform topology detection. • SoC test software to perform integration testing. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCITCTRL can be accessed through the external debug interface, offset...
Returns the value of the AFVALIDMn input pin. ATREADYM, [0] Returns the value of the ATREADYMn input pin. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Drives the AFREADYMn output pin. ATVALID, [0] Drives the ATVALIDMn output pin. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCITIATBOUTR can be accessed through the external debug interface, offset...
Drives the ATDATAM[7] output. ATDATAM[0], [0] Drives the ATDATAM[0] output. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCITIDATAR can be accessed through the external debug interface, offset 0xEEC When a bit is set to 0, the corresponding output pin is LOW.
Clear the software lock. 0xC5ACCE55 All other write values set the software lock. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCLAR can be accessed through the external debug interface, offset...
Indicates whether the software lock is implemented on this interface. Software lock is implemented on this interface. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
RES0 VALUE, [15:0] Contains the current counter value. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCCNTVRn registers can be accessed through the external debug interface, offsets:...
OS Lock key value: Unlock the OS Lock. Lock the OS Lock. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCOSLAR can be accessed through the external debug interface, offset...
The value of this field is always , indicating that the OS Lock is implemented. 0b10 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
This bit is reset to 0 on a trace unit reset. RES0, [2:0] Reserved. RES0 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCPDCR can be accessed through the external debug interface, offset...
If a system implementation allows the ETM trace unit to be powered off independently of the debug power domain, the system must handle accesses to the ETM trace unit appropriately. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
Part_0, [7:0] Least significant byte of the ETM trace unit part number. 0x0B Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCPIDR0 can be accessed through the external debug interface, offset...
Arm Limited. This is bits[3:0] of JEP106 ID code. Part_1, [3:0] Most significant four bits of the ETM trace unit part number. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
DES_1, [2:0] Arm Limited. This is bits[6:4] of JEP106 ID code. 0b011 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCPIDR2 can be accessed through the external debug interface, offset...
Part minor revision. CMOD, [3:0] Not customer modified. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCPIDR3 can be accessed through the external debug interface, offset...
ID registers. DES_2, [3:0] Arm Limited. This is bits[3:0] of the JEP106 continuation code. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The ETM trace unit interface in the core is enabled, and clocks are enabled. Writes to most trace registers are ignored. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Selects one or more resources from the required group. One bit is provided for each resource from the group. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
When F TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0]. When F TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
When RESETTYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0]. When RESETTYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
State 2. 0b10 State 3. 0b11 Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCSEQSTR can be accessed through the external debug interface, offset...
Selects one or more single address comparators for single-shot control. One bit is provided for each implemented single address comparator. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
INST, [0] Instruction address comparator support: Single-shot instruction address comparisons supported. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCSSCSR0 can be accessed through the external debug interface, offset...
D9 ETM registers D9.67 TRCSTALLCTLR, Stall Control Register D9.67 TRCSTALLCTLR, Stall Control Register The TRCSTALLCTLR enables the ETM trace unit to stall the Cortex-A76 core if the ETM trace unit FIFO overflows. Bit field descriptions The TRCSTALLCTLR is a 32-bit register.
Idle status: The ETM trace unit is not idle. The ETM trace unit is idle. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCSTATR can be accessed through the external debug interface, offset...
• The maximum value is 20, providing a maximum synchronization period of 2 bytes. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCSYNCPR can be accessed through the external debug interface, offset...
TRACEID, [6:0] Trace ID value. When only instruction tracing is enabled, this provides the trace ID. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
RES0 SEL, [3:1] Identifies the resource selector to use. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile. The TRCTSCTLR can be accessed through the external debug interface, offset...
Page 584
When TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0]. When TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]. Bit fields and details not provided in this description are architecturally defined. See the Arm ®...
One bit is provided for each implemented Address Range Comparator. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Defines the single address comparators to start trace with the ViewInst Start/Stop control. One bit is provided for each implemented single address comparator. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
The trace unit ignores the relevant byte in TRCVMIDCVR0 when it performs the Virtual context ID comparison. Bit fields and details not provided in this description are architecturally defined. See the Arm ® Architecture Reference Manual Armv8, for Armv8-A architecture profile.
Page 591
Appendix A Cortex -A76 Core AArch32 unpredictable behaviors ® This appendix describes the cases in which the Cortex-A76 core implementation diverges from the preferred behavior described in Armv8 AArch32 behaviors. UNPREDICTABLE It contains the following sections: • A.1 Use of R15 by Instruction on page Appx-A-592.
Page 592
In this case, if the instruction specifies Writeback, then the load or store is performed without Writeback. The Cortex-A76 core does not implement a Read 0 or Ignore Write policy on use of R15 UNPREDICTABLE by instruction.
Page 593
A.2 Load/Store accesses crossing page boundaries Load/Store accesses crossing page boundaries The Cortex-A76 core implements a set of behaviors for load or store accesses that cross page boundaries. Crossing a page boundary with different memory types or shareability attributes The Arm Architecture Reference Manual Armv8, for Armv8-A architecture profile, states that a ®...
Page 594
-A76 Core AArch32 unpredictable behaviors ® A.3 Armv8 Debug UNPREDICTABLE behaviors Armv8 Debug UNPREDICTABLE behaviors This section describes the behavior that the Cortex-A76 core implements when: • A topic has multiple options. • The behavior differs from either or both of the Options and Preferences behaviors.
Need help?
Do you have a question about the Cortex-A76 Core and is the answer not in the manual?
Questions and answers