26 Jan, 2011

1 commit

  • If we built POST on PPC's that didn't enable CONFIG_SYS_POST_FPU we'd
    get the following warning with newer toolchains:

    powerpc-linux-gnu-ld: Warning: lib_powerpc/fpu/libpostpowerpcfpu.o
    uses hard float, libpost.o uses soft float

    We actually worked around this sometime ago with the following commit:

    commit ce82ff05388b5ddafdf6082ef0776cce72c40b1c
    Author: Yuri Tikhonov
    Date: Sat Dec 20 14:54:21 2008 +0300

    FPU POST: fix warnings when building with 2.18 binutils

    However, this only took into effect if CONFIG_SYS_POST_FPU was enabled.
    We can simply move the GNU_FPOST_ATTR out of the CONFIG_SYS_POST_FPU
    ifdef block to address the issue.

    Signed-off-by: Kumar Gala

    Kumar Gala
     

17 Dec, 2010

1 commit

  • This patch changes the PPC4xx ethernet POST loop test count from
    currently 192 (256 - 64) to a default of 10. While doing this the max
    frame size is increased. Each loop run uses a different frame size,
    starting with a max of 1514 bytes, down to 64. The default loop
    count of 10 can be overriden using CONFIG_SYS_POST_ETH_LOOPS in the
    board config header.

    The TEST_NUM loop has been removed as it was never used.

    The main reason for this change is to reduce the boot time on boards
    using this POST test, like the lwmon5 board. This change reduces the
    boot time by about 600ms on the lwmon5 board.

    Signed-off-by: Stefan Roese
    Acked-by: Wolfgang Denk

    Stefan Roese
     

28 Nov, 2010

1 commit


20 Nov, 2010

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
     

17 Nov, 2010

1 commit


30 Oct, 2010

1 commit

  • By now, the majority of architectures have working relocation
    support, so the few remaining architectures have become exceptions.
    To make this more obvious, we make working relocation now the default
    case, and flag the remaining cases with CONFIG_NEEDS_MANUAL_RELOC.

    Signed-off-by: Wolfgang Denk
    Tested-by: Heiko Schocher
    Tested-by: Reinhard Meyer

    Wolfgang Denk
     

28 Oct, 2010

2 commits

  • Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     
  • Commit 7e263ce "post/i2c: Clean up detection logic" added a "const"
    qualifier to the declaration of i2c_addr_list[], missing the fact that
    the list gets modified later in the code, which results in build
    errors like these:

    i2c.c: In function 'i2c_post_test':
    i2c.c:88: error: assignment of read-only location

    Remove the incorrect "const".

    Signed-off-by: Wolfgang Denk
    Cc: Peter Tyser
    Cc: Heiko Schocher
    Acked-by: Heiko Schocher

    Wolfgang Denk
     

22 Oct, 2010

5 commits

  • Add the ability to not report an I2C POST error for a set of given I2C
    addresses on bootup. This is useful for cases when a device may or may
    not be present, and neither case is considered an error. For example:

    - Some form factors such as XMC and Compact PCI Express have an I2C
    EEPROM whose address changes based on geographical address. Eg
    installed in one slot its EEPROM address is, 0x50, in another its
    0x51, etc. This allows multiple devices to have their EEPROMs present
    on the same I2C bus. Thus the I2C devices present for an XMC or
    CPCIe card depend on if and where other cards are installed in the
    same system.

    - Some cards have optional I2C devices. Eg one hardware build
    configuration has different I2C devices than another and software
    can't determine if the optional device should be present or not.

    - Some cards have optional daughtercards with I2C devices on them.

    - I2C EEPROMs address range depends on their size. Its possible to
    support differently size EEPROMs by only probing the EEPROM's base
    address and ignoring the other addresses that are impacted by its
    size.

    A new CONFIG_SYS_POST_I2C_IGNORES define has been added which specifies
    a list of I2C addresses for the I2C POST to ignore.

    Signed-off-by: Peter Tyser
    Acked-by: Heiko Schocher
    Acked-by: Wolfgang Denk
    Signed-off-by: Kumar Gala

    Peter Tyser
     
  • Signed-off-by: Peter Tyser
    Acked-by: Heiko Schocher
    Acked-by: Wolfgang Denk
    Signed-off-by: Kumar Gala

    Peter Tyser
     
  • According to the I2C specification device address 0 is the "general call
    address", ie a broadcast address. The I2C specification states that the
    format of a general call uses at least 2 bytes, which U-Boot's probing
    routine does not adhere to.

    Not probing device address 0 will prevent possible issues with devices
    that accept general calls. Additionally, this change shouldn't reduce
    POST coverage since each I2C device should still be accessed via its
    own, unique address.

    Signed-off-by: Peter Tyser
    Acked-by: Heiko Schocher
    Acked-by: Wolfgang Denk
    Signed-off-by: Kumar Gala

    Peter Tyser
     
  • The logic previously used in the I2C post was a bit convoluted.

    Signed-off-by: Peter Tyser
    Acked-by: Heiko Schocher
    Acked-by: Wolfgang Denk
    Signed-off-by: Kumar Gala

    Peter Tyser
     
  • - Clean up ifdeffery
    - Update coding style

    No functional change should have occurred.

    Signed-off-by: Peter Tyser
    Acked-by: Heiko Schocher
    Acked-by: Wolfgang Denk
    Signed-off-by: Kumar Gala

    Peter Tyser
     

