
Hi Simon,
2017-02-07 0:33 GMT+09:00 Simon Glass sjg@chromium.org:
Hi Masahiro,
On 29 January 2017 at 18:12, Masahiro Yamada yamada.masahiro@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@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@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.