2.3.1. Root Port Legacy Interrupt Status register INTx is stuck HIGH
2.3.2. TLP Bypass Error Status Register may Report Receiver Errors
2.3.3. PCIe CV and PTC Tests in the PCI-SIG Compliance Test Suite may Fail
2.3.4. Returning Incorrect Function Number
2.3.5. Incorrect Return Value for Power Management Register
2.3.6. Register Implementation while using the SR-IOV Feature
2.3.7. Register Implementation while using the Multi-function Feature
2.3.8. Unsuccessful TX Equalization
2.3.9. Link Does Not Degrade With Corrupt Lanes
2.3.10. Warm Reset or PERST Assertion Clears the Sticky Registers
3.1. 843819: Memory Locations May be Accessed Speculatively Due to Instruction Fetches When HCR.VM is Set
3.2. 845719: A Load May Read Incorrect Data
3.3. 855871: ETM Does Not Report IDLE State When Disabled Using OSLOCK
3.4. 855872: A Store-Exclusive Instruction May Pass When it Should Fail
3.5. 711668: Configuration Extension Register Has Wrong Value Status
3.6. 720107: Periodic Synchronization Can Be Delayed and Cause Overflow
3.7. 855873: An Eviction Might Overtake a Cache Clean Operation
3.8. 853172: ETM May Assert AFREADY Before All Data Has Been Output
3.9. 836870: Non-Allocating Reads May Prevent a Store Exclusive From Passing
3.10. 836919: Write of the JMCR in EL0 Does Not Generate an UNDEFINED Exception
3.11. 845819: Instruction Sequences Containing AES Instructions May Produce Incorrect Results
3.12. 851672: ETM May Trace an Incorrect Exception Address
3.13. 851871: ETM May Lose Counter Events While Entering WFx Mode
3.14. 852071: Direct Branch Instructions Executed Before a Trace Flush May be Output in an Atom Packet After Flush Acknowledgment
3.15. 852521: A64 Unconditional Branch May Jump to Incorrect Address
3.16. 855827: PMU Counter Values May Be Inaccurate When Monitoring Certain Events
3.17. 855829: Reads of PMEVCNTR<n> are not Masked by HDCR.HPMN
3.18. 855830: Loads of Mismatched Size May not be Single-Copy Atomic
3.16. 855827: PMU Counter Values May Be Inaccurate When Monitoring Certain Events
Description
The Cortex-A53 MPCore* processor implements a Performance Monitor Unit (PMU). The PMU allows programmers to gather statistics on the operation of the processor during runtime. Because of this erratum, software may read inaccurate PMU counter values when monitoring certain events. Specifically:
- The INST_RETIRED event counts architecturally executed instructions. Because of this erratum, it may count more instructions than were architecturally executed.
- The ST_RETIRED event does not count store-exclusive instructions that fail. Because of this erratum, it does count these instructions.
- The UNALIGNED_LDST_RETIRED event counts loads and stores that fail their alignment check. Because of this erratum, it may also count LDRD and STRD instructions that pass their alignment check.
- The EXC_TAKEN and EXC_RETURN events are filtered precisely according to the exception level/security state they were executed in. Because of this erratum, they are filtered according to the destination exception level/security state.
This erratum is present when:
- A performance counter is enabled and configured to count an INST_RETIRED , ST_RETIRED, UNALIGNED_LDST_RETIRED, EXC_TAKEN, or EXC_RETURN event.
- The following conditions occur during the event capture:
- INST_RETIRED: An immediate branch instruction is executed.
- ST_RETIRED: A store-exclusive instruction is executed and fails.
- UNALIGNED_LDST_RETIRED: A LDRD or STRD instruction is executed that is word aligned but not double word aligned.
- EXC_TAKEN: An exception is taken.
- EXC_RETURN: An exception return is executed.
- The INST_RETIRED, ST_RETIRED, and UNALIGNED_LDST_RETIRED filter settings for the performance counter are configured so that an event must be counted if it occurs.
- The EXC_TAKEN and EXC_RETURN filter settings are configured to one of the following descriptions:
- Events must be counted in the original exception level and security state, but must not be counted in the exception level and security state following the exception or the exception return
- Events must not be counted in the original exception level and security state, but must be counted in the exception level and security state following the exception or the exception return.
Impact
If the erratum conditions are met, the performance counter may erroneously increment or fail to increment. Specifically:
- INST_RETIRED: The counter may erroneously increment by two when only one instruction executes.
- ST_RETIRED: The counter may erroneously increment for the failed store-exclusive instruction.
- UNALIGNED_LDST_RETIRED: The counter erroneously increments for the LDRD or STRD instruction.
- EXC_TAKEN: The counter may erroneously increment or erroneously fail to increment.
- EXC_RETURN: The counter may erroneously increment or erroneously fail to increment.
Workaround
For the EXC_TAKEN and EXC_RETURN events, you can workaround the erratum by changing the filter settings for the performance counter to monitor the destination exception level and security state instead of the exception level and security state in which the exception or exception return are executed.
There are no workarounds for the other PMU events.