08 Oct, 2013

1 commit

  • As documented, almost all U-Boot commands expect numbers to be entered
    in hexadecimal input format. (Exception: for historical reasons, the
    "sleep" command takes its argument in decimal input format.)

    This rule was broken for the "load" command; for details please see
    especially commits 045fa1e "fs: add filesystem switch libary,
    implement ls and fsload commands" and 3f83c87 "fs: fix number base
    behaviour change in fatload/ext*load". In the result, the load
    command would always require an explicit "0x" prefix for regular
    (i. e. base 16 formatted) input.

    Change this to use the standard notation of base 16 input format.
    While strictly speaking this is a change of the user interface, we
    hope that it will not cause trouble. Stephen Warren comments (see
    [1]):

    I suppose you can change the behaviour if you want; anyone
    writing "0x..." for their values presumably won't be
    affected, and if people really do assume all values in U-Boot
    are in hex, presumably nobody currently relies upon using
    non-prefixed values with the generic load command, since it
    doesn't work like that right now.

    [1] http://article.gmane.org/gmane.comp.boot-loaders.u-boot/171172

    Acked-by: Tom Rini
    Acked-by: Stephen Warren
    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

24 Jul, 2013

1 commit


05 Nov, 2012

2 commits

  • When the generic filesystem load command "fsload" was written, I felt
    that "load" was too generic of a name for it, since many other similar
    commands already existed. However, it turns out that there is already
    an "fsload" command, so that name cannot be used. Rename the new
    "fsload" to plain "load" to avoid the conflict. At least anyone who's
    used a Basic interpreter should feel familiar with the name!

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • Commit 045fa1e "fs: add filesystem switch libary, implement ls and
    fsload commands" unified the implementation of fatload and ext*load
    with the new command fsload. However, this altered the interpretation
    of command-line numbers from always being base-16, to requiring a "0x"
    prefix for base-16 numbers. Enhance do_fsload() to allow commands to
    specify which base to use.

    Use base 0, thus requiring a "0x" prefix for the new fsload command.
    This feels much cleaner than assuming base 16.

    Use base 16 for the pre-existing fatload and ext*load to prevent a
    change in behaviour.

    Use base 16 exclusively for the loadaddr environment variable, since
    that variable is interpreted in multiple places, so we don't want the
    behaviour to change.

    Update command help text to make it clear where numbers are assumed to
    be hex, and where an explicit "0x" prefix is required.

    Signed-off-by: Stephen Warren
    Reviewed-by: Benoît Thébaudeau

    Stephen Warren
     

30 Oct, 2012

1 commit

  • Implement "ls" and "fsload" commands that act like {fat,ext2}{ls,load},
    and transparently handle either file-system. This scheme could easily be
    extended to other filesystem types; I only didn't do it for zfs because
    I don't have any filesystems of that type to test with.

    Replace the implementation of {fat,ext[24]}{ls,load} with this new code
    too.

    Signed-off-by: Stephen Warren

    Stephen Warren
     

10 Aug, 2012

1 commit


07 Mar, 2012

1 commit


25 Jul, 2010

1 commit

  • Lots of code use this construct:

    cmd_usage(cmdtp);
    return 1;

    Change cmd_usage() let it return 1 - then we can replace all these
    ocurrances by

    return cmd_usage(cmdtp);

    This fixes a few places with incorrect return code handling, too.

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

05 Jul, 2010

1 commit

  • The hush shell dynamically allocates (and re-allocates) memory for the
    argument strings in the "char *argv[]" argument vector passed to
    commands. Any code that modifies these pointers will cause serious
    corruption of the malloc data structures and crash U-Boot, so make
    sure the compiler can check that no such modifications are being done
    by changing the code into "char * const argv[]".

    This modification is the result of debugging a strange crash caused
    after adding a new command, which used the following argument
    processing code which has been working perfectly fine in all Unix
    systems since version 6 - but not so in U-Boot:

    int main (int argc, char **argv)
    {
    while (--argc > 0 && **++argv == '-') {
    /* ====> */ while (*++*argv) {
    switch (**argv) {
    case 'd':
    debug++;
    break;
    ...
    default:
    usage ();
    }
    }
    }
    ...
    }

    The line marked "====>" will corrupt the malloc data structures and
    usually cause U-Boot to crash when the next command gets executed by
    the shell. With the modification, the compiler will prevent this with
    an
    error: increment of read-only location '*argv'

    N.B.: The code above can be trivially rewritten like this:

    while (--argc > 0 && **++argv == '-') {
    char *arg = *argv;
    while (*++arg) {
    switch (*arg) {
    ...

    Signed-off-by: Wolfgang Denk
    Acked-by: Mike Frysinger

    Wolfgang Denk
     

29 Jul, 2009

1 commit

  • Make the ext2load command return 0 on success (instead of the file
    length).

    Also fix output format (get rid of random newlines) and some coding
    style issues (long lines etc.).

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

13 Jun, 2009

1 commit

  • Many of the help messages were not really helpful; for example, many
    commands that take no arguments would not print a correct synopsis
    line, but "No additional help available." which is not exactly wrong,
    but not helpful either.

    Commit ``Make "usage" messages more helpful.'' changed this
    partially. But it also became clear that lots of "Usage" and "Help"
    messages (fields "usage" and "help" in struct cmd_tbl_s respective)
    were actually redundant.

    This patch cleans this up - for example:

    Before:
    => help dtt
    dtt - Digital Thermometer and Thermostat

    Usage:
    dtt - Read temperature from digital thermometer and thermostat.

    After:
    => help dtt
    dtt - Read temperature from Digital Thermometer and Thermostat

    Usage:
    dtt

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

28 Apr, 2009

2 commits

  • Get rid of these warnings:

    cmd_ext2.c:247: warning: format '%ld' expects type 'long int', but argument 2 has type 'int'
    cmd_ext2.c:248: warning: format '%lX' expects type 'long unsigned int', but argument 3 has type 'int'

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     
  • The filelen should be signed type, not unsigned type.
    otherwise, The condition as below never take.
    if (filelen < 0)

    Signed-off-by: Gao Guanhua
    Signed-off-by: Dave Liu

    Gao Guanhua
     

28 Jan, 2009

2 commits


19 Oct, 2008

2 commits


21 Nov, 2007

1 commit


09 Jul, 2007

1 commit


04 Jul, 2007

1 commit


20 Feb, 2007

1 commit


17 Oct, 2005

1 commit


14 Oct, 2005

1 commit


13 Oct, 2005

1 commit


04 Mar, 2005

1 commit


04 Feb, 2005

1 commit


17 Dec, 2004

1 commit