09 Feb, 2017

2 commits

  • The previous commit ("add a new command to show .config contents")
    improves the basic infrastructure of "embed a compressed file into
    the U-Boot image, and print it by a command". The same pattern for
    the "license" command.

    This commit reworks the command to improve the following:

    [1] Improve log style

    Kbuild style log

    GZIP cmd/license_data.gz
    CHK cmd/license_data_gz.h
    UPD cmd/license_data_gz.h
    CHK cmd/license_data_size.h
    UPD cmd/license_data_size.h

    instead of the bare Make log:

    cat ./Licenses/gpl-2.0.txt | gzip -9 -c | \
    tools/bin2header license_gzip > ./include/license.h

    [2] Collect related code into the "cmd" directory

    Prior to this commit, the license.h was created by tools/Makefile,
    placed under the "include" directory, included from cmd/license.c,
    and deleted by the top-level Makefile. It is not a good idea to
    scatter related code.

    [3] Drop the fixed-malloc size LICENSE_MAX

    Just allocate the minimum required size of buffer because we know
    the size of the original gpl-2.0.txt.

    [4] Fix more issues

    Terminate the buffer with zero to prevent puts() from over-running.
    Add "static" to do_license.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     
  • 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
    Reviewed-by: Simon Glass

    Masahiro Yamada