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