19 Oct, 2016

2 commits


08 Oct, 2016

1 commit

  • By default saveenv option is not supported for SPL. This patch
    enable the support for save environment variable for SPL build.

    Enable save environment support in SPL after setenv. By default
    the saveenv option is not provided in SPL, but some boards need
    this support in 'Falcon' boot, where SPL need to boot from
    different images based on environment variable set by OS. For
    example OS may set "reboot_image" environment variable to
    "recovery" inorder to boot recovery image by SPL. The SPL read
    "reboot_image" and act accordingly and change the reboot_image
    to default mode using setenv and save the environemnt.

    Signed-off-by: Ravi Babu
    Reviewed-by: Simon Glass

    change in v1:
    - dropped SUPPORT, use CONFIG_SPL_SAVEENV
    - updates the comments in mmc_private.h

    B, Ravi
     

17 Sep, 2016

1 commit

  • At present TPL uses the same options as SPL support. In a few cases the board
    config enables or disables the SPL options depending on whether
    CONFIG_TPL_BUILD is defined.

    With the move to Kconfig, options are determined for the whole build and
    (without a hack like an #undef in a header file) cannot be controlled in this
    way.

    Create new TPL options for these and update users. This will allow Kconfig
    conversion to proceed for these boards.

    Signed-off-by: Simon Glass

    Simon Glass
     

15 Jul, 2016

1 commit


13 Jun, 2016

1 commit

  • This allows a board to configure verified boot within the SPL using
    a FIT or FIT with external data. It also allows the SPL to perform
    signature verification without needing relocation.

    The board configuration will need to add the following feature defines:
    CONFIG_SPL_CRYPTO_SUPPORT
    CONFIG_SPL_HASH_SUPPORT
    CONFIG_SPL_SHA256

    In this example, SHA256 is the only selected hashing algorithm.

    And the following booleans:
    CONFIG_SPL=y
    CONFIG_SPL_DM=y
    CONFIG_SPL_LOAD_FIT=y
    CONFIG_SPL_FIT=y
    CONFIG_SPL_OF_CONTROL=y
    CONFIG_SPL_OF_LIBFDT=y
    CONFIG_SPL_FIT_SIGNATURE=y

    Signed-off-by: Teddy Reed
    Acked-by: Simon Glass
    Acked-by: Andreas Dannenberg
    Acked-by: Sumit Garg

    Teddy Reed
     

07 Jun, 2016

1 commit

  • When setting up a DDR controller it is useful to be able to display
    frequencies in a readable form. Make the strmhz() function available in
    SPL builds provided there is full vsprintf available.

    Reviewed-by: Tony O'Brien
    Reviewed-by: Simon Glass
    Signed-off-by: Chris Packham

    Chris Packham
     

16 Mar, 2016

1 commit

  • Now that we have all the bits and pieces ready for EFI payload loading
    support, hook them up in Makefiles and KConfigs so that we can build.

    Signed-off-by: Alexander Graf
    Reviewed-by: Simon Glass
    Tested-by: Simon Glass
    [trini: Enable only when we of OF_LIBFDT, disable on kwb and colibri_pxa270]
    Signed-off-by: Tom Rini

    Alexander Graf
     

15 Mar, 2016

1 commit

  • Add an option to enable libfdt in SPL. This can be useful when decoding
    FIT files in SPL.

    We need to make sure this option is not enabled in SPL by this change.
    Also this option needs to be enabled in host builds. Si add a new
    IMAGE_USE_LIBFDT #define which can be used in files that are built on the
    host but must also build for U-Boot and SPL.

    Signed-off-by: Simon Glass

    Simon Glass
     

16 Feb, 2016

1 commit

  • If BUILD_TAG is part of KBUILD_CFLAGS, then any time the value changes,
    all files get rebuilt. In a continuous integration environment, the value
    will change every build. This wastes time, assuming that incremental
    builds would otherwise occur.

    To solve this, remove BUILD_TAG from KBUILD_CFLAGS and add it to CFLAGS
    for just the one file that uses it. This does have the disadvantage that
    if any other files want to use the flag, we'll need to duplicate this
    custom CFLAGS setup logic. However, it seems unlikely we'll need this.

    An alternative would be to add BUILD_TAG to the "local version" and remove
    the special case code from display_options.c. However, that would affect
    the format of the U-Boot signon message, which may negatively affect
    people looking for specific data there. The approach of using
    file-specific CFLAGS was suggested by Masahiro Yamada.

    Signed-off-by: Stephen Warren
    Reviewed-by: Tom Rini
    Reviewed-by: Masahiro Yamada
    Acked-by: Simon Glass

    Stephen Warren
     

14 Dec, 2015

2 commits


23 Nov, 2015

1 commit

  • This patch adds a small printf() version that supports all basic formats.
    Its intented to be used in U-Boot SPL versions on platforms with very
    limited internal RAM sizes.

    To enable it, just define CONFIG_USE_TINY_PRINTF in your defconfig. This
    will result in the SPL using this tiny function and the main U-Boot
    still using the full-blown printf() function.

    This code was copied from:
    http://www.sparetimelabs.com/printfrevisited
    With mostly only coding style related changes so that its checkpatch
    clean.

    The size reduction is about 2.5KiB. Here a comparison for the db-mv784mp-gp
    (Marvell AXP) SPL:

    Without this patch:
    58963 18536 1928 79427 13643 ./spl/u-boot-spl

    With this patch:
    56542 18536 1956 77034 12cea ./spl/u-boot-spl

    Note:
    To make it possible to compile tiny-printf.c instead of vsprintf.c when
    CONFIG_USE_TINY_PRINTF is defined, the functions printf() and vprintf() are
    moved from common/console.c into vsprintf.c in this patch.

    Signed-off-by: Stefan Roese
    Cc: Simon Glass
    Cc: Hans de Goede
    Cc: Tom Rini
    Cc: Albert Aribaud

    Stefan Roese
     

20 Nov, 2015

1 commit


12 Oct, 2015

1 commit

  • This patch adds support for LZ4-compressed FIT image contents. This
    algorithm has a slightly worse compression ration than LZO while being
    nearly twice as fast to decompress. When loading images from a fast
    storage medium this usually results in a boot time win.

    Sandbox-tested only since I don't have a U-Boot development system set
    up right now. The code was imported unchanged from coreboot where it's
    proven to work, though. I'm mostly interested in getting this recognized
    by mkImage for use in a downstream project.

    Signed-off-by: Julius Werner
    Acked-by: Simon Glass

    Julius Werner
     

19 Aug, 2015

2 commits

  • We have flipped CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing
    devices, $(SPL_) and CONFIG_IS_ENABLED(), so we are ready to clear
    away the ugly logic in include/fdtdec.h:

    #ifdef CONFIG_OF_CONTROL
    # if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL)
    # define OF_CONTROL 0
    # else
    # define OF_CONTROL 1
    # endif
    #else
    # define OF_CONTROL 0
    #endif

    Now CONFIG_IS_ENABLED(OF_CONTROL) is the substitute. It refers to
    CONFIG_OF_CONTROL for U-boot proper and CONFIG_SPL_OF_CONTROL for
    SPL.

    Also, we no longer have to cancel CONFIG_OF_CONTROL in
    include/config_uncmd_spl.h and scripts/Makefile.spl.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Tom Rini
    Reviewed-by: Simon Glass
    Acked-by: Linus Walleij

    Masahiro Yamada
     
  • As we discussed a couple of times, negative CONFIG options make our
    life difficult; CONFIG_SYS_NO_FLASH, CONFIG_SYS_DCACHE_OFF, ...
    and here is another one.

    Now, there are three boards enabling OF_CONTROL on SPL:
    - socfpga_arria5_defconfig
    - socfpga_cyclone5_defconfig
    - socfpga_socrates_defconfig

    This commit adds CONFIG_SPL_OF_CONTROL for them and deletes
    CONFIG_SPL_DISABLE_OF_CONTROL from the other boards to invert
    the logic.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Tom Rini
    Reviewed-by: Simon Glass

    Masahiro Yamada
     

05 Aug, 2015

1 commit

  • When running as an EFI application, U-Boot must request memory from EFI,
    and provide access to the boot services U-Boot needs.

    Add library code to perform these tasks. This includes efi_main() which is
    the entry point from EFI. U-Boot is built as a shared library.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng

    Simon Glass
     

22 Jul, 2015

3 commits


23 Apr, 2015

1 commit


12 Dec, 2014

1 commit

  • The functions error's numbers are standarized - but the error
    messages are not.

    The errors are often handled with unclear error messages,
    so why not use an errno standarized messages.

    Advantages:
    - This could decrease the binary size.
    - Appended with a detailed information,
    the error message will be clear.

    This commit introduces new function:
    - const char *errno_to_str(int errno)

    The functions returns a pointer to the errno corresponding text message:
    - if errno is null or positive number - a pointer to "Success" message
    - if errno is negative - a pointer to errno related message

    Signed-off-by: Przemyslaw Marczak
    Reviewed-by: Tom Rini

    Przemyslaw Marczak
     

08 Dec, 2014

3 commits


26 Aug, 2014

2 commits

  • - move linux specific defines from usb and video code
    into linux/compat.h
    - move common linux specific defines from include/ubi_uboot.h
    to linux/compat.h
    - add for new mtd/ubi/ubifs sync new needed linux specific
    defines to linux/compat.h

    Signed-off-by: Heiko Schocher
    Cc: Marek Vasut
    Cc: Anatolij Gustschin
    [trini: Add spin_lock_irqsave/spin_unlock_irqrestore dummies from
    usb/lin_gadet_compat.h]
    Signed-off-by: Tom Rini

    Heiko Schocher
     
  • from linux 3.14:

    commit 455c6fdbd219161bd09b1165f11699d6d73de11c
    Author: Linus Torvalds
    Date: Sun Mar 30 20:40:15 2014 -0700

    Linux 3.14

    Needed for the MTD/UBI/UBIFS resync

    Just copied the files from Linux, and added in the c-file
    the "#define __UBOOT__" for adding U-Boot special code. In
    this case we use this just for adding including U-Boot
    headers.

    Signed-off-by: Heiko Schocher
    Cc: Marek Vasut
    Cc: Sergey Lapin
    Cc: Scott Wood
    Cc: Tom Rini

    Heiko Schocher
     

23 Jun, 2014

1 commit

  • move fdtdec_get_int() out of lib/fdtdec.c into lib/fdtdec_common.c
    as this function is also used, if CONFIG_OF_CONTROL is not
    used. Poped up on the ids8313 board using signed FIT images,
    and activating CONFIG_SYS_GENERIC_BOARD. Without this patch
    it shows on boot:

    No valid FDT found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG_OF_EMBED. For sandbox, use -d

    With this patch, it boots again with CONFIG_SYS_GENERIC_BOARD
    enabled.

    Signed-off-by: Heiko Schocher
    Acked-by: Simon Glass
    Cc: Tom Rini

    Heiko Schocher
     

23 May, 2014

1 commit


03 Apr, 2014

2 commits

  • 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
     
  • 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
     

29 Mar, 2014

1 commit

  • 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
     

07 Mar, 2014

1 commit

  • Many (but not all) of Blackfin boards give -O2 option
    to compile under lib/ directory.
    That means lib/ should be speed-optimized,
    whereas other parts should be size-optimized.

    We want to keep the same behavior,
    but do not want to parse board/*/config.mk again and again.
    We've got no choice but to invent a new method.

    CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED, if it is enabled,
    gives -O2 flag only for building under lib/ directory.

    Dirty codes which I had marked as "FIX ME"
    in board/${BOARD}/config.mk have been deleted.
    Instead, CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED has been
    defined in include/configs/${BOARD}.h.

    Signed-off-by: Masahiro Yamada
    Cc: Sonic Zhang

    Masahiro Yamada
     

27 Feb, 2014

1 commit

  • When we tell the compiler to optimize for ARMv7 (and ARMv6 for that
    matter) it assumes a default of SCTRL.A being cleared and unaligned
    accesses being allowed and fast at the hardware level. We set this bit
    and must pass along -mno-unaligned-access so that the compiler will
    still breakdown accesses and not trigger a data abort.

    To better help understand the requirements of the project with respect
    to unaligned memory access, the
    Documentation/unaligned-memory-access.txt file has been added as
    doc/README.unaligned-memory-access.txt and is taken from the v3.14-rc1
    tag of the kernel.

    Cc: Albert ARIBAUD
    Cc: Mans Rullgard
    Signed-off-by: Tom Rini

    Tom Rini
     

20 Feb, 2014

2 commits

  • Now we are ready to switch over to real Kbuild.

    This commit disables temporary scripts:
    scripts/{Makefile.build.tmp, Makefile.host.tmp}
    and enables real Kbuild scripts:
    scripts/{Makefile.build,Makefile.host,Makefile.lib}.

    This switch is triggered by the line in scripts/Kbuild.include
    -build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build.tmp obj
    +build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj

    We need to adjust some build scripts for U-Boot.
    But smaller amount of modification is preferable.

    Additionally, we need to fix compiler flags which are
    locally added or removed.

    In Kbuild, it is not allowed to change CFLAGS locally.
    Instead, ccflags-y, asflags-y, cppflags-y,
    CFLAGS_$(basetarget).o, CFLAGS_REMOVE_$(basetarget).o
    are prepared for that purpose.

    Signed-off-by: Masahiro Yamada
    Tested-by: Gerhard Sittig

    Masahiro Yamada
     
  • This commit changes the working directory
    where the build process occurs.

    Before this commit, build process occurred under the source
    tree for both in-tree and out-of-tree build.

    That's why we needed to add $(obj) prefix to all generated
    files in makefiles like follows:
    $(obj)u-boot.bin: $(obj)u-boot

    Here, $(obj) is empty for in-tree build, whereas it points
    to the output directory for out-of-tree build.

    And our old build system changes the current working directory
    with "make -C " syntax when descending into the
    sub-directories.

    On the other hand, Kbuild uses a different idea
    to handle out-of-tree build and directory descending.

    The build process of Kbuild always occurs under the output tree.
    When "O=dir/to/store/output/files" is given, the build system
    changes the current working directory to that directory and
    restarts the make.

    Kbuild uses "make -f $(srctree)/scripts/Makefile.build obj="
    syntax for descending into sub-directories.
    (We can write it like "make $(obj)=" with a shorthand.)
    This means the current working directory is always the top
    of the output directory.

    Signed-off-by: Masahiro Yamada
    Tested-by: Gerhard Sittig

    Masahiro Yamada
     

09 Jan, 2014

1 commit

  • Add an implementation of the CRC8 algorithm. This is required by the TPM
    emulation, but is probably useful to U-Boot in general.

    Signed-off-by: Simon Glass

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

    Simon Glass
     

25 Nov, 2013

1 commit


01 Nov, 2013

1 commit