Agilex™ 5 ES Device Errata and User Guidelines

ID 825514
Date 12/09/2024
Public
Document Table of Contents

3.2.2. 1946160: Atomic instructions with acquire semantics might not be ordered with respect to older stores with release semantics

Description

Under certain conditions, atomic instructions with acquire semantics might not be ordered with respect to older instructions with release semantics. The older instruction could either be a store or store atomic.

Conditions

  1. Load atomic, CAS or SWP with acquire but no release semantics is executed.
  2. There is an older instruction with release semantics and it could either be a store to non-WB memory or a store atomic instruction that is executed as a far atomic.

Impact

If the above condition are met, a memory ordering violation might happen.

Workaround

This erratum can be avoided by inserting a DMB ST before acquire atomic instructions without release semantics. This can be done through the following write sequence to several IMPLEMENTATION DEFINED registers:

LDR x0,=0x3 ; MSR S3_6_c15_c8_0,x0
LDR x0,= 0x10E3900002 ; MSR S3_6_c15_c8_2,x0
LDR x0,= 0x10FFF00083 ; MSR S3_6_c15_c8_3,x0
LDR x0,= 0x2001003FF ; MSR S3_6_c15_c8_1,x0

LDR x0,=0x4 ; MSR S3_6_c15_c8_0,x0
LDR x0,= 0x10E3800082 ; MSR S3_6_c15_c8_2,x0
LDR x0,= 0x10FFF00083 ; MSR S3_6_c15_c8_3,x0
LDR x0,= 0x2001003FF ; MSR S3_6_c15_c8_1,x0

LDR x0,=0x5 ; MSR S3_6_c15_c8_0,x0
LDR x0,= 0x10E3800200 ; MSR S3_6_c15_c8_2,x0
LDR x0,= 0x10FFF003E0 ; MSR S3_6_c15_c8_3,x0
LDR x0,= 0x2001003FF ; MSR S3_6_c15_c8_1,x0

ISB

Category

Category B