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