07 Apr, 2015

3 commits

  • With e37f1eb we now use strict_strtoul() in do_mem_mtest() and this
    gives us a warning:
    ../include/vsprintf.h:38:5: note: expected 'long unsigned int *' but
    argument is of type 'int *'

    Signed-off-by: Tom Rini

    Tom Rini
     
  • Currently, memtest will silently accept bad data. Perform error
    checking on user intput.

    Signed-off-by: Pavel Machek

    Pavel Machek
     
  • The u-boot environment is redundantly stored in a NOR flash on our boards.
    Redundant means that there are two places to store the environment. But only
    one of the two is active. I discovered that on one board the u-boot (env_sf)
    uses the environment from the second place and the Kernel (fw_printenv) uses
    the environment from the first place.
    To decide which is the active environment there is a byte inside the
    environment. 1 means active and 0 means obsolete. But on that board both
    environments had have a 1. This can happen if a power loss or reset occurs
    during writing the environment. In this situation the u-boot (env_sf)
    implementation uses the second environment as default. But the Kernel
    (fw_printenv) implementation uses the first environment as default.

    This commit corrects the default in the u-boot env_sf implementation when a
    problem was detected. Now the recovery default is the same like in all other
    environment implementations. E.g. fw_printenv and env_flash. This ensures that
    u-boot and Kernel use the same environment.

    Signed-off-by: Mario Schuknecht

    Mario Schuknecht
     

03 Apr, 2015

1 commit

  • Intention behind this work was elimination of as much assembly-written
    code as it is possible.

    In case of ARC we already have relocation fix-up implemented in C so why
    don't we use C for U-Boot copying, .bss zeroing etc.

    It turned out x86 uses pretty similar approach so we re-used parts of
    code in "board_f.c" initially implemented for x86.

    Now assembly usage during init is limited to stack- and frame-pointer
    setup before and after relocation.

    Signed-off-by: Alexey Brodkin
    Cc: Simon Glass

    Alexey Brodkin
     

31 Mar, 2015

2 commits

  • This command is only enabled by one board, complicates the NAND code,
    and doesn't appear to have been functioning properly for several
    years. If there are no bad blocks in the NAND region being written
    nand_write_skip_bad() will take the shortcut of calling nand_write()
    which bypasses the special yaffs handling. This causes invalid YAFFS
    data to be written. See
    http://lists.denx.de/pipermail/u-boot/2011-September/102830.html for
    an example and a potential workaround.

    U-Boot still retains the ability to mount and access YAFFS partitions
    via CONFIG_YAFFS2.

    Signed-off-by: Peter Tyser

    Peter Tyser
     
  • Previously NAND writes were only verified when CONFIG_MTD_NAND_VERIFY_WRITE
    was defined. On boards without this define writes could fail silently.
    Boards with CONFIG_MTD_NAND_VERIFY_WRITE could prematurely report
    failures which ECC could correct.

    Add a verification step after all "nand write[.x]" commands to ensure the
    writes were successful. The verification uses ECC for for "normal"
    writes, but does not for raw and yaffs writes. Some test cases which
    inject fake bad bits on a 2K page flash are below.

    Test cases with CONFIG_MTD_NAND_VERIFY_WRITE defined:
    Example of an ECC write which previously failed when
    CONFIG_MTD_NAND_VERIFY_WRITE was defined, but now succeeds because ECC
    is used during verification:
    nand erase 0 0x10000
    dhcp /somefile
    mw.b 0x10000 0xff 0x2000
    mw.b 0x10020 0xfe 1
    nand write.raw 0x10000 0x800 1
    mw.b 0x1000020 0x01 1
    nand write 0x1000000 0x800 0x1800

    Test cases without CONFIG_MTD_NAND_VERIFY_WRITE defined:
    Example of an ECC write which previously silently failed:
    nand erase 0 0x10000
    dhcp /somefile
    mw.b 0x10000 0xff 0x2000
    mw.b 0x10020 0x00 1
    nand write.raw 0x10000 0x800 1
    mw.b 0x1000020 0xff 1
    nand write 0x1000000 0x800 0x1800

    Example of a raw write which previously failed silently due to stuck
    data bit, but now errors out:
    nand erase 0 0x10000
    dhcp /somefile
    mw.b 0x10000 0xff 0x2000
    mw.b 0x10020 0xfe 1
    nand write.raw 0x10000 0x800 1
    mw.b 0x1000020 0x01 1
    nand write.raw 0x1000000 0x800 3

    Example of a raw write which previously failed silently due to stuck OOB
    bit, but now errors out:
    nand erase 0 0x10000
    dhcp /somefile
    mw.b 0x10000 0xff 0x2000
    mw.b 0x10810 0xfe 1
    nand write.raw 0x10000 0x800 1
    mw.b 0x1000810 0x01 1
    nand write.raw 0x1000000 0x800 3

    Signed-off-by: Peter Tyser
    Tested-by: Heiko Schocher
    Acked-by: Heiko Schocher

    Peter Tyser
     

