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.