20 Oct, 2010

2 commits

  • Add CONFIG_POST_UART to implement a board specific UART POST test.
    This is done since lwmon5 needs to set POST_ALWAYS to run this
    test on each reboot. And we don't want to change the default
    behavious of this this.

    Signed-off-by: Stefan Roese

    Stefan Roese
     
  • Add weak functions to enable architecture depended preparation, address
    advancing, cleaning up and error handling.

    These weak functions provides the framwork to implemente arch/platform
    dependent code for initializing/maintenance/restore the start address, size,
    physical address as well as memory mapping before/between/after memory test.
    arch_memory_failure_handle can also be implemented in case more care is needed
    for arch/platform.

    Signed-off-by: York Sun

    York Sun
     

04 Oct, 2010

2 commits

  • This patch changes the PPC4xx POST UART driver to use the common
    NS16550 functions for receiving and sending. Additionally the
    local function for SoC divisor setup are removed. Instead the
    functions from arch/powerpc/cpu/ppc4xx/4xx_uart.c are used. This
    removes code duplication.

    Also the common CONFIG_SYS_NS16550_COMx defines are now used
    to describe the POST UART's.

    And a compile breakage is fixed, introduced by a git merge of
    the ppc4xx/next branch into master. Now "ppc4xx.h" is moved to
    "asm/ppc4xx.h". Fixed as well with this patch.

    Signed-off-by: Stefan Roese

    Stefan Roese
     
  • This patch brings the lwmon5 board support up-to-date. Here a
    summary of the changes:

    lwmon5 board port related:
    - GPIO's changed to control the LSB transmitter
    - Reset USB PHY's upon power-up
    - Enable CAN upon power-up
    - USB init error workaround (errata CHIP_6)
    - EBC: Enable burstmode and modify the timings for the GDC memory
    - EBC: Speed up NOR flash timings

    lwmon5 board POST related:
    - Add FPGA memory test
    - Add GDC memory test
    - DSP POST reworked
    - SYSMON POST: Fix handling of negative temperatures
    - Add output for sysmon1 POST
    - HW-watchdog min. time test reworked

    Additionally some coding-style changes were done.

    Signed-off-by: Sascha Laue
    Signed-off-by: Stefan Roese

    Sascha Laue
     

29 Sep, 2010

1 commit


23 Sep, 2010

3 commits


22 Sep, 2010

1 commit

  • - Revives POST for blackfin arch;
    - Removes redundant code:
    arch/blackfin/lib/post.c
    arch/powerpc/cpu/ppc4xx/commproc.c
    arch/powerpc/cpu/mpc512x/common.c
    - fixes up the post_word_{load|store} usage.

    Signed-off-by: Michael Zaidman
    Acked-by: Detlev Zundel
    Tested-by: Anatolij Gustschin

    List of the maintainers of the affected by patch boards:
    Cc: Stephan Linz
    Cc: Denis Peter
    Cc: Matthias Fuchs
    Cc: Peter Tyser
    Cc: Stefan Roese
    Cc: Mike Frysinger
    Cc: Niklaus Giger
    Cc: Larry Johnson
    Cc: Feng Kan

    Michael Zaidman
     

04 Aug, 2010

1 commit

  • While running from flash, i. e. before relocation, we have only a
    limited C runtime environment without writable data segment. In this
    phase, some configurations (for example with environment in EEPROM)
    must not use the normal getenv(), but a special function. This
    function had been called getenv_r(), with the idea that the "_r"
    suffix would mean the same as in the _r_eentrant versions of some of
    the C library functions (for example getdate vs. getdate_r, getgrent
    vs. getgrent_r, etc.).

    Unfortunately this was a misleading name, as in U-Boot the "_r"
    generally means "running from RAM", i. e. _after_ relocation.

    To avoid confusion, rename into getenv_f() [as "running from flash"]

    Signed-off-by: Wolfgang Denk
    Acked-by: Detlev Zundel

    Wolfgang Denk
     

