Qi vs U-boot

Timo Juhani Lindfors timo.lindfors at iki.fi
Tue Dec 28 11:01:41 CET 2010


Ivan Matveev <imatveev13 at nm.ru> writes:
> As always with "automatic" someone has to build the mechanism. Qi has
> it already. Why shell I bother with u-boot numerous(poorly documented)
> options?

I don't intend to flame but u-boot has a long manual:

http://www.denx.de/wiki/DULG/Manual

> I will see much more than 1% of kernel parameters in the file.

That's indeed complex partly because it is a template that can be used
to generate different configuration files.

I keep my u-boot configuration in /etc/uboot.conf that reads

#!/bin/sh
set -e
fw_setenv bootargs_base 'g_ether.host_addr=00:1F:11:01:1F:6B g_ether.dev_addr=00:1F:11:01:1F:6B panic=20 mem=127M loglevel=8 rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 mtdparts=physmap-flash:-(nor);neo1973-nand:0x00040000(u-boot),0x00040000(u-boot_env),0x00800000(kernel),0x000a0000(splash),0x00040000(factory),0x0f6a0000(rootfs) ro'

fw_setenv bootcmd 'setenv bootargs ${bootargs_base}; mmcinit; ext2load mmc 1:2 0x32000000 boot/stable.bin; bootm 0x32000000'
fw_setenv menu_1 'stable: setenv bootargs ${bootargs_base}; mmcinit; ext2load mmc 1:2 0x32000000 boot/stable.bin; bootm 0x32000000'
fw_setenv menu_2 'testing: setenv bootargs ${bootargs_base}; mmcinit; ext2load mmc 1:2 0x32000000 boot/testing.bin; bootm 0x32000000'
fw_setenv menu_3 'unstable: setenv bootargs ${bootargs_base}; mmcinit; ext2load mmc 1:2 0x32000000 boot/unstable.bin; bootm 0x32000000'
fw_setenv menu_4 'failsafe: setenv bootargs g_ether.host_addr=00:1F:11:01:1F:6B g_ether.dev_addr=00:1F:11:01:1F:6B panic=20 mem=127M loglevel=8 rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 ro mtdparts=physmap-flash:-(nor);neo1973-nand:0x00040000(u-boot),0x00040000(u-boot_env),0x00800000(kernel),0x000a0000(splash),0x00040000(factory),0x0f6a0000(rootfs) rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 panic=10; mmcinit; ext2load mmc 1 0x32000000 boot/failsafe.bin; bootm 0x32000000'
fw_setenv menu_5 'fast charge: neo1973 charger fast; neo1973 backlight off; neo1973 led 0 on; setenv boot_menu_timeout 3600'
fw_setenv menu_6 'Set console to USB: setenv stdin usbtty; setenv stdout usbtty; setenv stderr usbtty'
fw_setenv menu_7 'Set console to serial: setenv stdin serial; setenv stdout serial; setenv stderr serial'
fw_setenv menu_8 'Power off: neo1973 power-off'
fw_setenv menu_9 'experimental: setenv bootargs ${bootargs_base}; mmcinit; ext2load mmc 1:2 0x32000000 boot/experimental.bin; bootm 0x32000000'

fw_setenv splashimage 'nand read.e 0x32000000 splash 0x5000; unzip 0x32000000 0x8800000 0x96000'

fw_setenv stdin 'usbtty'
fw_setenv stdout 'usbtty'
fw_setenv stderr 'usbtty'
fw_setenv usbtty 'cdc_acm'

fw_setenv quiet '1'
fw_setenv bootdelay '1'
fw_setenv boot_menu_timeout '300'

echo DONE

where "fw_setenv" is the command for modifying u-boot environment
variables from command-line. I use the
stable/testing/unstable/experimental menu entries mostly to test new
kernels so that I always can fallback to a working version if I hit a
critical bug :-)



More information about the community mailing list