[PATCH 0/3] arm: mvebu: Espressobin: Set default env values at runtime

Andre Heider
2021-01-12T08:18:44Z

Hi Pali,

On 11/01/2021 11:51, Pali Roh?r wrote:
> Hello Stefan and Andre!
>
> Could you please look at this patch series and tell me what do you think
> about it? If it is fine or needs to take different approach?

I like the idea very much, and I bet there're quite some boards which
could make good use of "immutable envvars".

The obvious review point is the filler thing and its dependency on
DEFAULT_ENV_IS_RW, which probably won't win a beauty contest :) Maybe a
nicer integration would help in getting it merged?

I don't think it would take too much effort, first thing that comes to mind:
- board provides list of immutable vars
- env_set_default() backs up these vars
- env_set_default() imports default_environment
- env_set_default() imports backup on top

The last step should be easy, see env_set_default_vars().

Maybe the first step can be solved with ENV_FLAGS_VAR, a new immutable
flag, and boards just making use of CONFIG_ENV_FLAGS_LIST_DEFAULT to
declare those. But I fail to find an example in-tree.

Thanks,
Andre

>
> On Wednesday 23 December 2020 12:21:27 Pali Roh?r wrote:
>> This patch series set default env values of $fdtfile and $ethNaddr for
>> Espressobin board at runtime.
>>
>> It fixes two main issues on Espressobin board that 'env default -a'
>> completely erases permanent board MAC addresses and also erase $fdtfile
>> variable which is needed for booting Linux kernel via distro boot.
>>
>> Lot of people were complaining about erasing permanent MAC addresses by
>> U-boot on this board and due to this issue some linux distributions
>> started using static hardcoded MAC addresses for all Espressobin boards
>> to workaround this issue. Apparently erase of MAC addresses or usage of
>> static hardcoded value caused more issues on network (e.g. inability to
>> connect two of these boards to the same network).
>>
>> Pali Roh?r (3):
>> env: Allow to set default_environment[] from board code via compile
>> option DEFAULT_ENV_IS_RW
>> arm: mvebu: Espressobin: Set default value for $fdtfile env variable
>> arm: mvebu: Espressobin: Set default value for $ethNaddr env variable
>>
>> board/Marvell/mvebu_armada-37xx/board.c | 41 ++++++++++++++++++++-----
>> include/configs/mvebu_armada-37xx.h | 17 +++++++++-
>> include/env_default.h | 2 ++
>> include/env_internal.h | 4 +++
>> 4 files changed, 56 insertions(+), 8 deletions(-)
>>
>> --
>> 2.20.1
>>