[U-Boot] iMX6 (Arm) failing to initialize console. Hangs when running relocation code.
Doug Bailey
dbailey at digium.com
Wed Mar 15 21:34:28 UTC 2017
I have a board that is running u-boot based on "U-Boot 2009.08". I am in
the process of developing another board that is very similar but want to
upgrade the u-boot to "U-Boot 2013.06".
The boards are NXP iMX6DL CPU (ARM) based with 32 bit DDR3 and console via
UART1. These designs are based on the SabreSD reference design. The u-boot
implmentations are copies of the SabreSD files optimized for my board.
I am loading the boards serially via USB using the imx_usb utility
available from
https://github.com/boundarydevices/imx_usb_loader.git
I do not have a debugger/JTAG interface. I have verified that I am working
by manipulating GPIO pins.
Using the older design, I can run the old boot loader fine. When I run the
new version of u-boot, the board boots but does not output anything via the
serial console. It gets through the board_init_f function but does not
reach the board_late_init function. (Nor do I see it access board_init_r.)
Any suggestions as to how to determine why the serial port is not
outputting? (I can determine that the serial port initialization functions
are running and I have verified that the IOMuxC setting for the pins is
valid.)
The code between the board_init_f and board_late_init functions appears to
be code that relocates the executable image. (arch/arm/lib/crt0.S) Since
the iMX6 loads the software into RAM before executing u-boot, I am
wondering why I am running this code at all. Why does the u-boot run the
relocation firmware in this case?
Regards,
Doug Bailey
More information about the U-Boot
mailing list