[U-Boot] [PATCH] wandboard: add pxe support, set default boot command like highbank
Rob Herring
robherring2 at gmail.com
Thu Aug 1 19:19:13 CEST 2013
On 08/01/2013 03:53 AM, Stefano Babic wrote:
> Hi Dennis,
>
> On 01/08/2013 01:27, Robert Nelson wrote:
>
>>> kernel_boot=echo Trying kernel...; ${fs}load ${devtype} ${devnum}
>>> ${kernel_addr_r} ${prefix}vmlinuz && ${fs}load ${devtype} ${devnum}
>>> ${ramdisk_addr_r} ${prefix}initrd.img && bootz ${kernel_addr_r}
>>> ${ramdisk_addr_r}:${filesize} ${fdt_addr}
>>> script_boot=echo Trying script images...; for script in
>>> ${boot_scripts}; do ${fs}load ${devtype} ${devnum} ${script_addr}
>>> ${prefix}${script} && echo Executing ${prefix}${script}... && source
>>> ${script_addr}; done;
>>> env_boot=echo Trying environment file...; ${fs}load ${devtype}
>>> ${devnum} ${script_addr} ${prefix}uEnv.txt && Executing
>>> ${prefix}uEnv.txt... && env import -t ${script_addr} ${filesize}};
>>
>> Guys, this is just silly.. Your using both uEnv.txt/boot.scr scripts
>> by default, which you could use to "hide" all this extra stuff in a
>> text file on the boot drive, that way mainline u-boot doesn't have to
>> be patched for every little change. ;)
>>
>> I know it's bikeshedding, but most boards can be converted to just:
>>
>> #define CONFIG_BOOTCOMMAND \
>> "mmc dev ${mmcdev};" \
>> "if mmc rescan; then " \
>> "echo SD/MMC found on device ${mmcdev};" \
>> "if run loadbootenv; then " \
>> "run importbootenv;" \
>> "fi;" \
>> "if test -n $uenvcmd; then " \
>> "echo Running uenvcmd ...;" \
>> "run uenvcmd;" \
>> "fi;" \
>> "if run loadsomefailsafedefault; then " \
>> "run mmcboot;" \
>> "fi;" \
>> "fi;"
>> #endif
That really works great on boards that don't have SD...
>>
>
> Right - the meaning of CONFIG_EXTRA_ENV_SETTINGS is to have a minimal
> default environment, allowing the user to extend it to a full blown
> adding whatever he wants. However, in the last times I see that the
> meaning is moving to *the environment*. There is something wrong, also
> because, as Robert says, each small change require to patch u-boot. But
> then, why do you need the environment at all ?
>
> And the setup is then suitable for a strict range of applications, but
> not all.
You both are missing the point. This patch doesn't address the problem,
but does highlight it. The distros want to get out of having to know the
u-boot environment details for every single board and need some level of
standardization across platforms. The distros should only have to
specify "boot the kernel at path/name X on device Y." They should not
need to know what address to load the kernel to, but only that
$kernel_addr_r is already setup. Variables are the first step. The
second step is standardizing the boot commands.
Rob
More information about the U-Boot
mailing list