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.11. 845819: Instruction Sequences Containing AES Instructions May Produce Incorrect Results
Description
When the Cortex*-A53 MPCore* processor is executing in the AArch64 state, certain sequences of instructions that include AES instructions may cause incorrect results.
There are two code sequences that can cause this erratum in the AArch64 execution state:
- Code sequence 1:
- The CPU executes an AESE instruction.
- The CPU executes a USQADD instruction.
- Both the Vn and Vd of this instruction must be the same register as Vd for the AES instruction.
- The size field for this instruction must be '00', indicating byte-sized elements.
- The USQADD instruction can be in either vector or scalar form.
- Code sequence 2:
- The CPU executes a SUQADD instruction.
- The size field for this instruction must be 00, indicating byte-sized elements.
- The SUQADD instruction can be in either vector or scalar form.
- The CPU executes an AESMC or AESIMC instruction.
- Both the Vn and Vd of this instruction must be the same register as the Vd for the SUQADD instruction.
- The CPU executes a SUQADD instruction.
Impact
The sequences of instructions described in the conditions above are not expected to occur in real code because they do not perform useful computation. Therefore, there is no impact expected to real systems.
Workaround
Because the code sequences for this erratum are not expected to occur in real code, no workaround is required.