01 Nov, 2013

1 commit


15 Oct, 2013

1 commit


06 Sep, 2013

1 commit


24 Jul, 2013

1 commit


17 Jul, 2013

1 commit


02 Jul, 2013

1 commit

  • Commit 35fc84fa1ff51e15ecd3e464dac87eb105ffed30 broke bootm on avr32. It
    requires to call do_bootm_linux() with flag set to BOOTM_STATE_OS_PREP before
    calling it again with flag set to BOOTM_STATE_OS_GO.
    Fix this by allowing flag set to BOOTM_STATE_OS_PREP, this however will
    require a complete refactoring later on.

    Signed-off-by: Andreas Bießmann
    [trini: Apply to m68k, microblaze, nds32, nios2, openrisc, sh and sparc]
    Signed-off-by: Tom Rini

    Andreas Bießmann
     

26 Jun, 2013

1 commit

  • At present the arguments to bootm are processed in a somewhat confusing
    way. Sub-functions must know how many arguments their calling functions
    have processed, and the OS boot function must also have this information.
    Also it isn't obvious that 'bootm' and 'bootm start' provide arguments in
    the same way.

    Adjust the code so that arguments are removed from the list before calling
    a sub-function. This means that all functions can know that argv[0] is the
    first argument of which they need to take notice.

    Signed-off-by: Simon Glass

    Simon Glass
     

02 May, 2013

2 commits


16 Jul, 2012

1 commit


16 May, 2012

1 commit

  • This field gets read in one place (by "bdinfo"), and we can replace
    that with getenv("ipaddr"). After all, the bi_ip_addr field is kept
    up-to-date implicitly with the value of the ipaddr env var.

    Signed-off-by: Mike Frysinger
    Reviewed-by: Joe Hershberger

    Mike Frysinger
     

23 Feb, 2012

1 commit


06 Oct, 2011

1 commit

  • This is long over due. All but two net drivers have been converted, but
    those have now been dropped.

    The only thing left to do is actually delete all references to NET_MULTI
    and code that is compiled when that is not defined. So here we scrub the
    core code.

    Signed-off-by: Mike Frysinger

    Mike Frysinger
     

18 Nov, 2010

1 commit

  • Before this commit, weak symbols were not overridden by non-weak symbols
    found in archive libraries when linking with recent versions of
    binutils. As stated in the System V ABI, "the link editor does not
    extract archive members to resolve undefined weak symbols".

    This commit changes all Makefiles to use partial linking (ld -r) instead
    of creating library archives, which forces all symbols to participate in
    linking, allowing non-weak symbols to override weak symbols as intended.
    This approach is also used by Linux, from which the gmake function
    cmd_link_o_target (defined in config.mk and used in all Makefiles) is
    inspired.

    The name of each former library archive is preserved except for
    extensions which change from ".a" to ".o". This commit updates
    references accordingly where needed, in particular in some linker
    scripts.

    This commit reveals board configurations that exclude some features but
    include source files that depend these disabled features in the build,
    resulting in undefined symbols. Known such cases include:
    - disabling CMD_NET but not CMD_NFS;
    - enabling CONFIG_OF_LIBFDT but not CONFIG_QE.

    Signed-off-by: Sebastien Carlier

    Sebastien Carlier
     

27 Oct, 2010

1 commit

  • CONFIG_SYS_GBL_DATA_SIZE has always been just a bad workarond for not
    being able to use "sizeof(struct global_data)" in assembler files.
    Recent experience has shown that manual synchronization is not
    reliable enough. This patch renames CONFIG_SYS_GBL_DATA_SIZE into
    GENERATED_GBL_DATA_SIZE which gets automatically generated by the
    asm-offsets tool. In the result, all definitions of this value can be
    deleted from the board config files. We have to make sure that all
    files that reference such data include the new file.

    No other changes have been done yet, but it is obvious that similar
    changes / simplifications can be done for other, related macro
    definitions as well.

    Signed-off-by: Wolfgang Denk
    Acked-by: Kumar Gala

    Wolfgang Denk
     

19 Oct, 2010

1 commit

  • All arches except nios2 and microblaze call boot_get_fdt
    from bootm_start in common/cmd_bootm.c.

    Having nios2 and microblaze do so as well removes code from
    their respective do_bootm_linux routines and allows removal of
    a nasty ifdef from bootm_start.

    In the case where boot_get_fdt returns an error bootm_start
    returns and the platform specific do_bootm_linux routines
    will never get called.

    Also only check argv[3] for an fdt addr if argc > 3 first.
    This is already the case for nios2.

    Signed-off-by: John Rigby
    CC: Scott McNutt
    CC: Michal Simek
    CC: Thomas Chou
    Acked-by: Wolfgang Denk
    Acked-by: Michal Simek
    Tested-by: Thomas Chou

    John Rigby
     

20 Aug, 2010

1 commit


12 Jul, 2010

1 commit


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
     

28 May, 2010

1 commit

  • This patch fixes the run-time error on div64 when built with
    gcc4, which was reported by jhwu0625 on nios forum. It merges
    math support from libgcc of gcc4. This patch is copied from
    nios2-linux.

    It works with both gcc3 and gcc4. The old mult.c, divmod.c and
    math.h are removed.

    Signed-off-by: Thomas Chou
    Signed-off-by: Scott McNutt

    Thomas Chou
     

25 Apr, 2010

1 commit


13 Apr, 2010

1 commit