When the "High Priority for Strongly Ordered (SO) and Device (Dev) reads" feature is enabled, the L2 cache controller gives a higher priority to SO and Dev read requests than normal cacheable reads. When the controller receives a continuous flow of SO/Device reads, the activity might prevent L2 cache line fill requests from being forwarded to the memory.
A work-around is only necessary in systems that are able to issue a continuous flow of SO or Dev reads. In such a case, the work-around is to disable the "High Priority for SO and Dev reads" feature. This is the default setting in the L2 Controller.
|Work-around:||Disable the "High Priority for SO and Dev reads" feature. This is the default setting in the L2 cache controller.|
|Systems that use one or both processors and are able to issue a continuous flow of SO or Dev reads.|
|Device Revision(s) Affected:||All, no plan to fix. Refer to (Xilinx Answer 47916) Zynq-7000 SoC Silicon Revision Differences.|
The "High Priority for SO and Dev reads" feature can be enabled by setting bit 10 of the L2 Controller Auxiliary Control Register to 1. When enabled, this feature gives priority to Strongly Ordered and Device reads over cacheable reads in the L2 Controller AXI master interfaces. When the controller receives a continuous flow of SO or Dev reads, this can prevent cacheable reads that miss in the L2 cache from being issued to memory.
This problem occurs when the following conditions are met:
Impact Details: When the conditions above are met, the line-fill resulting from the L2 cache miss is not issued till the flow of SO/Dev reads stops. Note that each L2 Controller master interface has four address slots, so that the Quality of Service issue only appears on the cacheable read if the L1 is able to issue at least four outstanding SO/Dev reads.