[U-Boot] [PATCH v2 0/9] Unified command execution in one place

Simon Glass sjg at chromium.org
Thu Jan 12 05:37:00 CET 2012


Hi,

On Sat, Dec 10, 2011 at 10:43 AM, Simon Glass <sjg at chromium.org> wrote:
> 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

Does any of the maintainers feel inclined to pick up these patches? It
still seems to rebase cleanly against master, so it might be ok as is,
but happy to resend if needed.

Regards,
Simon

>
>  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