[U-Boot] [PATCH v4] tools/env: add posibility to inject configuration

Andreas Bießmann
2012-10-16T09:43:42Z

Hi Joe,

On 16.10.2012 02:40, Joe Hershberger wrote:
> Hi Andreas,
>
> On Tue, Jan 24, 2012 at 3:10 AM, Andreas Bie?mann
> <andreas.devel@googlemail.com> wrote:
>> From: Andreas Bie?mann <biessmann@corscience.de>
>>
>> If one want to use fw_printenv/fw_setenv in special variants (eg compiled in
>> MTD parameters without configuration file) he need to change the sources.
>> This patch add the posibillity to change the behaviour of fw_printenv by
>> defining a specific configuration header at compile time.
>> Therefore no need to patch the sources for special environment which fits
>> better into automated build environments.
>>
>> Signed-off-by: Andreas Bie?mann <biessmann@corscience.de>
>> ---
>> total: 0 errors, 0 warnings, 164 lines checked
>>
>> NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE
>>
>> 0001-tools-env-add-posibility-to-inject-configuration.patch has no obvious style problems and is ready for submission.
>>
>> changes since v1:
>> - use ?= style in Makefile as suggested by Mike
>> - remove c++ style comments in header
>>
>> changes since v2:
>> - place copied/generated fw_env_config.h in include/generated
>> - adopt tools/env/Makefile to new placement of fw_env_config.h
>>
>> changes since v3:
>> - add (C) header
>> - generate empty config.h for unconfigured U-Boot tree
>> - rebase
>>
>> tools/env/Makefile | 29 +++++++++++++++---
>> tools/env/fw_env.h | 32 +++-----------------
>> tools/env/fw_env_config.h.in | 66 ++++++++++++++++++++++++++++++++++++++++++
>> 3 files changed, 95 insertions(+), 32 deletions(-)
>> create mode 100644 tools/env/fw_env_config.h.in

<snip>

> Why not just have these settings directly be #define'd in the board
> config file? You can still leave the one default here that is
> actually used (CONFIG_FILE "/etc/fw_env.config") and make it
> overridable. The rest just need to be documented in the README.

This is correct but not the whole truth. It is not possible to setup a
default environment in the config file, but would be when someone
provides a proper header. However, if he can provide a header he could
also just use the header provided by his board config.

You see the whole story is not only about setup for mtd, but for
customizing this tool in a distributed environment. In the end I think
the proposed header is also not the best solution.

> This new scheme seems overly complicated and I don't know what it buys
> you over the normal place for configuration.

You are right, it is complicated. I think we should name this patch a
RFC and forget about it. Nevertheless there is a need to customize the
tool at build time (especially regarding default environment) and we
should think about how to change this tool.
AFAIR the discussion about environment at all is ongoing, hopefully this
can give some input. I must confess that I didn't work on that problem
for a long time, therefore I did not remember this patch.

Best regards

Andreas Bie?mann