03 Apr, 2014

6 commits

  • Changes:
    - randomly generate partition uuid if any is undefined and CONFIG_RAND_UUID
    is defined
    - print debug info about set/unset/generated uuid
    - update doc/README.gpt

    Signed-off-by: Przemyslaw Marczak
    Acked-by: Lukasz Majewski
    Cc: Piotr Wilczek
    Cc: Tom Rini
    Cc: Stephen Warren
    Cc: Lukasz Majewski

    Przemyslaw Marczak
     
  • Those commands basis on implementation of random UUID generator version 4
    which is described in RFC4122. The same algorithm is used for generation
    both ids but string representation is different as below.

    char: 0 9 14 19 24 36
    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    UUID: be be be be be
    GUID: le le le be be

    Commands usage:
    - uuid []
    - guid []

    The result is saved in environment as a "varname" variable if argument is given,
    if not then it is printed.

    New config:
    - CONFIG_CMD_UUID

    Signed-off-by: Przemyslaw Marczak
    Cc: Stephen Warren
    Cc: Lukasz Majewski
    Cc: trini@ti.com

    Przemyslaw Marczak
     
  • This patch adds support to generate UUID (Universally Unique Identifier)
    in version 4 based on RFC4122, which is randomly.

    Source: https://www.ietf.org/rfc/rfc4122.txt

    Changes:
    - new configs:
    - CONFIG_LIB_UUID for compile lib/uuid.c
    - CONFIG_RANDOM_UUID for functions gen_rand_uuid() and gen_rand_uuid_str()
    - add configs dependency to include/config_fallbacks.h for lib uuid.

    lib/uuid.c:
    - add gen_rand_uuid() - this function writes 16 bytes len binary representation
    of UUID v4 to the memory at given address.

    - add gen_rand_uuid_str() - this function writes 37 bytes len hexadecimal
    ASCII string representation of UUID v4 to the memory at given address.

    Signed-off-by: Przemyslaw Marczak
    Cc: Stephen Warren
    Cc: Lukasz Majewski
    [trini: Add CONFIG_EFI_PARTITION to fallbacks]
    Signed-off-by: Tom Rini

    Przemyslaw Marczak
     
  • Changes in lib/uuid.c to:
    - uuid_str_to_bin()
    - uuid_bin_to_str()

    New parameter is added to specify input/output string format in listed functions
    This change allows easy recognize which UUID type is or should be stored in given
    string array. Binary data of UUID and GUID is always stored in big endian, only
    string representations are different as follows.

    String byte: 0 36
    String char: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    string UUID: be be be be be
    string GUID: le le le be be

    This patch also updates functions calls and declarations in a whole code.

    Signed-off-by: Przemyslaw Marczak
    Cc: Stephen Warren
    Cc: Lukasz Majewski
    Cc: trini@ti.com

    Przemyslaw Marczak
     
  • This commit introduces cleanup for uuid library.
    Changes:
    - move uuidstring conversion functions into lib/uuid.c so they can be
    used by code outside part_efi.c.
    - rename uuid_string() to uuid_bin_to_str() for consistency with existing
    uuid_str_to_bin()
    - add an error return code to uuid_str_to_bin()
    - update existing code to the new library functions.

    Signed-off-by: Przemyslaw Marczak
    Cc: Stephen Warren
    Cc: Lukasz Majewski
    Cc: trini@ti.com

    Przemyslaw Marczak
     
  • Commit 2faf5fb82ed6 introduced a regression that causes a data
    abort when running scsi init followed by scsi reset.

    There are 2 problems with the original commit
    1) ALLOC_CACHE_ALIGN_BUFFER() allocates memory on the stack but is
    assigned to ataid[port] and used by other functions.
    2) The function ata_scsiop_inquiry() tries to free memory which was
    never allocated on the heap.

    Fix these problems by using tmpid as a temporary cache aligned buffer.
    Allocate memory separately for ataid[port] and re-use it if required.

    Fixes: 2faf5fb82ed6 (ahci: Fix cache align error messages)

    Reported-by: Eli Nidam
    Signed-off-by: Roger Quadros

    Roger Quadros
     

02 Apr, 2014

