Hi,
thank you for your suggestions, but unfortunately I couldn't solve the problem. I tried more cache configurations for the SDRAM region:
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 0, 0, ARM_MPU_REGION_SIZE_1GB);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 1, 1, 0, 0, ARM_MPU_REGION_SIZE_1GB);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 1, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
but only the first one (Device mode) works correctly The remaining configs cause the same problem. I also added cache cleaning and invalidation before switching the image buffer, bu also without any success:
L1CACHE_CleanDCache();
L1CACHE_InvalidateDCache();
Cleaning and invalidating parts of the memory does not change anything.
I will try to check the SDRAM and LCD controller configuration because I have no more ideas regarding the cache.
Krzysiek
UPDATE:
I did some more debugging and found out that disabling the D-cache completely does not help with the display issue. It of course affect the overall performance, however the image is not displayed correctly. The only thing that seems to work is the MPU region configuration as Device or Strictly Ordered.