The document Jan sent me describes the boot from NAND process. The
NAND contains the X-loader, u-boot, the kernel and the root file
system. Briefly: code in ROM loads the X-loader in RAM, which in turn
loads the bootloader u-boot, which in turn loads the kernel. The
kernel then directly uses the file system on the NAND. In that case no
MMC is needed: the NAND contains everything to run the OS (and a few
apps ?). Is that correct?
The recommended setup to run Angstrom though is to set the MMC with 2
partitions: a FAT boot partition and an EXT3 partition for the rootfs.
The FAT partition contains the MLO (I read somewhere that this is the
X-loader renamed...?), the bootloader u-boot.bin and the kernel image
uImage.bin. In that case it seems that the NAND is not needed anymore,
and actually, if we power off while pressing the user button, it boots
directly from the MMC.
Then I guess there is a mixed mode, to initially boot from the NAND,
to the point where it reads instructions that tell how to boot from
the MMC. It's equivalent (?) to booting directly from MMC except that
there is no need to press the user button (?). In that case the NAND
needs to contain the X-loader, u-boot and u-boot environment data.
My question is: how to store the kernel option in the NAND and make
sure that the kernel boots with those options?
In a post above I copied the messages on the serial terminal:
Texas Instruments X-Loader 1.4.2 (Aug 8 2008 - 16:59:05)
Reading boot sector
Booting from mmc
Is this the X-loader located in the NAND or in the FAT partition of
the MMC? My guess is that it's the one from the NAND. Then it goes
read the boot sector on the MMC, which is valid, so it boots from the
MMC and reads uBoot which performs some checks before going on with
the automatic process:
reading boot.scr
** Unable to read "boot.scr" from mmc 0:1 **
reading uImage.bin
2617100 bytes read
reading ramdisk.gz
** Unable to read "ramdisk.gz" from mmc 0:1 **
Booting from mmc ...
## Booting kernel from Legacy Image at 80200000 ...
So here we can that it searches for boot.scr, which I read should
contain some rules on how to boot... but I don't have it. Then it
reads the kernel but fails to find the ramdisk image because it's not
on the card. Finally it boots the kernel
Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw
rootfstype=ext3 rootwait
Where does it get that command line from? I thought is should be in
the NAND (saved with saveenv) but that's not the command I saved. Mine
contains info on the video frame buffer.
Please someone enlight me!