This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

U-Boot - Booting Multi-Image from NAND

Hello all,

I am running a custom board based on the Beagle Bone Black, but using NAND instead of eMMC. U-boot version is u-boot-2013.10-ti2013.12.01 taken from TI SDK ti-sdk-am335x-evm-07.00.00.00. Here is my U-Boot partition table for reference

device nand0 <nand.0>, # parts = 10
 #: name                size            offset          mask_flags
 0: SPL                 0x00020000      0x00000000      0
 1: SPL.backup1         0x00020000      0x00020000      0
 2: SPL.backup2         0x00020000      0x00040000      0
 3: SPL.backup3         0x00020000      0x00060000      0
 4: u-boot-spl-os       0x00040000      0x00080000      0
 5: u-boot              0x00100000      0x000c0000      0
 6: u-boot-env          0x00020000      0x001c0000      0
 7: u-boot-env.backup1  0x00020000      0x001e0000      0
 8: kernel              0x00800000      0x00200000      0
 9: rootfs              0x07600000      0x00a00000      0


If I put my zImage kernel at the kernel partition 8 and let the unit boot from NAND with default environment, U-Boot can find the kernel and boot it fine.

Now, I have a Multi-Image that I created with mkimage that contains the kernel, ramdisk image, and device tree blob. I store this multi-image in the same location that I was storing my zImage, thinking that U-Boot will find it and just know how to boot it. However it will not boot the multi-image, it appears that it is expecting a zImage only.

I am able to get the system to boot my multi-image by adding the following bootcmd:

setenv bootcmd 'nand read 0x90000000 0x00200000 0x00800000; bootm 0x90000000'

As you can see, I manually read the multi-image from NAND into ram, then bootm at that ram location and the system boots fine.

I am wondering if this bootcmd is necessary, or the best way to accomplish my system boot. Or is there a way to configure U-Boot to still automatically boot the image in my kernel partition without the bootcmd definition, but let it accept a multi-image instead zImage?

Thanks in advance for any help! - Anthony