Hi Anthony.
Check the code inside <u-boot>/common/spl/spl_nand.c, spl_nand_load_image() function:
[quote]#ifdef CONFIG_SPL_OS_BOOT
if (!spl_start_uboot()) {
/*
* load parameter image
* load to temp position since nand_spl_load_image reads
* a whole block which is typically larger than
* CONFIG_CMD_SPL_WRITE_SIZE therefore may overwrite
* following sections like BSS
*/
nand_spl_load_image(CONFIG_CMD_SPL_NAND_OFS,
CONFIG_CMD_SPL_WRITE_SIZE,
(void *)CONFIG_SYS_TEXT_BASE);
/* copy to destintion */
for (dst = (int *)CONFIG_SYS_SPL_ARGS_ADDR,
src = (int *)CONFIG_SYS_TEXT_BASE;
src < (int *)(CONFIG_SYS_TEXT_BASE +
CONFIG_CMD_SPL_WRITE_SIZE);
src++, dst++) {
writel(readl(src), dst);
}
/* load linux */
nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS,
CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
spl_parse_image_header(header);
if (header->ih_os == IH_OS_LINUX) {
/* happy - was a linux */
nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS,
spl_image.size, (void *)spl_image.load_addr);
nand_deselect();
return;
} else {
puts("The Expected Linux image was not "
"found. Please check your NAND "
"configuration.\n");
puts("Trying to start u-boot now...\n");
}
}
#endif[/quote]
Since CONFIG_SPL_OS_BOOT is defined by default inside <u-boot>/include/configs/ti_armv7_common.h, the above code will try to directly load the kernel image and since it can't find it at offset 0x00A00000, it prints the message you posted and then continues to the following code, which will try to load the u-boot.img from offset CONFIG_SYS_NAND_U_BOOT_OFFS.
[quote] /* Load u-boot */
nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
CONFIG_SYS_NAND_PAGE_SIZE, (void *)header);
spl_parse_image_header(header);
nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
spl_image.size, (void *)spl_image.load_addr);
nand_deselect();[/quote]
CONFIG_SYS_NAND_U_BOOT_OFFS is defined inside the <u-boot>/include/configs/am335x_evm.h:
#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x000C0000
So most probably, you need to change the NAND layout you are using.
Best regards,
Miroslav