Comment 2 for bug 928580

Revision history for this message
Peter Maydell (pmaydell) wrote :

Investigated a bit. This is failing because:
 * something (I guess U-Boot SPL) misprograms the SDRC MCFG_0 register to claim that bank 0 of the RAM is 512MB, not 256MB
 * this causes u-boot to believe that it has 512MB to play with, so it puts some of its data structures at just below 0xa0000000, where there is no RAM, so this area always reads as zero
 * in particular, this includes its "list of DRAM banks" data structure
 * so it writes plausible values into this structure but then later when it tries to read them back they read as zero and it decides it has no DRAM
 * presumably it subsequently tries to put some actual code in the 0x90000000..0xa0000000 gap where it thinks there is RAM, and qemu barfs when it tries to execute it

I'm trying to track down the sources corresponding to the U-Boot SPL in this image (the manifest.txt seems to be out of date) which is the next step in finding out why the SDRC was misprogrammed in the first place...