[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