SPRZ536B September 2022 – July 2024 AM69 , AM69A , TDA4AH-Q1 , TDA4AP-Q1 , TDA4VH-Q1 , TDA4VP-Q1
C71x: The C71x Memory System and CPU May Stall Indefinitely in the Presence L1D Snoops
These are transactions and conditions that need to happen in a small time window.
Transactions:
Conditions/Stalls:
In this situation, the memory system stops servicing streaming engine reads. This can cause the CPU to stall indefinitely.
There are multiple ways in which this can be avoided. Removing any one transaction prevents this stall from happening. Any of these workarounds can be used. They are independent of each other, and applying even one workaround will avoid this condition.
Workaround 1: Flush the buffer from the L1D cache, before reading from the streaming engine, which eliminates L1D snoops.
Workaround 2: Prevents L1D snoops by not sharing buffers between L1D and Streaming engine.
Workaround 3: Flush the L1D victim cache to prevent L1D victims.
Workaround 4: Map either the streaming engine reads or the CPU loads to L2, instead of MSMC or DDR, thus avoiding cache misses.