22 Oct, 2012

1 commit


16 Oct, 2012

1 commit

  • Both big-endian and little-endian are tested with below commands:
    Rom version: (Default, Now we config it as rom version)
    qemu-system-mips64el -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
    qemu-system-mips64 -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
    Ram version:
    qemu-system-mips64el -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic
    qemu-system-mips64 -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic

    Signed-off-by: Zhizhou Zhang
    Signed-off-by: Daniel Schwierzeck

    Zhi-zhou Zhang
     

27 Mar, 2012

1 commit


14 Jan, 2012

1 commit


07 Dec, 2011

1 commit


16 Nov, 2011

1 commit


04 Nov, 2011

1 commit

  • U-Boot Makefiles contain a number of tests for compiler features etc.
    which so far are executed again and again. On some architectures
    (especially ARM) this results in a large number of calls to gcc.

    This patch makes sure to run such tests only once, thus largely
    reducing the number of "execve" system calls.

    Example: number of "execve" system calls for building the "P2020DS"
    (Power Architecture) and "qong" (ARM) boards, measured as:
    -> strace -f -e trace=execve -o /tmp/foo ./MAKEALL
    -> grep execve /tmp/foo | wc -l

    Before: After: Reduction:
    ==================================
    P2020DS 20555 15205 -26%
    qong 31692 14490 -54%

    As a result, built times are significantly reduced, typically by
    30...50%.

    Signed-off-by: Wolfgang Denk
    Cc: Andy Fleming
    Cc: Kumar Gala
    Cc: Albert Aribaud
    cc: Graeme Russ
    cc: Mike Frysinger
    Tested-by: Graeme Russ
    Tested-by: Matthias Weisser
    Tested-by: Sanjeev Premi
    Tested-by: Simon Glass
    Tested-by: Macpaul Lin
    Acked-by: Mike Frysinger

    Wolfgang Denk
     

22 Oct, 2011

2 commits

  • Add standalone program related support for nds32 architecture.

    Signed-off-by: Macpaul Lin

    Macpaul Lin
     
  • The examples/api is not configured with USE_PRIVATE_LIBGCC. This makes
    building examples/api break on certain boards that do not/cannot use the
    public libgcc.

    Nevertheless, this patch has to also touch the top-level Makefile to fix
    this problem because the current top-level Makefile does not specify
    libgcc as a prerequisite of examples/api, and explicitly builds
    examples/api _before_ libgcc.

    For testing this patch, I added the following to configs/seaboard.h and
    ran demo.bin on a Seaboard.

    +#define CONFIG_API
    +#define CONFIG_SYS_MMC_MAX_DEVICE 2
    +#define CONFIG_CMD_NET
    +#define CONFIG_NET_MULTI

    Signed-off-by: Che-Liang Chiou
    Acked-by: Mike Frysinger

    Che-liang Chiou
     

18 Oct, 2011

1 commit


13 May, 2011

2 commits

  • Noticed while building all of mpc8xx. Also
    constify usage string in timer.c
    Warnings fixed are:
    timer.c: In function 'timer':
    timer.c:189: warning: format not a string literal and no format arguments
    timer.c:258: warning: format not a string literal and no format arguments
    atm.c: In function 'atmUnload':
    atm.c:99: warning: array subscript is above array bounds
    atm.c: In function 'atmLoad':
    atm.c:65: warning: array subscript is above array bounds
    codec.c: In function 'codsp_write_pop_int':
    codec.c:678: warning: array subscript is above array bounds
    codec.c: In function 'codsp_write_cop_short':
    codec.c:585: warning: array subscript is above array bounds
    codec.c: In function 'codsp_write_sop_int':
    codec.c:512: warning: array subscript is above array bounds

    Signed-off-by: Joakim Tjernlund

    Joakim Tjernlund
     
  • GNU Makefile have two flavors of variables, recursively expanded that is
    defined by using '=', and simply expanded that is defined by using ':='.

    The bug is caused by using recursively expanded flavor for BIN and SREC.
    As you can see below, they are prepended by $(obj) twice.

    We can reproduce this bug with a simplified version of this Makefile:
    $ cat >Makefile <

    Che-liang Chiou
     

