This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352: Linux only boots with D-cache disabled

Part Number: AM3352
I'm bringing up Linux on a custom AM3352 board. Uboot works fine, but Linux will only boot if I disable the D-cache (with CONFIG_CPU_DCACHE_DISABLE=y). If I enable the D-cache, Linux will crash within a second ("unable to handle kernel paging request at...").
This version of Uboot and Linux were working on this board with a smaller RAM part. This board has a larger RAM part.
I've looked at all of the RAM timings in the EMIF registers and everything looks good. I can run a memory test in Linux (with D-cache disabled) and the memory tests are good. Electrically the RAM seems to be working fine.
Another observation: If I first boot Linux with D-cache disabled, then do a soft reset, I can boot Linux with D-cache enabled. 
Same result with several different kernel versions and boards.
Let me know if you need me to provide any other information.
  • This issue is resolved. Root cause was VDD_MPU was set too low.

    My guess is that disabling D-cache reduced power consumption enough to allow the processor to boot Linux with the lower voltage setting.

  • Hi Dylan,

    Dylan Howey said:
    My guess is that disabling D-cache reduced power consumption enough to allow the processor to boot Linux with the lower voltage setting.

    thanks for closing the loop here and marking the answer accordingly, this might help somebody else. Actually I had already started looking into this but the failure mode seemed a bit odd. Usually enabling cache(s) is what makes certain systems with hardware issues "work", not the other way around.

    Regards, Andreas