[PATCH 0/4] defaultenv boot updates

Sascha Hauer s.hauer at pengutronix.de
Mon Apr 11 06:16:01 EDT 2011


Hi,

On Fri, Apr 08, 2011 at 03:37:13PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> HI,
> 
> 	this following patch series make boot script more configurable
> 
> 

I'm getting the impression that we stretch the capabilities of our shell
way beyond its limits. We started with booting from nand/nor/net and
added mmc cards later. Still this is not flexible enough to handle
images for example on a fat filesystem, not to mention different kernels
on one medium.

I was thinking about this topic a bit, and my idea currently is
to add a command with which we can build a list of images. An image can
be a kernel or a filesystem image. Each image can be associated with
a bootarg snippet and a command to execute to access this image.

Altogether this could look like this:

linux [OPTIONS]

 -a <name>    add a new image
 -f <file>    path to image
 -b <bootarg> kernel bootargs to append for this image
 -z           This is a zImage
 -u           This is a uImage
 -r <adr>     This is a raw kernel image to be started at address <adr>
 -l           The image is lzo compressed
 -i           Show currently registered images
 -d           delete all registered images


example:

barebox at Phytec phyCORE pcm049:/ linux -a kernel.nand -f /dev/nand0.kernel.bb -z
barebox at Phytec phyCORE pcm049:/ linux -a kernel.mmc -f /dev/disk0.1 -c "mci0.probe=1" -r 0x80008000 -l
barebox at Phytec phyCORE pcm049:/ linux -a kernel.net -f /tftp/zImage-pcm038 -c /env/bin/netinit -z
barebox at Phytec phyCORE pcm049:/ linux -a root.nand -b "root=ubi0:root ubi.mtd=7 rootfstype=ubifs" -f /dev/nand0.root.bb
barebox at Phytec phyCORE pcm049:/ linux -a root.nfs -b "root=/dev/nfs nfsroot=$nfsroot,v3,tcp"
barebox at Phytec phyCORE pcm049:/ linux -a root.net.ext2 -f /tftp/root-pcm038.ext2 -c /env/bin/netinit
barebox at Phytec phyCORE pcm049:/ linux -i
kernel.nand (zImage)
        file: /dev/nand0.kernel.bb
kernel.mmc (raw at 80008000, lzo)
        file: /dev/disk0.1
        command: mci0.probe=1
kernel.net (zImage)
        file: /tftp/zImage-pcm038
        command: /env/bin/netinit
root.nand
        file: /dev/nand0.root.bb
        bootarg: root=ubi0:root ubi.mtd=7 rootfstype=ubifs
root.nfs
        bootarg: root=/dev/nfs nfsroot=192.168.23.2:/home/sha/nfsroot/pcm049,v3,tcp
root.net.ext2
        file: /tftp/root-pcm038.ext2
        command: /env/bin/netinit
barebox at Phytec phyCORE pcm049:/


Then we can play tricks like:

boot kernel from nand with nfsroot:

barebox at Phytec phyCORE pcm049:/ boot kernel.nand root.nfs

Update kernel from network to nand:

barebox at Phytec phyCORE pcm049:/ update kernel.net kernel.nand

Most probably there are problems I haven't thought about yet, but what
do think about it in general?

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list