I've been having some issues debugging U-Boot. I believe it is due to a RAM configuration error, but I would like to get some clarity on it.
My methodology for testing is below, and is based on these instructions for the BeagleBone Black
Run SPL, and pause after I receive a message such as this one:
At this point I know that U-Boot has relocated from the SRAM to the DDR3 RAM due to spl_relocate_stack_gd()
being already called.
From here I would resume the application to get to the U-Boot console and get the gd->relocaddr
from bdinfo
, but even single stepping into the program results in U-Boot becoming unresponsive, and the PC moving to address 0x0000000C.
My guess is that this is because the SDRAM was not configured correctly, resulting in an erroneous read, considering that the first instruction is a branch, which could result in the erroneous PC value.
The trouble is that when I try this with a TI AM5728 EVM, with the known-correct RAM configs, the same thing happens. But when I start the EVM with a SD card that only has u-boot.img and MLO, I reach the U-Boot command line.
Am I going crazy with the notion that this could be the RAM? Since I have evidence of a working RAM configuration for the same SoC doing the same behaviour, or is there something else that I am missing? printf()
's don't seem to work, and enabling the DEBUG macro does not print anything to console, either.
User contributions licensed under CC BY-SA 3.0