05 Mar, 2018

1 commit

  • Thomas reported U-Boot failed to build host tools if libfdt-devel
    package is installed because tools include libfdt headers from
    /usr/include/ instead of using internal ones.

    This commit moves the header code:
    include/libfdt.h -> include/linux/libfdt.h
    include/libfdt_env.h -> include/linux/libfdt_env.h

    and replaces include directives:
    #include -> #include
    #include -> #include

    Reported-by: Thomas Petazzoni
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

19 Dec, 2017

1 commit


14 Dec, 2017

1 commit

  • This drops the limit that fpga is only loaded from FIT images for Xilinx.
    This is done by moving the 'partial' check from 'common/image.c' to
    'drivers/fpga/xilinx.c' (the only driver supporting partial images yet)
    and supplies a weak default implementation in 'drivers/fpga/fpga.c'.

    Signed-off-by: Simon Goldschmidt
    Tested-by: Michal Simek (On zcu102)
    Signed-off-by: Michal Simek

    Goldschmidt Simon
     

08 Dec, 2017

1 commit


26 Nov, 2017

1 commit

  • To boot on ARMv8 systems with ARM Trusted Firmware, we need to
    assemble an ATF-specific parameter structure and also provide the
    address of the images started by ATF (e.g. BL3-3, which may be the
    full U-Boot).

    To allow us to identify an ARM Trusted Firmware contained in a FIT
    image, this adds the necessary definitions.

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

    Philipp Tomsich
     

16 Oct, 2017

2 commits


13 Sep, 2017

1 commit


16 Aug, 2017

2 commits

  • We are now using an env_ prefix for environment functions. Rename these
    other functions as well, for consistency:

    getenv_vlan()
    getenv_bootm_size()
    getenv_bootm_low()
    getenv_bootm_mapsize()
    env_get_default()

    Suggested-by: Wolfgang Denk
    Signed-off-by: Simon Glass

    Simon Glass
     
  • We are now using an env_ prefix for environment functions. Rename these
    two functions for consistency. Also add function comments in common.h.

    Quite a few places use getenv() in a condition context, provoking a
    warning from checkpatch. These are fixed up in this patch also.

    Suggested-by: Wolfgang Denk
    Signed-off-by: Simon Glass

    Simon Glass
     

21 Jan, 2017

1 commit


20 Jan, 2017

1 commit

  • In 35fc84f, bootm was refactored so plain 'bootm' and
    'bootm ' shared a common implementation.
    The 'bootm ramdisk' command implementation is now part of the common
    implementation but not invoke by plain 'bootm' since the original
    implementation never did ramdisk relocation. Instead, ramdisk
    relocation happened in image_setup_linux() which is typically called
    during the OS portion of 'bootm'.

    On ARM, parameters to the Linux kernel can either be passed by FDT or
    ATAGS. When using FDT, image_setup_linux() is called which also triggers
    ramdisk relocation. When using ATAGS, image_setup_linux() is _not_
    called because it mostly does FDT setup.

    Instead of calling image_setup_linux() in both FDT and ATAGS cases,
    include BOOTM_STATE_RAMDISK in the requested states during a plain
    'bootm' if CONFIG_SYS_BOOT_RAMDISK_HIGH is set and remove the ramdisk
    relocation from image_setup_linux(). This causes ramdisk relocation to
    happen on any system where CONFIG_SYS_BOOT_RAMDISK_HIGH regardless of
    the OS being booted. Also remove IMAGE_ENABLE_RAMDISK_HIGH as it was
    only used by the now-removed code from image_setup_linux().

    Signed-off-by: Rick Altherr
    Reviewed-by: Simon Glass
    Reviewed-by: Joel Stanley

    Rick Altherr
     

03 Jan, 2017

