[PATCH v3 00/32] Tidy up use of CONFIG_CMDLINE

Simon Glass sjg at chromium.org
Tue Oct 17 00:27:51 CEST 2023


It should be possible to disable CONFIG_CMDLINE and have all commands
and related functionality dropped from U-Boot. This is useful when
trying to reduce the size of U-Boot.

Recent changes have stopped this from working.

This series repairs the feature for sandbox and adds a test to stop it
breaking again.

Note that quite a lot of functionality is lost if CONFIG_CMDLINE is
disabled, e.g. networking and most booting options. Further work is
needed to make the option more generally useful.

Changes in v3:
- Reword commit message slightly
- Add an explation as to why this patch is here
- Fix 'ut' typo
- Just drop the condition instead
- Add new patch to rearrange the Kconfig for CMD_BOOTEFI_BOOTMGR
- Add new patch with a Kconfig for command-line entry
- Add new patch with a Kconfig for command-line entry
- Reorder the Kconfig options a little
- Add new patch to tidy up semicolon after command macros
- Rebase on Tom's LONGHELP series
- Correct 'of' typo

Changes in v2:
- Move AUTOBOOT_USE_MENUKEY under AUTOBOOT
- Change this to use a Kconfig dependency instead of code failing
- Adjust the depends on the commands, instead of EFI_LOADER
- Add new patch to update EFI_LOADER to depend on DM_ETH
- Add new patch to drop discarding of command linker-lists
- Add new patch to unify the U_BOOT_ENV_LOCATION conditions

Simon Glass (32):
  buildman: Use oldconfig when adjusting the config
  bootstd: Correct dependencies on CMDLINE
  autoboot: Correct dependencies on CMDLINE
  cmd: Add a few more dependencies on CMDLINE
  test: Make UNIT_TEST depend on CMDLINE
  sifive: Drop an unnecessary #ifdef
  fastboot: Declare a dependency on CMDLINE
  cli: Always build cli_getch
  cmd: Use an #ifdef around run_commandf()
  Move bootmenu_conv_key() into its own file
  pxe: Depend on CMDLINE
  env: Split out non-command code into a new file
  console: Move SYS_PBSIZE into common/
  bootm: Allow building when cleanup functions are missing
  fdt: Move working_fdt into fdt_support
  net: Depend on CONFIG_CMDLINE
  log: Allow use without CONFIG_CMDLINE
  video: Allow use without CONFIG_CMDLINE
  video: Dont require the font command
  efi: Make commands depend on CMDLINE
  efi: Rearrange the Kconfig for CMD_BOOTEFI_BOOTMGR
  efi: Update EFI_LOADER to depend on DM_ETH
  cli: Split command-line-editing into its own file
  Add a new Kconfig for command-line entry
  Add a new Kconfig for command-line history
  sandbox: Disable CONFIG_DISTRO_DEFAULTS
  cmd: Make all commands depend on CMDLINE
  sandbox: Avoid requiring cmdline
  arm: x86: Drop discarding of command linker-lists
  mmc: env: Unify the U_BOOT_ENV_LOCATION conditions
  treewide: Tidy up semicolon after command macros
  sandbox: Add a test for disabling CONFIG_CMDLINE

 arch/Kconfig                       |  11 +-
 arch/arm/cpu/u-boot.lds            |   3 -
 arch/arm/lib/bootm.c               |   2 +
 arch/x86/cpu/u-boot-64.lds         |   4 -
 arch/x86/cpu/u-boot-spl.lds        |   4 -
 arch/x86/cpu/u-boot.lds            |   4 -
 board/freescale/common/vid.c       |   2 +-
 board/xilinx/common/fru.c          |   2 +-
 board/xilinx/versal/cmds.c         |   2 +-
 board/xilinx/zynqmp/cmds.c         |   2 +-
 boot/Kconfig                       |  58 ++--
 boot/bootm.c                       |  10 +-
 boot/fdt_support.c                 |   5 +
 cmd/Kconfig                        |  50 ++--
 cmd/Makefile                       |   2 +-
 cmd/btrfs.c                        |   2 +-
 cmd/eeprom.c                       |   2 +-
 cmd/ext2.c                         |   4 +-
 cmd/fdt.c                          |   5 -
 cmd/fs.c                           |   8 +-
 cmd/nvedit.c                       | 122 +--------
 cmd/pinmux.c                       |   2 +-
 cmd/qfw.c                          |   2 +-
 common/Kconfig                     |  12 +
 common/Makefile                    |  10 +-
 common/cli.c                       |   2 +
 common/cli_cread.c                 | 407 +++++++++++++++++++++++++++++
 common/cli_getch.c                 |   1 +
 common/cli_readline.c              | 384 +--------------------------
 common/log.c                       |   4 +-
 common/menu.c                      |  40 ---
 common/menu_key.c                  |  49 ++++
 configs/sandbox64_defconfig        |   1 -
 configs/sandbox_defconfig          |   1 -
 configs/sandbox_flattree_defconfig |   1 -
 configs/sandbox_noinst_defconfig   |   1 -
 configs/sandbox_spl_defconfig      |   1 -
 configs/sandbox_vpl_defconfig      |   1 -
 drivers/fastboot/Kconfig           |   1 +
 drivers/video/Kconfig              |   2 +-
 drivers/video/console_truetype.c   |   4 +
 env/Makefile                       |   1 +
 env/env_set.c                      | 132 ++++++++++
 env/mmc.c                          |   2 +-
 include/bootm.h                    |  15 +-
 include/cli.h                      |  31 +++
 include/command.h                  |   2 +-
 include/env_internal.h             |  23 ++
 include/k210/pll.h                 |   2 +-
 lib/efi_loader/Kconfig             |   7 +-
 lib/efi_loader/Makefile            |   2 +-
 net/Kconfig                        |   1 +
 test/Kconfig                       |   1 +
 test/py/tests/test_sandbox_opts.py |  20 ++
 tools/buildman/builder.py          |   2 +-
 tools/buildman/builderthread.py    |   6 +
 tools/buildman/func_test.py        |   4 +-
 57 files changed, 833 insertions(+), 648 deletions(-)
 create mode 100644 common/cli_cread.c
 create mode 100644 common/menu_key.c
 create mode 100644 env/env_set.c
 create mode 100644 test/py/tests/test_sandbox_opts.py

-- 
2.42.0.655.g421f12c284-goog



More information about the U-Boot mailing list