[U-Boot] [PATCH v2 0/9] Unified command execution in one place
Simon Glass
sjg at chromium.org
Sat Dec 10 19:43:52 CET 2011
At present two parsers have similar code to execute commands. Also
cmd_usage() is called all over the place. This series adds a single
function which processes commands called cmd_process().
This new function understands return codes, and in particular
CMD_RET_USAGE to indicate a usage error. So rather than calling
cmd_usage() themselves, the command handlers can just return this
error.
There appears to be a run_command2() which is used to run commands
with the selected parser. This series changes this in two separate
steps to just run_command(), and renames the old run_command() to
builtin_run_command(). No one should call this outside main.c since
if the hush parser is being used it is wrong to call it. The
built-in parser code could move into a separate file perhaps in a
future patch.
The overall series reduces code size on ARM by about 1KB on
my ~160KB U-Boot text region when the hush parser is used, and around
60 bytes when it isn't.
As an aside the only user of parse_line() is fsl_ddr_interactive()
which seems to have its own command line interface which operates
before DRAM is set up. Do I have this right? Is there no way this
could be done later from a normal U-Boot command?
(I have run this through MAKEALL and it seems clean)
Changes in v2:
- Fix minor errors one of which created a warning
- Squash i2c patch into the common/ patch
Simon Glass (9):
Remove CMD_PXE's static on run_command()
Rename run_command() to builtin_run_command()
Rename run_command2() to run_command()
Stop using builtin_run_command()
Don't include standard parser if hush is used
Create a single cmd_call() function to handle command execution
Remove interleave of non-U-Boot code in hush
Add cmd_process() to process commands in one place
Convert cmd_usage() calls in common to use a return value
arch/arm/cpu/arm926ejs/kirkwood/cpu.c | 7 +--
board/esd/common/cmd_loadpci.c | 2 +-
board/esd/du440/du440.c | 2 +-
common/cmd_bedbug.c | 6 +-
common/cmd_bmp.c | 6 +-
common/cmd_boot.c | 2 +-
common/cmd_bootm.c | 10 +---
common/cmd_cache.c | 4 +-
common/cmd_dataflash_mmc_mux.c | 2 +-
common/cmd_date.c | 3 +-
common/cmd_dcr.c | 8 +-
common/cmd_df.c | 2 +-
common/cmd_eeprom.c | 2 +-
common/cmd_ext2.c | 4 +-
common/cmd_fdc.c | 2 +-
common/cmd_fdos.c | 2 +-
common/cmd_fdt.c | 14 ++--
common/cmd_fitupd.c | 2 +-
common/cmd_flash.c | 14 ++--
common/cmd_fpga.c | 4 +-
common/cmd_gpio.c | 2 +-
common/cmd_i2c.c | 32 +++++-----
common/cmd_ide.c | 10 ++--
common/cmd_irq.c | 2 +-
common/cmd_itest.c | 2 +-
common/cmd_led.c | 6 +-
common/cmd_load.c | 2 +-
common/cmd_log.c | 4 +-
common/cmd_md5sum.c | 2 +-
common/cmd_mdio.c | 2 +-
common/cmd_mem.c | 22 ++++----
common/cmd_mfsl.c | 10 ++--
common/cmd_mgdisk.c | 2 +-
common/cmd_mii.c | 4 +-
common/cmd_misc.c | 2 +-
common/cmd_mmc.c | 14 ++--
common/cmd_mmc_spi.c | 3 +-
common/cmd_mp.c | 8 +-
common/cmd_mtdparts.c | 2 +-
common/cmd_nand.c | 6 +-
common/cmd_net.c | 6 +-
common/cmd_nvedit.c | 22 ++++----
common/cmd_onenand.c | 12 ++--
common/cmd_otp.c | 2 +-
common/cmd_pci.c | 2 +-
common/cmd_portio.c | 4 +-
common/cmd_pxe.c | 10 ++--
common/cmd_reiser.c | 4 +-
common/cmd_sata.c | 8 +-
common/cmd_scsi.c | 15 +++--
common/cmd_setexpr.c | 2 +-
common/cmd_sf.c | 2 +-
common/cmd_sha1sum.c | 2 +-
common/cmd_source.c | 2 +-
common/cmd_strings.c | 2 +-
common/cmd_time.c | 4 +-
common/cmd_ubi.c | 4 +-
common/cmd_ubifs.c | 10 ++--
common/cmd_unzip.c | 2 +-
common/cmd_usb.c | 6 +-
common/command.c | 60 ++++++++++++++++++++
common/hush.c | 73 +++++++-----------------
common/main.c | 98 +++++++++++----------------------
include/command.h | 24 ++++++++
include/common.h | 5 +-
65 files changed, 311 insertions(+), 305 deletions(-)
--
1.7.3.1
More information about the U-Boot
mailing list