09 May, 2011

1 commit

  • All architectures but MIPS are using --gc-sections on final linking.
    This patch introduces that feature for MIPS to reduce the memory and
    flash footprint.

    Signed-off-by: Daniel Schwierzeck
    Cc: Wolfgang Denk
    Cc: Stefan Roese
    Cc: Thomas Lange
    Cc: Vlad Lungu
    Signed-off-by: Shinya Kuribayashi

    Daniel Schwierzeck
     

13 Apr, 2011

2 commits


31 Mar, 2011

1 commit

  • Commit 44c6e65 "rename _end to __bss_end__ broke building of a large
    number of systems (at least all PowerPC?):

    libstubs.o: In function `app_startup':
    examples/standalone/stubs.c:197: undefined reference to `__bss_end__'

    The rename should not be done for the files in the
    examples/standalone/ directory, as these are not using the code from
    start.S, but do their own BSS clearing, and either use their own
    linker scripts or the ones provided by the compilers.

    Signed-off-by: Po-Yu Chuang
    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

28 Mar, 2011

1 commit


10 Jan, 2011

1 commit


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
     

13 Oct, 2010

1 commit

  • Using -fno-toplevel-reorder causes gcc to not reorder functions. This
    ensures that an application's entry point will be the first function in
    the application's source file.

    This change, along with commit 620bbba524fbaa26971a5004793010b169824f1b
    should cause a standalone application's entry point to be at the base of
    the compiled binary. Previously, the entry point could change depending
    on gcc version and flags.

    Note -fno-toplevel-reorder is only available in gcc version 4.2 or
    greater.

    Signed-off-by: Peter Tyser

    Peter Tyser
     

04 Sep, 2010

1 commit

  • From the document, if set all arguments in "OUTPUT_FORMAT" to
    "tradbigmips", then even add "-EL" to gcc we still get EB format.

    pb1x00 is only used in Little-endian, so its default endian should be
    set to LE.

    Signed-off-by: Xiangfu Liu
    Signed-off-by: Shinya Kuribayashi

    Xiangfu Liu
     

12 Jul, 2010

1 commit

  • The smc911x_detect function in /net/driver/net/smc911x.c
    returns a 0 if everything was ok (a chip was found) and -1 else.
    In the standalone example 'smc911x_eeprom' the return value
    of smc911x_detect is interpreted in a different way
    (0 for error, !0 as OK).
    This leads to the error that the chip will not be detected.

    Signed-off-by: Juergen Kilb
    Acked-by: Mike Frysinger

    Signed-off-by: Ben Warren

    Juergen Kilb
     

05 Jul, 2010

2 commits

  • 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
     
  • Change the return type of the *printf() functions to the standard
    "int"; no changes are needed but returning the already available
    length count.

    This will save a few additional strlen() calls later...

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

30 Jun, 2010

1 commit

  • Previously, standalone applications were compiled with gcc flags that
    produced relocatable executables on the PowerPC architecture (eg with
    the -mrelocatable and -fPIC flags). There's no reason for these
    applications to be fully relocatable at this time since no relocation
    fixups are performed on standalone applications.

    Additionally, removing the gcc relocation flags results in the entry
    point of applications residing at the base of the image. When
    a standalone application was relocatable, the entry point was generally
    located at an offset into the image which was confusing and prone to
    errors.

    This change moves the entry point of PowerPC standalone applications
    from 0x40004 (usually) to 0x40000.

    Signed-off-by: Peter Tyser
    Signed-off-by: Wolfgang Denk

    Peter Tyser
     

28 May, 2010

2 commits


22 Apr, 2010

