[U-Boot] [PATCH 1/3] config: introduce a generic $bootcmd

Stephen Warren swarren at wwwdotorg.org
Tue Aug 12 00:15:56 CEST 2014


On 08/11/2014 01:19 PM, Tom Rini wrote:
> On Mon, Aug 11, 2014 at 12:55:43PM -0600, Stephen Warren wrote:
>> On 08/11/2014 12:42 PM, Jeroen Hofstee wrote:
>>> Hello Stephen.
>>>
>>> On 11-08-14 20:04, Stephen Warren wrote:
>>>> On 08/11/2014 11:51 AM, Jeroen Hofstee wrote:
>>>>> Hello Stephan
>>>>>
>>>>> On 11-08-14 18:53, Stephen Warren wrote:
>>>>>> On 08/10/2014 10:53 AM, Jeroen Hofstee wrote:
>>>>>>> Hello Stephan,
>>>>>>>
>>>>>>> On 10-08-14 05:11, Stephen Warren wrote:
>>>>>>>> The entire point of this series is to prevent distros from having to
>>>>>>>> install bootloader-specific boot configuration files.
>>>>>>>
>>>>>>> I fail to see why this is something to pursue. Since the distro knows
>>>>>>> the boot path, why should u-boot be polling all possible options?
>>>>>>
>>>>>> This patch series allows U-Boot to find the OS and boot it. U-Boot is
>>>>>> searching for some kind of boot configuration file.
>>>>>>
>>>>>> This part of the process is the same as the BIOS searching all known
>>>>>> possible boot devices for a partition marked bootable, and with a
>>>>>> valid MBR. Or, it's the same as UEFI searching all possible boot
>>>>>> devices for whatever config file or boot binary is mandated by UEFI.
>>>>>
>>>>> Not in my mind, I am not against scanning the possible
>>>>> boot devices, on the contrary, I am trying to add booting
>>>>> the userland from usb instead of mmc for the rpi_b.
>>>>
>>>> The following will tell U-Boot to only search USB for extlinux.conf.
>>>>
>>>> setenv boot_targets usb
>>>>
>>>> (you can put this into /uEnv.txt on the SD card if you want to avoid
>>>> editing U-Boot source code to make this change; there's no persistent
>>>> environment storage on the Pi, at least at the moment)
>>>>
>>>
>>> I am going to give up soon commenting on this. It is
>>> applied anyway. My point is that I am making an image
>>> without an extlinux.conf, I know that, I could tell it in a
>>> boot.scr but yet this scripts now insist on searching for
>>> extlinux.conf.
>>
>> That's because you are an individual crafting your own installation
>> manually. The whole point of this feature is to allow distros to be
>> completely generic, i.e. they work in the exact same way on all HW
>> (that supports this feature, which hopefully will be most ARM boards
>> soon...).
>
> I suspect the problem here is that you're mentally thinking "... Linux
> ..." and Jeroen's use case is mainly "... Not Linux ...".
>
> So this is a step in the right direction, which is why I applied it, but
> it may need a little tweaking to make it less noisy to support *BSD or
> VxWorks or ..., which are real users out there for U-Boot and we don't
> want to forget them.

FWIW, it'd be easy enough to add an extra for loop into 
$scan_dev_for_boot so that rather than hard-coding scanning for extlinux 
first, then scanning for boot.scr, it was configurable the set and/or 
order it tried them. The user could then edit this in the environment. 
Just like $bootcmd reads the set of devices from a variable.

One could even have a few more defines feed into 
config_distro_defaults.h that define which types to support, so you 
could completely remove e.g. extlinux.conf searching from some board 
configurations if you really wanted, although I think it'd be best to 
just leave all the options available everywhere, at least until the time 
when we add some third option that's not generally applicable.


More information about the U-Boot mailing list