06 May, 2010

1 commit


25 Apr, 2010

1 commit


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

1 commit


22 Mar, 2010

1 commit

  • Add POST progress API implemented as weak calls before and after
    each call to the POST test callback in the post_run_single routine
    of the post.c file.

    Signed-off-by: Michael Zaidman
    Acked-by: Detlev Zundel

    Michael Zaidman
     

08 Dec, 2009

1 commit

  • This patch introduces a weak default function for post_hotkey_pressed(),
    returning 0, for boards without hotkey support. The long-running tests
    won't be started on those boards. This default function was implemented
    in many board directories. By implementing this weak default we can
    remove all those duplicate versions.

    Boards with hotkey support, can override this weak default function
    by defining one in their board specific code.

    Signed-off-by: Stefan Roese

    Stefan Roese
     

09 Oct, 2009

1 commit


07 Oct, 2009

1 commit


03 Oct, 2009

2 commits


11 Sep, 2009

1 commit

  • This patch cleans up multiple issues of the 4xx register (mostly
    DCR, SDR, CPR, etc) definitions:

    - Change lower case defines to upper case (plb4_acr -> PLB4_ACR)
    - Change the defines to better match the names from the
    user's manuals (e.g. cprpllc -> CPR0_PLLC)
    - Removal of some unused defines

    Please test this patch intensive on your PPC4xx platform. Even though
    I tried not to break anything and tested successfully on multiple
    4xx AMCC platforms, testing on custom platforms is recommended.

    Signed-off-by: Stefan Roese

    Stefan Roese
     

24 Jul, 2009

1 commit


18 Jul, 2009

1 commit

  • So far the console API uses the following naming convention:

    ======Extract======
    typedef struct device_t;

    int device_register (device_t * dev);
    int devices_init (void);
    int device_deregister(char *devname);
    struct list_head* device_get_list(void);
    device_t* device_get_by_name(char* name);
    device_t* device_clone(device_t *dev);
    =======

    which is too generic and confusing.

    Instead of using device_XX and device_t we change this
    into stdio_XX and stdio_dev

    This will also allow to add later a generic device mechanism in order
    to have support for multiple devices and driver instances.

    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD

    Edited commit message.

    Signed-off-by: Wolfgang Denk

    Jean-Christophe PLAGNIOL-VILLARD
     

28 Mar, 2009

1 commit


21 Mar, 2009

1 commit

  • The environment is the canonical storage location of the mac address, so
    we're killing off the global data location and moving everything to
    querying the env directly.

    The cpus that get converted here:
    at91rm9200
    mpc512x
    mpc5xxx
    mpc8260
    mpc8xx
    ppc4xx

    Signed-off-by: Mike Frysinger
    CC: Ben Warren
    CC: John Rigby
    CC: Stefan Roese

    Mike Frysinger
     

24 Jan, 2009

1 commit

  • When compile u-boot with the 2.18 binutils the following
    warning messages for each object file in post/lib_ppc/fpu/ is
    produced at the linking stage:

    post/libpost.a(acc1.o) uses hard float, u-boot uses soft-float
    ...

    This is because of the fact that, in general, the soft-float and
    hard-float ABIs are incompatible; the 2.18 binutils do checking
    of the Tag_GNU_Power_ABI_FP attribute of the files to be linked, and
    produce the worning like above if these are not compatible.

    The incompatibility of ABIs is concerned only the float values:
    e.g. the soft-float ABI assumes the float argument passing in the
    pair of rX registers, and the hard-float ABI assumes passing of
    the float argument in the fX register. When we don't pass the float
    arguments between the functions compiled with different floatness,
    then such an application will work correctly.
    This is the case for the FPU POST: u-boot (compiled with soft-float)
    doesn't pass to (and doesn't get from) the FPU POST functions any
    floats; there are no functions exported from the post/lib_ppc/fpu/
    objects which would work with float parameters/returns too. So, we
    can reassure the linker not to worry about the difference in ABI
    attributes of linking files just by setting the 'soft-float'
    attribute for the objects in post/lib_ppc/fpu. And this patch does
    this.

    Also, to avoid passing both soft- and hard-float options in CFLAGS
    when compiling the files from post/lib_ppc/fpu (which is OK, but
    looks rather dirty) this patch removes the soft-float string from
    CFLAGS in post/lib_ppc/fpu/Makefile.

    Signed-off-by: Yuri Tikhonov

    Yuri Tikhonov