4.2.1. 754670: A Continuous Write Flow Can Stall a Read Targeting the Same Memory Area
In PL310, hazard checking is done on bits [31:5] of the address. When PL310 receives a read with normal memory (cacheable or not) attributes, hazard checking is performed with the active writes of the store buffer. If an address match is detected, the read is stalled until the write completes.
Because of this erratum, a continuous flow of writes can stall a read that targets the same memory area.
This problem occurs when the following conditions are met:.
- PL310 receives a continuous write traffic targeting the same address marked with Normal Memory attributes.
- While treating this flow, PL310 receives a read that targets the same 32-byte memory area.
When the conditions above are met, the read might be stalled until the write flow stops. Note that this erratum does not lead to any data corruption. Also, the normal software code is not expected to contain long write sequences like the one causing this erratum to occur.
There is no workaround and there is unlikely to be a need for a workaround for this erratum.