29 Mar, 2015

2 commits

  • Fix eb_cpu5282 and eb_cpu5282_internal unresolved external error.
    These boards have video but don't need any ppc related
    video_setmem().

    Fix M53017EVB moving away embedded env to a different offset,
    as in M52277EVB.

    Signed-off-by: Angelo Dureghello

    angelo@sysam.it
     
  • Purpose of this change is to make it possible to re-use code currently
    used on X86 solely for other architectures. For example:
    * init_sequence_f_r
    * board_init_f_r

    Even though board_init_f_mem() has nothing to do with any particular
    architecture it won't work (at least in current implementation) for X86.

    This is because on X86 "gd" is an alias to function get_fs_gd_ptr(),
    thus we cannot assign anything to it.

    So this change separates selection of board_init_f_mem() from X86 while
    keeping it disabled for X86 still.

    Signed-off-by: Alexey Brodkin
    Cc: Simon Glass
    Cc: Tom Rini

    Alexey Brodkin
     

26 Mar, 2015

1 commit


24 Mar, 2015

1 commit

  • Various files are needlessly rebuilt every time due to the version and
    build time changing. As version.h is not actually needed, remove the
    include.

    Signed-off-by: Rob Herring
    Cc: Albert Aribaud
    Cc: Stefano Babic
    Cc: Minkyu Kang
    Cc: Marek Vasut
    Cc: Tom Warren
    Cc: Michal Simek
    Cc: Macpaul Lin
    Cc: Wolfgang Denk
    Cc: York Sun
    Cc: Stefan Roese
    Cc: Nobuhiro Iwamatsu
    Cc: Simon Glass
    Cc: Philippe Reynes
    Cc: Eric Jarrige
    Cc: "David Müller"
    Cc: Phil Edworthy
    Cc: Robert Baldyga
    Cc: Torsten Koschorrek
    Cc: Anatolij Gustschin
    Reviewed-by: Linus Walleij
    Reviewed-by: Łukasz Majewski

    Rob Herring
     

18 Mar, 2015

1 commit


13 Mar, 2015

1 commit


11 Mar, 2015

1 commit


09 Mar, 2015

3 commits

  • Added support to disable the start of application by using
    a environment variable autostart

    Signed-off-by: Siva Durga Prasad Paladugu
    Signed-off-by: Michal Simek

    Siva Durga Prasad Paladugu
     
  • This fixes a regression of e310b93ec1, affecting Ethernet on the Jetson
    TK1, e.g.

    Signed-off-by: Jan Kiszka

    Jan Kiszka
     
  • This commit introduces new config: CONFIG_SYS_MALLOC_CLEAR_ON_INIT.

    This config is an expert option and is enabled by default.

    The all amount of memory reserved for the malloc, is by default set
    to zero in mem_malloc_init(). When the malloc reserved memory exceeds
    few MiB, then the boot process can slow down.

    So disabling this config, is an expert option to reduce the boot time,
    and can be disabled by Kconfig.

    Note:
    After disable this option, only calloc() will return the pointer
    to the zeroed memory area. Previously, without this option,
    the memory pointed to untouched malloc memory region, was filled
    with zeros. So it means, that code with malloc() calls should
    be reexamined.

    Signed-off-by: Przemyslaw Marczak
    Reviewed-by: Simon Glass

    Przemyslaw Marczak
     

06 Mar, 2015

