Tool/software: Linux
I have a PCIe device writing into L3. I want to remap L3 to an uncached address range. Which ranges are valid to use and what do I need to do to keep linux from trampling my chosen range.
I've tried using 0xC0000000 (and other base addresses), and adding a carveout in the resource table, but the mapped addresses don't read back correctly.
uintptr_t L3 = 0x0C000000; uintptr_t mapped = 0xC0000000; CSL_XMC_XMPAXH high = { mapped >> CSL_XMC_XMPAXH_BADDR_SHIFT, 0x1B }; CSL_XMC_XMPAXL low = { L3 >> CSL_XMC_XMPAXL_RADDR_SHIFT, 1, 1, 0, 1, 1, 0 }; CSL_XMC_setXMPAXH(2, &high); CSL_XMC_setXMPAXL(2, &low); CACHE_disableCaching(mapped >> 24);
Thanks