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

Stephen Warren
2014-08-11T22:15:56Z

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.