1 commit

  • When we want to use Secure Boot with HAB from SPL over U-Boot.img,
    we need to append the IVT to the image and leave space for the CSF.
    Images generated as firmware_ivt can directly be signed using the
    Freescale code signing tool. For creation of a CSF, mkimage outputs
    the correct HAB Blocks for the image.
    The changes to the usual firmware image class are quite small,
    that is why I implemented that directly into the default_image.

    Cc: sbabic@denx.de

    v2-Changes: None

    Signed-off-by: Sven Ebenfeld
    Reviewed-by: George McCollister
    Tested-by: George McCollister

    Sven Ebenfeld
     

20 Dec, 2016

1 commit


04 Dec, 2016

2 commits


05 Nov, 2016

1 commit


14 Oct, 2016

1 commit

  • These have now landed upstream. The naming is different and in one case the
    function signature has changed. Update the code to match.

    This applies the following upstream commits by
    Thierry Reding :

    604e61e fdt: Add functions to retrieve strings
    8702bd1 fdt: Add a function to get the index of a string
    2218387 fdt: Add a function to count strings

    Signed-off-by: Simon Glass

    Simon Glass
     

06 Oct, 2016

1 commit


24 Sep, 2016

1 commit


22 Sep, 2016

1 commit

  • Commit bac17b78dace ("image-fit: switch ENOLINK to ENOENT") changed
    fit_get_node_from_config to return -ENOENT when a property doesn't
    exist, but didn't change any of its callers which check return values.
    Notably it didn't change boot_get_ramdisk, which leads to U-Boot failing
    to boot FIT images which don't include ramdisks with the following
    message:

    Ramdisk image is corrupt or invalid

    It also didn't take into account that by returning -ENOENT to denote the
    lack of a property we lost the ability to determine from the return
    value of fit_get_node_from_config whether it was the property or the
    configuration node that was missing, which may potentially lead callers
    to accept invalid FIT images.

    Fix this by having fit_get_node_from_config return -EINVAL when the
    configuration node isn't found and -ENOENT when the property isn't
    found, which seems to make semantic sense. Callers that previously
    checked for -ENOLINK are adjusted to check for -ENOENT, which fixes the
    breakage introduced by commit bac17b78dace ("image-fit: switch ENOLINK
    to ENOENT").

    The only other user of the return fit_get_node_from_config return value,
    indirectly, is bootm_find_os which already checked for -ENOENT. From a
    read-through of the code I suspect it ought to have been checking for
    -ENOLINK prior to bac17b78dace ("image-fit: switch ENOLINK to ENOENT")
    anyway, which would make it right after this patch, but this would be
    good to get verified by someone who knows this x86 code or is able to
    test it.

    Signed-off-by: Paul Burton
    Cc: Jonathan Gray
    Cc: Marek Vasut
    Acked-by: Marek Vasut
    Acked-by: Stefan Roese
    Acked-by: George McCollister
    Tested-by: George McCollister

    Paul Burton
     

16 Aug, 2016

1 commit

  • The Xtensa processor architecture is a configurable, extensible,
    and synthesizable 32-bit RISC processor core provided by Cadence.

    This is the first part of the basic architecture port with changes to
    common files. The 'arch/xtensa' directory, and boards and additional
    drivers will be in separate commits.

    Signed-off-by: Chris Zankel
    Signed-off-by: Max Filippov
    Reviewed-by: Simon Glass
    Reviewed-by: Tom Rini

    Chris Zankel
     

15 Jul, 2016

3 commits


24 May, 2016

3 commits


15 Mar, 2016

3 commits

  • Sometimes it is useful to obtain the short name for an Operating System,
    architecture or compression mechanism. Provide functions for this.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • 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
     
  • There are already two FIT options in Kconfig but the CONFIG options are
    still in the header files. We need to do a proper move to fix this.

    Move these options to Kconfig and tidy up board configuration:

    CONFIG_FIT
    CONFIG_OF_BOARD_SETUP
    CONFIG_OF_SYSTEM_SETUP
    CONFIG_FIT_SIGNATURE
    CONFIG_FIT_BEST_MATCH
    CONFIG_FIT_VERBOSE
    CONFIG_OF_STDOUT_VIA_ALIAS
    CONFIG_RSA

    Unfortunately the first one is a little complicated. We need to make sure
    this option is not enabled in SPL by this change. Also this option is
    enabled automatically in the host builds by defining CONFIG_FIT in the
    image.h file. To solve this, add a new IMAGE_USE_FIT #define which can
    be used in files that are built on the host but must also build for U-Boot
    and SPL.

    Note: Masahiro's moveconfig.py script is amazing.

    Signed-off-by: Simon Glass
    [trini: Add microblaze change, various configs/ re-applies]
    Signed-off-by: Tom Rini

    Simon Glass
     

08 Feb, 2016

1 commit

  • Commit 9c11135ce053 ("image: fix getenv_bootm_size() function") fixed
    the case where "bootm_low" is defined, but "bootm_size" is not.
    Instead, it broke the case where neither "bootm_low" nor "bootm_size"
    is defined. Fix this function again.

    Fixes: 9c11135ce053 ("image: fix getenv_bootm_size() function")
    Signed-off-by: Masahiro Yamada
    Tested-by: Matthias Weisser
    Tested-by: Hannes Schmelzer

    Masahiro Yamada
     

06 Feb, 2016

1 commit

  • Correct spelling of "U-Boot" shall be used in all written text
    (documentation, comments in source files etc.).

    Signed-off-by: Bin Meng
    Reviewed-by: Heiko Schocher
    Reviewed-by: Simon Glass
    Reviewed-by: Minkyu Kang

    Bin Meng
     

19 Jan, 2016

1 commit


13 Jan, 2016

1 commit

  • To boot Linux, we should prevent Initramdisk and FDT from going too
    high.

    Currently, boot_relocate_fdt() checks "fdt_high" environment first,
    and then falls back to getenv_bootm_mapsize() + getenv_bootm_low()
    if "fdt_high" is missing.

    On the other hand, boot_ramdisk_high() only checks "initrd_high" to
    get the address limit for the Initramdisk. We also want to let this
    case fall back to getenv_bootm_mapsize() + getenv_bootm_low().

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

19 Nov, 2015

1 commit

  • As with other platforms vendors love to create their own boot header
    formats. Xilinx is no different and for the Zynq platform/SoC there
    exists the "boot.bin" which is read by the platforms bootrom. This
    format is described to a useful extent within the Xilinx Zynq TRM.

    This implementation adds support for the 'zynqimage' to mkimage. The
    implementation only considers the most common boot header which is
    un-encrypted and packed directly after the boot header itself (no
    XIP, etc.). However this implementation does take into consideration the
    other fields of the header for image dumping use cases (vector table and
    register initialization).

    Signed-off-by: Nathan Rossi
    Cc: Michal Simek
    Cc: Tom Rini
    Reviewed-by: Tom Rini
    Signed-off-by: Michal Simek

    Nathan Rossi
     

28 Oct, 2015

1 commit


12 Oct, 2015

2 commits

  • In 2dd4632 the check for where a ramdisk is found on an Android image
    was got moved into the "normal" loop here, causing people to have to
    pass the kernel address in the ramdisk address location in order to have
    Android boot still. This changed previous behavior so perform a check
    early in the function to see if we have an Android image and if so use
    that as where to look for the ramdisk (which is what the rest of the
    code here expects). We allow for this to still be overridden with an
    explicit ramdisk address to be passed as normal.

    Cc: Rob Herring
    Reported-by: Paul Kocialkowski
    Signed-off-by: Tom Rini

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

03 Sep, 2015

1 commit

  • The Rockchip boot ROM requires a particular file format for booting from SPI.
    It consists of a 512-byte header encoded with RC4, some padding and then up
    to 32KB of executable code in 2KB blocks, separated by 2KB empty blocks.

    Add support to mkimage so that an SPL image (u-boot-spl-dtb.bin) can be
    converted to this format. This allows booting from SPI flash on supported
    machines.

    Signed-off-by: Simon Glass

    Simon Glass