[U-Boot] [PATCH v2 2/3] cmd: add a new command "config" to show .config contents

Masahiro Yamada yamada.masahiro at socionext.com
Mon Feb 6 15:59:30 UTC 2017


Hi Simon,

2017-02-07 0:33 GMT+09:00 Simon Glass <sjg at chromium.org>:
> Hi Masahiro,
>
> On 29 January 2017 at 18:12, Masahiro Yamada
> <yamada.masahiro at socionext.com> wrote:
>> This feature is inspired by /proc/config.gz of Linux.  In Linux,
>> if CONFIG_IKCONFIG is enabled, the ".config" file contents are
>> embedded in the kernel image.  If CONFIG_IKCONFIG_PROC is also
>> enabled, the ".config" contents are exposed to /proc/config.gz.
>> Users can do "zcat /proc/config.gz" to check which config options
>> are enabled on the running kernel image.
>>
>> The idea is almost the same here; if CONFIG_CMD_CONFIG is enabled,
>> the ".config" contents are compressed and saved in the U-Boot image,
>> then printed by the new command "config".
>>
>> The usage is quite simple.  Enable CONFIG_CMD_CONFIG, then run
>>  > config
>> from the command line interface.  The ".config" contents will be
>> printed on the console.
>>
>> This feature increases the U-Boot image size by about 4KB (this is
>> mostly due to the gzip-compressed .config file).  By default, it is
>> enabled only for Sandbox because we do not care about the memory
>> footprint on it.  Of course, this feature is architecture agnostic,
>> so you can enable it on any board if the image size increase is
>> acceptable for you.
>>
>> Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
>> ---
>>
>> Changes in v2: None
>>
>>  Kconfig            |  2 ++
>>  Makefile           | 12 +++++++-----
>>  cmd/.gitignore     |  3 +++
>>  cmd/Kconfig        | 12 ++++++++++++
>>  cmd/Makefile       | 22 ++++++++++++++++++++++
>>  cmd/config.c       | 44 ++++++++++++++++++++++++++++++++++++++++++++
>>  scripts/.gitignore |  1 +
>>  scripts/Kconfig    |  2 ++
>>  scripts/Makefile   |  4 ++++
>>  9 files changed, 97 insertions(+), 5 deletions(-)
>>  create mode 100644 cmd/.gitignore
>>  create mode 100644 cmd/config.c
>>  create mode 100644 scripts/Kconfig
>
> Reviewed-by: Simon Glass <sjg at chromium.org>
>
> But I wonder why we shouldn't use a mechanism like cmd_dt_S_dtb in
> Makefile.lib to embed the file?

I thought of this when I saw the implementation
of kernel/configs.c of Linux.

My first guess was, they wanted to implement it
in an arch-independent way.

The cmd_dt_S_dtb mechanism also seems
(mostly) arch-independent, but I am not 100% sure.

For example, underscore must the added/stripped
for conversion between C and assembly for Blackfin architecture.

One more reason is, I think, kernel/configs.c was added
in older days than the Device Tree.

-- 
Best Regards
Masahiro Yamada


More information about the U-Boot mailing list