On Thu, 28 Oct 2021 21:17:41 -0600 Simon Glass <s...@chromium.org> wrote:
> Hi Marek, > > On Wed, 27 Oct 2021 at 21:28, Marek Behún <ka...@kernel.org> wrote: > > > > From: Marek Behún <marek.be...@nic.cz> > > > > The default_environment[] buffer is built at compile time, but sometimes > > it makes sense for some default environment variables to be determined > > at runtime, for example: > > - one board code may support different boards, and needs that > > fdtfile, board, board_name > > are set appropriately when command > > env default -a > > is executed > > - some boards may want to prohibit the > > env default -a > > command to remove device MAC addresses stored in > > ethaddr, ethNaddr. > > This is the case for the ESPRESSObin board code, for example, where > > currently the board_late_init() function rewrites the default > > environment array to achieve this. > > > > Add a new board specific function, > > > > const char *board_special_default_env(unsigned i, const char **name); > > > > which returns the value of i-th board special default environemnt > > variable, while storing it's name to *name. > > > > Add default weak implementation of this functions returning NULL. > > > > Add code to default environemnt handlers in env/common.c, which iterate > > these special board default environment variables and get it's values in > > precedence to values in the default_environment[] buffer. > > > > Signed-off-by: Marek Behún <marek.be...@nic.cz> > > --- > > env/common.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++-- > > 1 file changed, 96 insertions(+), 3 deletions(-) > > What do you think about using a sysinfo driver for this? There are > already a lot of weak functions in U-Boot. I confess I am looking at sysinfo API for the first time just now. It seems like a reasonable thing, but how to combine with default environment for this? The thing is that Pali's code for ESPRESSObin needs to prohibit deleting the ethaddrs from env with "env default -a", because there were issues with the mac address being lost... Marek