Re: default environment append from kconfig

2022-08-10 Thread Simon Glass
Hi Tom,

On Wed, 10 Aug 2022 at 08:36, Tom Rini  wrote:
>
> On Tue, Aug 09, 2022 at 01:02:24PM +0200, Rasmus Villemoes wrote:
> > On 09/08/2022 12.47, Francesco Dolcini wrote:
> > > Hello all,
> > > is there any kconfig mechanism in u-boot to append environment variable 
> > > to the
> > > default one?
> > >
> >
> > Well, despite the name, CONFIG_EXTRA_ENV_SETTINGS is not settable via
> > kconfig, but only from board header file. And while it works, it's
> > rather cumbersome to maintain that macro expanding to a string with all
> > the embedded \0 and the required \ continuations etc.
>
> I just want to chime in here to note that the biggest blocker to
> removing CONFIG_EXTRA_ENV_SETTINGS and migrating it to board.env files
> is how to handle, exactly, distroboot support.  Aside from that,

I will get back to that before long.

> whatever is done in CONFIG_EXTRA_ENV_SETTINGS can be done in the .env
> file (unless there's some other fancy macro work being done that I've
> missed).
>
> --
> Tom

Regards,
SImon


Re: default environment append from kconfig

2022-08-10 Thread Tom Rini
On Wed, Aug 10, 2022 at 05:09:45PM +0200, Francesco Dolcini wrote:
> On Wed, Aug 10, 2022 at 10:34:26AM -0400, Tom Rini wrote:
> > On Tue, Aug 09, 2022 at 12:47:39PM +0200, Francesco Dolcini wrote:
> > > Hello all,
> > > is there any kconfig mechanism in u-boot to append environment variable 
> > > to the
> > > default one?
> > > 
> > > I am aware of CONFIG_USE_DEFAULT_ENV_FILE, but this will completely
> > > replace it, looking into the code I was not able to find anything, but I
> > > wonder if something from this
> > > https://lore.kernel.org/all/20211022030852.1986718-1-...@chromium.org/
> > > can be used.
> > 
> > Yes, you can use the series above, which has been merged for some time,
> > to append to the environment via board/..//.env and you
> > can look at the existing .env files for examples of how it works.
> Am I wrong or this just override the whole environment? My need here is
> to just add|override some env variables to the default env to an in-tree
> u-boot board from an out-of-tree configuration.
> 
> Think about a specific network or boot configuration, for example.

It doesn't override the whole environment. As of the link you posted, it
did override all of (or rather, conflicted with)
CONFIG_EXTRA_ENV_SETTINGS, but I changed that more recently as it was
hindering adoption of the feature overall.

-- 
Tom


signature.asc
Description: PGP signature


Re: default environment append from kconfig

2022-08-10 Thread Tom Rini
On Tue, Aug 09, 2022 at 01:02:24PM +0200, Rasmus Villemoes wrote:
> On 09/08/2022 12.47, Francesco Dolcini wrote:
> > Hello all,
> > is there any kconfig mechanism in u-boot to append environment variable to 
> > the
> > default one?
> > 
> 
> Well, despite the name, CONFIG_EXTRA_ENV_SETTINGS is not settable via
> kconfig, but only from board header file. And while it works, it's
> rather cumbersome to maintain that macro expanding to a string with all
> the embedded \0 and the required \ continuations etc.

I just want to chime in here to note that the biggest blocker to
removing CONFIG_EXTRA_ENV_SETTINGS and migrating it to board.env files
is how to handle, exactly, distroboot support.  Aside from that,
whatever is done in CONFIG_EXTRA_ENV_SETTINGS can be done in the .env
file (unless there's some other fancy macro work being done that I've
missed).

-- 
Tom


signature.asc
Description: PGP signature


Re: default environment append from kconfig

2022-08-10 Thread Tom Rini
On Tue, Aug 09, 2022 at 12:47:39PM +0200, Francesco Dolcini wrote:
> Hello all,
> is there any kconfig mechanism in u-boot to append environment variable to the
> default one?
> 
> I am aware of CONFIG_USE_DEFAULT_ENV_FILE, but this will completely
> replace it, looking into the code I was not able to find anything, but I
> wonder if something from this
> https://lore.kernel.org/all/20211022030852.1986718-1-...@chromium.org/
> can be used.

Yes, you can use the series above, which has been merged for some time,
to append to the environment via board/..//.env and you
can look at the existing .env files for examples of how it works.

-- 
Tom


signature.asc
Description: PGP signature


Re: default environment append from kconfig

2022-08-09 Thread Rasmus Villemoes
On 09/08/2022 12.47, Francesco Dolcini wrote:
> Hello all,
> is there any kconfig mechanism in u-boot to append environment variable to the
> default one?
> 

Well, despite the name, CONFIG_EXTRA_ENV_SETTINGS is not settable via
kconfig, but only from board header file. And while it works, it's
rather cumbersome to maintain that macro expanding to a string with all
the embedded \0 and the required \ continuations etc.

> I am aware of CONFIG_USE_DEFAULT_ENV_FILE, but this will completely
> replace it, looking into the code I was not able to find anything, 

You could select CONFIG_ENV_IMPORT_FDT, then populate the
/config/environment/ devicetree node with the key/value pairs you want.

This can for example be done via the -u-boot.dtsi file, or if
you're using an in-tree board with in-tree .dts, and just want to
maintain your own .config and environment out of tree, you could
additionally set CONFIG_DEVICE_TREE_INCLUDES to point at a .dtsi which
just has that

/ {
  config {
environment {
  foo = "bar";
};
  };
};

(that was exactly a use case I had in mind for
CONFIG_DEVICE_TREE_INCLUDES, as can be seen in the commit log for
a77f468099).

Rasmus