6 commits

  • 1. The Data timeout counter value in eSDHC_SYSCTL register is
    not working as it should be, so add quirks to enable this
    workaround to fix it to the max value 0xE.

    2. Add CONFIG_SYS_FSL_ERRATUM_ESDHC111 to enable its workaround.

    * Update of patch for change mmc interface by
    Pantelis Antoniou

    Signed-off-by: Haijun Zhang
    Acked-by: Pantelis Antoniou

    Haijun.Zhang
     
  • The controller reset is performed now if command error occurs.
    This commit adds the reset for the case of data related errors too.

    Signed-off-by: Andrew Gabbasov
    Acked-by: Pantelis Antoniou

    Andrew Gabbasov
     
  • Calculation of the timeout value should be based on actual clock value,
    written to controller registers. Since mmc->tran_speed is either the
    maximum allowed speed, or the preliminary value, that is be not yet
    set to registers, the actual timeout, taken by the controller, based
    on its clock settings, may be much longer than expected, based on
    mmc->tran_speed value. In particular it happens at early initialization
    stage, when typical value of mmc->tran_speed is 20MHz or 26MHz, while
    actual clock setting, configured in the controller, is 400kHz.
    It's more correct to use mmc->clock value for timeout calculation instead.

    Signed-off-by: Andrew Gabbasov
    Acked-by: Pantelis Antoniou

    Andrew Gabbasov
     
  • Some eMMC chips may need the RST_n_FUNCTION bit set to a non-zero value
    in order for warm reset of the system to work. Details on this being
    required will be part of the eMMC datasheet. Also add using this
    command to the dra7xx README.

    * Whitespace fix by panto

    Signed-off-by: Tom Rini
    Acked-by: Pantelis Antoniou

    Tom Rini
     
  • Signed-off-by: Nobuhiro Iwamatsu
    Reported-by: Masahiro Yamada
    Acked-by: Pantelis Antoniou

    Nobuhiro Iwamatsu
     
  • BY commit "mmc: Split mmc struct, rework mmc initialization (v2)",
    sh_mmcif has compile error. This fixes compile error.

    Signed-off-by: Nobuhiro Iwamatsu
    CC: Pantelis Antoniou
    Reported-by: Masahiro Yamada
    Acked-by: Pantelis Antoniou

    Nobuhiro Iwamatsu
     

01 Apr, 2014

1 commit


31 Mar, 2014

6 commits


29 Mar, 2014

