[U-Boot] iMX6 (Arm) failing to initialize console. Hangs when running relocation code.

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
participants (1)
-
Doug Bailey