1 commit

  • As discussed on the list, move "arch/ppc" to "arch/powerpc" to
    better match the Linux directory structure.

    Please note that this patch also changes the "ppc" target in
    MAKEALL to "powerpc" to match this new infrastructure. But "ppc"
    is kept as an alias for now, to not break compatibility with
    scripts using this name.

    Signed-off-by: Stefan Roese
    Acked-by: Wolfgang Denk
    Acked-by: Detlev Zundel
    Acked-by: Kim Phillips
    Cc: Peter Tyser
    Cc: Anatolij Gustschin

    Stefan Roese
     

13 Apr, 2010

3 commits


13 Mar, 2010

2 commits


01 Feb, 2010

1 commit

  • Building for a bf533-stamp ends up with this error:
    smc91111_eeprom.o: In function `smc91111_eeprom':
    examples/standalone/smc91111_eeprom.c:58: undefined reference to `memset'
    make[2]: *** [smc91111_eeprom] Error 1

    The new eth_struct definition means gcc has to zero out the structure on
    the stack, and some gcc versions optimize this with an implicit call to
    memset. So tweak the structure style to avoid that gcc feature.

    Signed-off-by: Mike Frysinger
    Signed-off-by: Ben Warren

    Mike Frysinger
     

19 Jan, 2010

1 commit

  • Commit 6a45e384955262882375a2785426dc65aeb636c4 (Make getenv_IPaddr() global)
    inadvertently added ' #include "net.h" ' to the standalone programs, creating
    duplicate definitions of 'struct eth_device'. This patch removes the local
    definitions and removes other code that breaks due to the change in definition.

    Signed-off-by: Ben Warren
    Acked-by: Mike Frysinger

    Ben Warren
     

05 Dec, 2009

2 commits

  • Conflicts:
    board/esd/plu405/plu405.c
    drivers/rtc/ftrtc010.c

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     
  • According to the PPC reference implementation the udelay() function is
    responsible for resetting the watchdog timer as frequently as needed.
    Most other architectures do not meet that requirement, so long-running
    operations might result in a watchdog reset.

    This patch adds a generic udelay() function which takes care of
    resetting the watchdog before calling an architecture-specific
    __udelay().

    Signed-off-by: Ingo van Lil

    Ingo van Lil
     

03 Dec, 2009

2 commits

  • Since the Makefile now controls the compilation of this, there is no need
    for CONFIG checking nor the stub function.

    Signed-off-by: Mike Frysinger

    Mike Frysinger
     
  • Some versions of 'make' do not handle trailing white-spaces
    properly. Trailing spaces in ELF causes a 'fake' source to
    be added to the variable COBJS; leading to build failure
    (listed below). The problem was found with GNU Make 3.80.

    Using text-function 'strip' as a workaround for the problem.

    make[1]: Entering directory `/home/sanjeev/u-boot/examples/standalone'
    arm-none-linux-gnueabi-gcc -g -Os -fno-common -ffixed-r8 -msoft-float
    -D__KERNEL__ -DTEXT_BASE=0x80e80000 -I/home/sanjeev/u-boot/include
    -fno-builtin -ffreestanding -nostdinc -isystem /opt/codesourcery/2009q1-
    203/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/include -pipe -DCONFIG_
    ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5
    -Wall -Wstrict-prototypes -fno-stack-protector -g -Os -fno-common -ff
    ixed-r8 -msoft-float -D__KERNEL__ -DTEXT_BASE=0x80e80000 -I/home/sanje
    ev/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/co
    desourcery/2009q1-203/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/includ
    e -pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-inte
    rwork -march=armv5 -I.. -Bstatic -T u-boot.lds -Ttext 0x80e80000 -o .c
    arm-none-linux-gnueabi-gcc: no input files
    make[1]: *** [.c] Error 1
    make[1]: Leaving directory `/home/sanjeev/u-boot/examples/standalone'
    make: *** [examples/standalone] Error 2
    premi #

    Signed-off-by: Sanjeev Premi

    Fixed typo (s/ElF/ELF/).
    Signed-off-by: Wolfgang Denk

    Sanjeev Premi
     

24 Nov, 2009

1 commit