envfs: provide an intentional way to ignore an existing external environment

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Thu Jul 31 00:14:25 PDT 2014


Hello,

On Wed, Jul 30, 2014 at 12:20:03PM +0200, Juergen Borleis wrote:
> Some use cases are using the barebox's built-in environment only, but still
> provide an external environment store to save a modified environment (for
> development purposes for example).
> In this case barebox works as intended even if the external store is empty
> and thus invalid. But even if it is an intentional behavior, barebox emits an
> error message due to an invalid content in the external store (CRC error).
> 
> Because this error message will confuse a new user (how to know if this error
> message is important or can be ignored?) and it is a bad style to ship
> intentionally working systems with error messages, the following change set
> adds an "empty environment" feature to barebox.
> 
> This change set adds a new option to the saveenv command which will write an
> empty environment without content. But it will be marked as a placeholder and
> thus should be "ignored" and barebox falls back to its built-in default
> environment.
> 
> With this feature we now get:
> 
>  - if the environment store is empty, we still see an error message and
>    barebox still falls back to its built-in default environment
>  - if the environment store contains the new placeholder environment, there
>    will be no error message but barebox falls back to its built-in default
>    environment as well ("intentional behaviour")
>  - if the environment store contains a regular environment (modified compared
>    to the built-in one) barebox will continue to use it and ignores its
>    built-in default environment instead.

Compared with storing the default environment in the external store the
only difference is that you don't need to modify it if you change the
internal one, right?

I wonder what the targeted use case is. A rescue barebox to repair a
borken bootloader and/or environment? If so I'd implemented a different
solution: To make the rescue barebox completely independant from the
state of the hardware, introduce a config symbol (say NO_AUTOLOAD_ENV)
that makes barebox only use the default environment. With this you could
still explicitly load and save the external env.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the barebox mailing list