by krbonne » Sun Dec 08, 2013 2:30 pm
Hi,
OK. I'm a bit confused. Let me see if I get this correct.
first; BOM (abrivation for ???) is what exactly? It sound like some bootstrap code in EEPROM or so?
Is this code or data?
Then, this is what I see on my system:
[root@archtest ~]# fw_printenv
(...)
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
The first part of the MTD is u-boot, which is the 3th element in your list. So where is the "Stage1"?
The 2nd and 3th partition of the MTD seams to contain a linux kernel + rootFS, which is the 4th elemtn in your list.
Correct?
However, gw_printenv also show this:
[root@archtest ~]# fw_printenv | grep boot
(...)
bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset
(...)
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot
(...)
etc.
If I look at this, there seams to be a lot of (very well writen) code in there that deals with rescue-boot situations but also the normal bootprocedure.
It seams to scan all USB disks and it it is ext2 and finds a file "/boot/uImage", it loads it in memory and executes this.
However, what is not really clear to me:
who actually executes this code? Is it u-boot? Is it the intermediate "uimage" in the 4M uimage in the 2nd partition of the MTD?
How does this all fit into the boot-process of "BOM, Stage1, Stage2 (uboot), kernel" you describe?
Cheerio!
Kr. Bonne.