13 Jun, 2018

1 commit


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
     

08 Feb, 2018

2 commits

  • Follow bootz's pattern by moving the booti_setup to arch/arm/lib.
    This allows to use booti_setup in other paths, e.g booting
    an Android image containing Image format.

    Note that kernel relocation is move out of booti_setup and it is the
    caller's responsibility to do it and allows them do it differently. say,
    cmd/booti.c just do a manually, while in the bootm path, we can use
    bootm_load_os(with some changes).

    Signed-off-by: Bin Chen
    Reviewed-by: Tom Rini

    Bin Chen
     
  • The second area of android image was intended to put a 2nd stage
    bootloader but in practice were rarely used (in my knowledge).

    An proposal was made to the AOSP to (re)use the second area as the dtb[1],
    This patch itself doesn't depend on that proposal being accepted but it won't
    be that helpful as well if that proposal won't be accepted. But don't do
    any harm as well.

    [1] https://android-review.googlesource.com/#/c/417447/
    Signed-off-by: Bin Chen
    Reviewed-by: Tom Rini
    Reviewed-by: Kever Yang

    Bin Chen
     

16 Jan, 2018

1 commit


12 Jan, 2018

1 commit


13 Dec, 2017

1 commit

  • For external data, FIT has a optional property "data-position" which
    can set the external data to a fixed offset to FIT beginning.
    Add the support for this property in SPL FIT.

    Signed-off-by: Ye Li
    Signed-off-by: Peng Fan
    Reviewed-by: Simon Glass
    Reviewed-by: Tomas Melin
    Cc: Pantelis Antoniou
    Cc: "Andrew F. Davis"
    Cc: Igor Grinberg
    Cc: "tomas.melin@vaisala.com"
    Cc: Kever Yang
    Cc: Andre Przywara
    Cc: York Sun
    Cc: Lokesh Vutla
    Cc: "Cooper Jr., Franklin"
    Cc: George McCollister
    Cc: Tuomas Tynkkynen
    Cc: Jean-Jacques Hiblot
    Cc: Rick Altherr
    Cc: Tom Rini
    Reviewed-by: Lokesh Vutla
    Reviewed-by: York Sun

    Peng Fan
     

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

1 commit


06 Oct, 2017

1 commit


15 Sep, 2017

1 commit


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
     

11 Jul, 2017

2 commits


10 Jun, 2017

1 commit


22 May, 2017

