Hello,
Please look at my comments below.
Based on i.MX8X RM (IMX8DQXPRM, Rev. 0, 05/2020):
Low-order addresses (0x0000_0000 - 0x1FFF_FFFF) use the Processor Code (PC) bus,
and high-order addresses (0x2000_0000 - 0xFFFF_FFFF) use the Processor System (PS) bus.
Normal operation has code accesses on the PC bus and data accesses on the PS bus.
Chapter 2 (Memory Map) of the RM provides information, what devices / addresses
can be accessed via PC and PS buses. All accesses, that are not mapped to corresponding
TCM are intended for the cache controllers:
Processor Code accesses are routed to the SRAM_L if they are mapped to that space.
All other PC accesses are routed to the Code Cache Memory Controller. This controller
then processes the cacheable accesses as needed, while bypassing the non-cacheable, cache
write-through, cache miss ...
Processor Space accesses are routed to the SRAM_U if they are mapped to that space.
All other PS accesses are routed to the PS Cache Memory Controller. This controller then
processes the cacheable accesses as needed, while bypassing the non-cacheable, cache
write-through, cache miss ...
To enable / disable the caches LMEM_PCCCR[ENCACHE] and / or LMEM_PSCCR[ENCACHE]
should be set / cleared.
Regards,
Yuri.