17 commits

  • In the recent mmc cleanup, the mmc_host_is_spi macro was broken and
    bfin_sdh.c had mmc->bus_width turned into mmc_bus_width(mmc), both of
    which were incorrect.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • On the boards this target supports this option is either non possible
    without hardware mods (Beaglebone White/Black) or not supported due to
    board design. Drop this and regain some space.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • If we build this function in cases where we would be discarding it
    anyhow we still end up with maybe unused warnings. Rather than litter
    the function with __maybe_unused, just spell out when to build it.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • "make clean", "make clobber", "make mrproper" and "make distclean"
    missed to clean-up some files when they were run with
    O= option.

    Signed-off-by: Masahiro Yamada
    Reported-by: Wolfgang Denk

    Masahiro Yamada
     
  • Prior to Kbuild, the build system created a build directory,
    when it did not exist, for out-of-tree build.

    This feature was dropped when we switched to Kbuild
    because many of lines in makefiles were copied from Linux Kernel.
    (In Linux Kernel, we have to create a build directory by ourselves
    before starting build.)

    That feature seems worth reviving for less typing
    even if our code and Linux Kernel diverge.

    Signed-off-by: Masahiro Yamada
    Suggested-by: Simon Glass
    Acked-by: Simon Glass
    Tested-by: Simon Glass

    Masahiro Yamada
     
  • We should move forward to remove the old board init code. Add a
    prominent message to encourage maintainers to get started on this
    work.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This allows to use exynos random number generator by enabling configs:
    - CONFIG_EXYNOS_ACE_SHA
    - CONFIG_LIB_HW_RAND

    Signed-off-by: Przemyslaw Marczak
    Acked-by: Lukasz Majewski
    cc: Piotr Wilczek
    cc: Minkyu Kang

    Przemyslaw Marczak
     
  • This patch adds implementation of rand library based on hardware random
    number generator of security subsystem in Exynos SOC.

    This library includes:
    - srand() - used for seed hardware block
    - rand() - returns random number
    - rand_r() - the same as above with given seed

    which depends on CONFIG_EXYNOS_ACE_SHA and CONFIG_LIB_HW_RAND.

    Signed-off-by: Przemyslaw Marczak
    cc: Akshay Saraswat
    cc: ARUN MANKUZHI
    cc: Minkyu Kang
    Cc: Michael Walle
    Cc: Tom Rini
    Cc: Masahiro Yamada

    Przemyslaw Marczak
     
  • Signed-off-by: Przemyslaw Marczak
    Cc: Minkyu Kang

    Przemyslaw Marczak
     
  • New configs:
    - CONFIG_LIB_RAND - to enable implementation of rand library in lib/rand.c
    - CONFIG_LIB_HW_RAND - to enable hardware based implementations of lib rand

    Other changes:
    - add CONFIG_LIB_RAND to boards configs which needs rand()
    - put only one rand.o dependency in lib/Makefile

    CONFIG_LIB_HW_RAND should be defined for drivers which implements rand library
    (declared in include/common.h):
    - void srand(unsigned int seed)
    - unsigned int rand(void)
    - unsigned int rand_r(unsigned int *seedp)

    Signed-off-by: Przemyslaw Marczak
    Cc: Michael Walle
    Cc: Tom Rini
    Cc: Masahiro Yamada

    Przemyslaw Marczak
     
  • When using CONFIG_SYS_I2C i2c needs to be initialized by
    i2c_init_all(). This is done in some places but not in
    eeprom_init().

    Signed-off-by: Matthias Fuchs

    Matthias Fuchs
     
  • CPU sets DMA buffer descriptors with data required for inetrnal DMA such as:
    * Ownership of BD
    * Buffer size
    * Pointer to data buffer in memory

    Then we need to make sure DMA engine of NAND controller gets proper data.
    For this we flush buffer rescriptor.

    Then we're ready for DMA transaction.

    Signed-off-by: Alexey Brodkin

    Cc: Vineet Gupta
    Cc: Tom Rini

    Alexey Brodkin
     
  • It's important to have ability to flush/invalidate each DMA buffer descriptor
    individually to prevent incoherency of adjacent BDs.

    Signed-off-by: Alexey Brodkin

    Cc: Vineet Gupta
    Cc: Joe Hershberger
    Cc: Vipin Kumar
    Cc: Stefan Roese
    Cc: Shiraz Hashim
    Cc: Albert ARIBAUD
    Cc: Amit Virdi
    Cc: Sonic Zhang

    Alexey Brodkin
     
  • Since TIZEN group has been used 450 X 140 bmp logo for lunchbox,
    this patch tries to change the logo size from 500 X 150 to official size.
    By reducing image size, we also save about 35KB.

    To make row aligned 4 bytes, add 2 pixels to row. Therefore the real width
    of image size is 452.

    Signed-off-by: Jonghwa Lee
    Reviewed-by : Przemyslaw Marczak

    Jonghwa Lee
     
  • Fix the macros guarding the spl.h header for various platforms. Due to
    a typo and a propagation of it, the macros went out-of-sync with their
    ifdef check, so fix this.

    Signed-off-by: Marek Vasut
    Cc: Tom Rini

    Marek Vasut
     
  • U-Boot has supported two kinds of asm-offsets.h.

    One is generic for all architectures and its source is located at
    ./lib/asm-offsets.c.

    The other is SoC specific and its source is under SoC directory.
    The problem here is that only boards with SoC directory can use
    the asm-offsets infrastructure.
    Putting asm-offsets.c right under CPU directory does not work.

    Now a new demand is coming. PowerPC folks want to use asm-offsets.
    But no PowerPC boards have SoC directory.

    It seems inconsistent that some boards add asm-offsets.c to SoC
    directoreis and some to CPU directories.
    It looks more reasonable to put asm-offsets.c under arch/$(ARCH)/lib.

    This commit merges asm-offsets.c under SoC directories into
    arch/$(ARCH)/lib/asm-offsets.c.

    By the way, I doubt the necessity of some entries in asm-offsets.c.
    I am leaving refactoring to the board maintainers.
    Please check "TODO" in the comment blocks in
    arch/{arm,nds32}/lib/asm-offsets.c.

    Signed-off-by: Masahiro Yamada
    Cc: Yuantian Tang

    Masahiro Yamada
     
  • U-Boot uses the 'mkimage' tool to produce various image types,
    not only uImage image type. Rename the invocation name from
    UIMAGE to MKIMAGE.

    The following command was used to do the replacement:
    git grep 'quiet_cmd_mkimage.* = UIMAGE' | cut -d : -f 1 | \
    xargs -i sed -i "s@\(quiet_cmd_mkimage\)\(.*\) = UIMAGE @\1\2 = MKIMAGE@" {}

    Signed-off-by: Marek Vasut
    Cc: Tom Rini
    Cc: Masahiro Yamada
    Acked-by: Masahiro Yamada

    Marek Vasut
     

28 Mar, 2014

2 commits


24 Mar, 2014

2 commits

  • For some time we have been using the run_command() with properly crafted
    string. Such approach turned to be unreliable and error prone.

    Switch to "native" mmc subsystem API would allow better type checking and
    shall improve speed.

    Also, it seems that this API is changing less often than u-boot commands.
    The approach similar to env operations on the eMMC has been reused.

    Signed-off-by: Lukasz Majewski

    Łukasz Majewski
     
  • The way that struct mmc was implemented was a bit of a mess;
    configuration and internal state all jumbled up in a single structure.

    On top of that the way initialization is done with mmc_register leads
    to a lot of duplicated code in drivers.

    Typically the initialization got something like this in every driver.

    struct mmc *mmc = malloc(sizeof(struct mmc));
    memset(mmc, 0, sizeof(struct mmc);
    /* fill in fields of mmc struct */
    /* store private data pointer */
    mmc_register(mmc);

    By using the new mmc_create call one just passes an mmc config struct
    and an optional private data pointer like this:

    struct mmc = mmc_create(&cfg, priv);

    All in tree drivers have been updated to the new form, and expect
    mmc_register to go away before long.

    Changes since v1:

    * Use calloc instead of manually calling memset.
    * Mark mmc_register as deprecated.

    Signed-off-by: Pantelis Antoniou

    Pantelis Antoniou