10 commits

  • Currently the usage text for the 'ums' command looks like this:

    Usage:
    ums ums [] e.g. ums 0 mmc 0

    ,so remove the extra 'ums' in the text.

    Signed-off-by: Fabio Estevam
    Acked-by: Otavio Salvador
    Acked-by: Marek Vasut

    Fabio Estevam
     
  • In case of global data structure defined as "register volatile" compiler
    throws an warning about incorrect type used:
    --->8---
    common/board_f.c: In function "board_init_f_r":
    common/board_f.c:1073:2: warning: passing argument 1 of "&board_init_r
    +(sizetype)gd->reloc_off" discards "volatile" qualifier from pointer
    target type [enabled by default]
    (board_init_r + gd->reloc_off)(gd, gd->relocaddr);
    ^
    common/board_f.c:1073:2: note: expected "struct gd_t *" but argument is
    of type "volatile struct gd_t *"
    --->8---

    An obvious fix is manual casting to "gd_t *".

    Signed-off-by: Alexey Brodkin
    Cc: Simon Glass
    Cc: Tom Rini
    Acked-by: Simon Glass

    Alexey Brodkin
     
  • running "spl export ..." more than once fails with:

    Trying to execute a command out of order
    Trying to execute a command out of order
    Trying to execute a command out of order
    Trying to execute a command out of order
    Trying to execute a command out of order
    Trying to execute a command out of order
    ERROR prep subcommand failed!
    Subcommand failed

    reason is commmit:
    35fc84fa1f: Refactor the bootm command to reduce code duplication

    It used "state != BOOTM_STATE_START" but state is a bitfield, so
    check if the bit BOOTM_STATE_START is not set. With this fix,
    "spl export ..." can called more than once ...

    Signed-off-by: Heiko Schocher
    Reviewed-by: Simon Glass

    Heiko Schocher
     
  • This patch adds generic board support for MCF547X/8X and MCF5445X.
    It is based on the patch about common generic board support for
    M68K architecture sent by Angelo.

    Signed-off-by: Alison Wang

    Alison Wang
     
  • Add generic-board support for the m68k architecture.

    Signed-off-by: Angelo Dureghello

    angelo@sysam.it
     
  • Remove duplicate command names in usage messages to fix issues such as:
    => help yls
    yls - yaffs ls

    Usage:
    yls yls [-l] dirname

    Signed-off-by: Peter Tyser

    Peter Tyser
     
  • Sometimes we do not want redirect u-boot's console to screen but anyway we want
    write out some status information out of a u-boot script to the display.

    So we cannot use the normal "echo ....", instead we write explicitly using
    "lcdputs ..." for writing to the actual cursor position on LCD.

    Signed-off-by: Hannes Petermaier

    Hannes Petermaier
     
  • Sometimes we do not want redirect u-boot's console to screen but anyway we want
    write out some status information out of a u-boot script to the display.

    To define the specific position of the string to be written, we have to set
    the cursor with "setcurs" before writing.

    Signed-off-by: Hannes Petermaier

    Hannes Petermaier
     
  • Currently, an environment variable must be used to store the randomly
    generated UUID for each partition. This is not necessary, so make storing
    the UUID optional. Now passing uuid_disk and uuid are optional when random
    UUIDs are enabled.

    Signed-off-by: Rob Herring
    Acked-by: Przemyslaw Marczak

    Rob Herring
     
  • The gpt command always reports success even if writing the partition table
    failed. Propagate the return value of gpt_restore so we get proper status
    reported.

    Signed-off-by: Rob Herring
    Reviewed-by: Przemyslaw Marczak

    Rob Herring
     

05 Mar, 2015

5 commits

  • Stefano Babic
     
  • Fix the name appearing in menuconfig for memtest command

    Signed-off-by: Nikolaos Pasaloukos
    Cc: Masahiro Yamada <yamada.m@jp.panasonic.com

    Nikolaos Pasaloukos
     
  • Tom Rini
     
  • At present SPL uses a single stack, either CONFIG_SPL_STACK or
    CONFIG_SYS_INIT_SP_ADDR. Since some SPL features (such as MMC and
    environment) require a lot of stack, some boards set CONFIG_SPL_STACK to
    point into SDRAM. They then set up SDRAM very early, before board_init_f(),
    so that the larger stack can be used.

    This is an abuse of lowlevel_init(). That function should only be used for
    essential start-up code which cannot be delayed. An example of a valid use is
    when only part of the SPL code is visible/executable, and the SoC must be set
    up so that board_init_f() can be reached. It should not be used for SDRAM
    init, console init, etc.

    Add a CONFIG_SPL_STACK_R option, which allows the stack to be moved to a new
    address before board_init_r() is called in SPL.

    The expected SPL flow (for CONFIG_SPL_FRAMEWORK) is documented in the README.

    Signed-off-by: Simon Glass
    For version 1:
    Acked-by: Albert ARIBAUD
    Reviewed-by: Stefan Roese
    Tested-by: Bo Shen
    Acked-by: Bo Shen
    Acked-by: Heiko Schocher
    Tested-by: Heiko Schocher

    Signed-off-by: Tom Rini

    Simon Glass
     
  • Some systems have so much RAM that the end of RAM is beyond 4GB. An
    example would be a Tegra124 system (where RAM starts at 2GB physical)
    that has more than 2GB of RAM.

    In this case, we can gd->ram_size to represent the actual RAM size, so
    that the actual RAM size is passed to the OS. This is useful if the OS
    implements LPAE, and can actually use the "extra" RAM.

    However, U-Boot does not implement LPAE and so must deal with 32-bit
    physical addresses. To this end, we enhance board_get_usable_ram_top() to
    detect the "over-sized" case, and limit the relocation addres so that it
    fits into 32-bits of physical address space.

    Signed-off-by: Stephen Warren
    Reviewed-by: Simon Glass
    Signed-off-by: Tom Warren

    Stephen Warren
     

02 Mar, 2015

2 commits


26 Feb, 2015

6 commits


25 Feb, 2015

1 commit