2 commits

  • Commit 94e3c8c4fd7b ("crypto/fsl - Add progressive hashing support
    using hardware acceleration.") created entries for CONFIG_SHA1,
    CONFIG_SHA256, CONFIG_SHA_HW_ACCEL, and CONFIG_SHA_PROG_HW_ACCEL.
    However, no defconfig has migrated to it. Complete the move by first
    adding additional logic to various Kconfig files to select this when
    required and then use the moveconfig tool. In many cases we can select
    these because they are required to implement other drivers. We also
    correct how we include the various hashing algorithms in SPL.

    This commit was generated as follows (after Kconfig additions):

    [1] tools/moveconfig.py -y SHA1 SHA256 SHA_HW_ACCEL
    [2] tools/moveconfig.py -y SHA_PROG_HW_ACCEL

    Note:
    We cannot move SHA_HW_ACCEL and SHA_PROG_HW_ACCEL simultaneously
    because there is dependency between them.

    Cc: Poonam Aggrwal
    Cc: Naveen Burmi
    Cc: Po Liu
    Cc: Shengzhou Liu
    Cc: Priyanka Jain
    Cc: Shaohui Xie
    Cc: Chunhe Lan
    Cc: Chander Kashyap
    Cc: Steve Rae
    Cc: Dirk Eibach
    Cc: Feng Li
    Cc: Alison Wang
    Cc: Sumit Garg
    Cc: Mingkai Hu
    Cc: York Sun
    Cc: Prabhakar Kushwaha
    Cc: Jaehoon Chung
    Cc: Akshay Saraswat
    Cc: Heiko Schocher
    Cc: Jagan Teki
    Signed-off-by: Tom Rini
    Reviewed-by: Simon Glass
    Signed-off-by: Tom Rini

    Tom Rini
     
  • We rename CONFIG_FIT_DISABLE_SHA256 to CONFIG_FIT_ENABLE_SHA256_SUPPORT which
    is enabled by default and now a positive option. Convert the handful of boards
    that were disabling it before to save space.

    Cc: Dirk Eibach
    Cc: Lukasz Dalek
    Signed-off-by: Tom Rini
    Reviewed-by: Simon Glass
    Reviewed-by: Simon Glass

    Tom Rini
     

09 Apr, 2017

1 commit

  • The function 'board_fit_image_post_process' is defined only when the
    config option CONFIG_FIT_IMAGE_POST_PROCESS is enabled. For secure
    systems that do not use SPL but do use FIT kernel images, only
    CONFIG_FIT_IMAGE_POST_PROCESS will be defined, which will result in an
    implicit declaration of function 'board_fit_image_post_process' warning
    while building u-boot. Fix this warning.

    Signed-off-by: Madan Srinivas
    Signed-off-by: Andrew F. Davis
    Reviewed-by: Tom Rini
    Reviewed-by: Lokesh Vutla

    Madan Srinivas
     

17 Mar, 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
     

17 Jan, 2017

1 commit


15 Jan, 2017

1 commit

  • Add support for signing with the pkcs11 engine. This allows FIT images
    to be signed with keys securely stored on a smartcard, hardware security
    module, etc without exposing the keys.

    Support for other engines can be added in the future by modifying
    rsa_engine_get_pub_key() and rsa_engine_get_priv_key() to construct
    correct key_id strings.

    Signed-off-by: George McCollister

    George McCollister
     

14 Jan, 2017

1 commit


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
     

04 Dec, 2016

2 commits


22 Nov, 2016

4 commits

  • Remove the need to explicitly add SHA/RSA pairings. Invalid SHA/RSA
    pairings will still fail on verify operations when the hash length is
    longer than the key length.

    Follow the same naming scheme "checksum,crytpo" without explicitly
    defining the string.

    Indirectly adds support for "sha1,rsa4096" signing/verification.

    Signed-off-by: Andrew Duda
    Signed-off-by: aduda
    Reviewed-by: Simon Glass

    Andrew Duda
     
  • Cut down on the repetition of algorithm information by defining separate
    checksum and crypto structs. image_sig_algos are now simply pairs of
    unique checksum and crypto algos.

    Signed-off-by: Andrew Duda
    Signed-off-by: aduda
    Reviewed-by: Simon Glass

    Andrew Duda
     
  • Padding verification was done against static SHA/RSA pair arrays which
    take up a lot of static memory, are mostly 0xff, and cannot be reused
    for additional SHA/RSA pairings. The padding can be easily computed
    according to PKCS#1v2.1 as:

    EM = 0x00 || 0x01 || PS || 0x00 || T

    where PS is (emLen - tLen - 3) octets of 0xff and T is DER encoding
    of the hash.

    Store DER prefix in checksum_algo and create rsa_verify_padding
    function to handle verification of a message for any SHA/RSA pairing.

    Signed-off-by: Andrew Duda
    Signed-off-by: aduda
    Reviewed-by: Simon Glass

    Andrew Duda
     
  • checksum_algo's pad_len field isn't actually used to store the length of
    the padding but the total length of the RSA key (msg_len + pad_len)

    Signed-off-by: Andrew Duda
    Signed-off-by: aduda
    Reviewed-by: Simon Glass

    Andrew Duda
     

06 Oct, 2016

1 commit


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
     

21 Jul, 2016

1 commit

  • Commit 555f45d8f916 ("image: Convert the IH_... values to enums")
    accidentally changed some IH_ARCH_... values.

    Prior to that commit, there existed a gap between IH_ARCH_M68K and
    IH_ARCH_MICROBLAZE, like follows.

    #define IH_ARCH_SPARC64 11 /* Sparc 64 Bit */
    #define IH_ARCH_M68K 12 /* M68K */
    #define IH_ARCH_MICROBLAZE 14 /* MicroBlaze */
    #define IH_ARCH_NIOS2 15 /* Nios-II */

    The enum conversion broke the compatibility with existing uImage
    files. Reverting 555f45d8f916 will cause build error unfortunately,
    so here is a more easy fix.

    I dug the git history and figured out the gap was introduced by
    commit 1117cbf2adac ("nios: remove nios-32 arch"). So, I revived
    IH_ARCH_NIOS just for filling the gap.

    I added comments to each enum block. Once we assign a value to
    IH_... it is not allowed to change it.

    Acked-by: Michal Simek
    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     

15 Jul, 2016

4 commits

  • Add generic functions which can look up information about a category:

    - the number of items in the category
    - the category description
    - an item long time
    - an item short time

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

    Simon Glass
     
  • Add a table that contains the category name, the number of items in each
    category and a pointer to the table of items. This will allow us to use
    generic code to deal with the categories.

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

    Simon Glass
     
  • We need to know the number of values of each category (architecture,
    compression, OS and image type). To make this value easier to maintain,
    convert all values to enums. The count is then automatic.

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

    Simon Glass
     
  • The next stage boot loader image and the selected FDT can be post-
    processed by board/platform/device-specific code, which can include
    modifying the size and altering the starting source address before
    copying these binary blobs to their final destination. This might be
    desired to do things like strip headers or footers attached to the
    images before they were packaged into the FIT, or to perform operations
    such as decryption or authentication. Introduce new configuration
    option CONFIG_SPL_FIT_IMAGE_POST_PROCESS to allow controlling this
    feature. If enabled, a platform-specific post-process function must
    be provided.

    Signed-off-by: Daniel Allred
    Signed-off-by: Andreas Dannenberg
    Reviewed-by: Tom Rini
    Reviewed-by: Simon Glass

    Daniel Allred
     

25 Jun, 2016

1 commit