public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/3] config: introduce a generic $bootcmd
Date: Thu, 31 Jul 2014 17:00:15 -0600	[thread overview]
Message-ID: <53DACA7F.2090806@wwwdotorg.org> (raw)
In-Reply-To: <CAPnjgZ1AWVG9cVu97mpd4F-q6=zpTLndL2TkP6X8EoNHLoZPUA@mail.gmail.com>

On 07/31/2014 04:03 PM, Simon Glass wrote:
> Hi Stephen,
>
> On 30 July 2014 23:37, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> From: Dennis Gilmore <dennis@ausil.us>
>>
>> This generic $bootcmd, and associated support macros, automatically
>> searches a defined set of storage devices (or network protocols) for an
>> extlinux configuration file or U-Boot boot script in various standardized
>> locations. Distros that install such a boot config file/script in those
>> standard locations will get easy-to-set-up booting on HW that enables
>> this generic $bootcmd.
>>
>> Boards can define the set of devices from which boot is attempted, and
>> the order in which they are attempted. Users may later customize this
>> set/order by edting $boot_targets.
>>
>> Users may interrupt the boot process and boot from a specific device
>> simply by executing e.g.:
>>
>> $ run bootcmd_mmc1
>> or:
>> $ run bootcmd_pxe
>>
>> This patch was originally written by Dennis Gilmore based on Tegra and
>> rpi_b boot scripts. I have made the following modifications since then:
>>
>> * Boards must define the BOOT_TARGET_DEVICES macro in order to specify
>>    the set of devices (and order) from which to attempt boot. If needed,
>>    we can define a default directly in config_distro_bootcmd.h.
>>
>> * Removed $env_import and related variables; nothing used them, and I
>>    think it's better for boards to pre-load an environment customization
>>    file using CONFIG_PREBOOT if they need.
>>
>> * Renamed a bunch of variables to suit my whims:-)
>>
>> Signed-off-by: Dennis Gilmore <dennis@ausil.us>
>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
>
> I do understand the desirability of getting something sorted in this
> area. But I am not thrilled with all the macro magic. How does this
> fit with the new Kconfig setup? It encourages a single setting for
> each variable, and I feel that the #ifdefs are not compatible with
> that.

I think Kconfig would be completely unsuitable for this kind of detailed 
configuration. Kconfig is great for enabling/disabling features, but 
applying it here feels too much to me. Equally, Kconfig is rather new in 
U-Boot. It'd be better to enable the feature so that distros can rely on 
it, and then refactor it later if required.

I do feel that actually implementing the boot script as U-Boot 
environment variables is much preferred over hard-coding any algorithm 
into U-Boot. That way, the user can easily modify the scripts as they 
desire. If we just put e.g. $boot_targets into the environment or DT, 
but none of the other scripts in this patch, the user would be much more 
severely restricted in how they could reconfigure the system to act how 
they want.

> Would it be possible to put the settings in the device tree somehow
> instead of CONFIGs?

At least part of the information isn't a HW description, but rather 
user-/vendor configuration. So, I don't think it's appropriate to put 
this into DT. Equally, very few U-Boot platforms currently use DT, and I 
certainly hope it doesn't become mandatory in any way. So, using DT for 
this purpose would severely limit the platforms where this feature was 
available.

> I did send a series some time ago that aimed to improve the default
> environment specification in config files - it was parked while
> Kconfig was going on, but we could revisit it.

I think we'd still need to use a C pre-processor (or some other code 
generation/templating tool) even with that scheme in place. So, I think 
the two are orthogonal.

  reply	other threads:[~2014-07-31 23:00 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-30 22:37 [U-Boot] [PATCH 1/3] config: introduce a generic $bootcmd Stephen Warren
2014-07-30 22:37 ` [U-Boot] [PATCH 2/3] ARM: tegra: use new " Stephen Warren
2014-08-08 16:02   ` Simon Glass
2014-08-10 22:23   ` [U-Boot] [U-Boot,2/3] " Tom Rini
2014-07-30 22:37 ` [U-Boot] [PATCH 3/3] ARM: rpi_b: " Stephen Warren
2014-08-08  0:18   ` Simon Glass
2014-08-10 22:23   ` [U-Boot] [U-Boot,3/3] " Tom Rini
2014-07-31  1:55 ` [U-Boot] [PATCH 1/3] config: introduce a " Marek Vasut
2014-07-31 10:47 ` Ian Campbell
2014-07-31 15:30   ` Stephen Warren
2014-07-31 22:03 ` Simon Glass
2014-07-31 23:00   ` Stephen Warren [this message]
2014-08-04 10:13     ` Simon Glass
2014-08-04 11:58       ` Dennis Gilmore
2014-08-04 18:04       ` Stephen Warren
2014-08-05 12:27         ` Simon Glass
2014-08-05 16:11           ` Stephen Warren
2014-08-06 16:01 ` Stephen Warren
2014-08-06 16:56   ` Simon Glass
2014-08-08  0:17     ` Simon Glass
2014-08-08 16:00       ` Stephen Warren
2014-08-09 15:02         ` Hans de Goede
2014-08-09 21:55           ` Tom Rini
2014-08-09 22:43           ` Jeroen Hofstee
2014-08-10  3:11             ` Stephen Warren
2014-08-10 16:53               ` Jeroen Hofstee
2014-08-11 16:53                 ` Stephen Warren
2014-08-11 17:51                   ` Jeroen Hofstee
2014-08-11 18:04                     ` Stephen Warren
2014-08-11 18:42                       ` Jeroen Hofstee
2014-08-11 18:55                         ` Stephen Warren
2014-08-11 19:19                           ` Tom Rini
2014-08-11 22:15                             ` Stephen Warren
2014-08-12 17:29                           ` Jeroen Hofstee
2014-08-12 17:46                             ` Stephen Warren
2014-08-12 20:29                             ` Dennis Gilmore
2014-08-10 17:14   ` Dennis Gilmore
2014-08-10 22:23 ` [U-Boot] [U-Boot,1/3] " Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53DACA7F.2090806@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox