[U-Boot] DA850EVM with USE_NAND config does not pad the AIS file
Tom Taylor
ttaylor.tampa at gmail.com
Sat Apr 26 19:34:58 CEST 2014
I'm a U-Boot newbie so please feel free to correct how I'm reporting
this issue..
I recently downloaded the 2014.04-rc3 snapshot to build U-Boot for my
custom DA850-based board. The only change was to add a new target
"dav850evm_nand" in boards.cfg with the added parameter "USE_NAND".
The resulting AIS file was programmed into EVM-compatible NAND using
standard sfh_OMAP-L138 method.
The board failed to boot, and stayed in a loop printing the SPL console
message repeatedly.
After some debugging with CCS 5.5 and an XDS100v2, I found that
incorrect code was being loaded into the 0xc108000 RAM destination. The
da850evm.h file defines CONFIG_SYS_NAND_U_BOOT_OFFS as 0x28000, which
corresponds to an AIS offset of 0x8000 but the u-boot header did not
appear there in the AIS file. A search revealed that the Makefile
catenated u-boot immediately after the SPL without any padding.
Further investigation revealed that the target Makefile needs
CONFIG_SPL_MAX_SIZE to be defined as 0x8000 in order for the padding to
be performed properly; however, this constant was apparently deleted
during a series of changes in April, 2013 to accommodate separate code
and BSS size limits for another target. In its place,
CONFIG_SPL_MAX_FOOTPRINT was defined as 32768. Unfortunately, the
da850evm Makefile does not refer to this constant.
To solve the problem, I added the following 2 lines in my
custom-modified da850evm.h:
#define CONFIG_SPL_PAD_TO 0x8000
#define CONFIG_SPL_MAX_SIZE 0x8000
although the first line may not be strictly required. This solved the
problem and allowed the board to boot.
Doesn't this mean that other similar targets may be broken?
How can I assist with contributing the patch to fix this? One problem I
have is that I only have an EXP, not an EVM board. My custom target
board shares some features with the EVM such as NOR and NAND memory, but
other things are different like the use of a fixed PHY. This makes it
impossible for me to completely verify a da850evm build.
I would like to see more target configurations available for the
DA850EVM but it seems like development for this has stopped. NAND boot
was a simple change, but adding USB support required me to copy & paste
code from the da830evm target. Are there any future plans to do this,
or will I need to do this development for my custom board only?
Tom Taylor
More information about the U-Boot
mailing list