1. 03 Dec, 2016 1 commit
  2. 21 Nov, 2016 4 commits
  3. 06 Oct, 2016 1 commit
  4. 15 Aug, 2016 1 commit
  5. 21 Jul, 2016 1 commit
    • Masahiro Yamada's avatar
      image: fix IH_ARCH_... values for uImage compatibility · ff87b081
      Masahiro Yamada authored
      Commit 555f45d8 ("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 555f45d8 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 1117cbf2 ("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: 's avatarMichal Simek <michal.simek@xilinx.com>
      Signed-off-by: 's avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: 's avatarSimon Glass <sjg@chromium.org>
      ff87b081
  6. 14 Jul, 2016 4 commits
  7. 24 Jun, 2016 1 commit
  8. 31 May, 2016 1 commit
    • Masahiro Yamada's avatar
      Revert "image.h: Tighten up content using handy CONFIG_IS_ENABLED() macro." · 6f41751f
      Masahiro Yamada authored
      This reverts commit 56adbb38.
      
      Since commit 56adbb38 ("image.h: Tighten up content using handy
      CONFIG_IS_ENABLED() macro."), I found my boards fail to boot Linux
      because the commit changed the logic of macros it touched.  Now,
      IMAGE_ENABLE_RAMDISK_HIGH and IMAGE_BOOT_GET_CMDLINE are 0 for all
      the boards.
      
      As you can see in include/linux/kconfig.h, CONFIG_IS_ENABLE() (and
      IS_ENABLED() as well) can only take a macro that is either defined
      as 1 or undefined.  This is met for boolean options defined in
      Kconfig.  On the other hand, CONFIG_SYS_BOOT_RAMDISK_HIGH and
      CONFIG_SYS_BOOT_GET_CMDLINE are defined without any value in
      arch/*/include/asm/config.h .  This kind of clean-up is welcome,
      but the options should be moved to Kconfig beforehand.
      
      Moreover, CONFIG_IS_ENABLED(SPL_CRC32_SUPPORT) looks weird.
      It should be either CONFIG_IS_ENABLED(CRC32_SUPPORT) or
      IS_ENABLED(CONFIG_SPL_CRC32_SUPPORT).  But, I see no define for
      CONFIG_SPL_CRC32_SUPPORT anywhere.  Likewise for the other three.
      
      The logic of IMAGE_OF_BOARD_SETUP and IMAGE_OF_SYSTEM_SETUP were
      also changed for SPL.  This can be a problem for boards defining
      CONFIG_SPL_OF_LIBFDT.  I guess it should have been changed to
      IS_ENABLED(CONFIG_OF_BOARD_SETUP).
      
      In the first place, if we replace the references in C code,
      the macros IMAGE_* will go away.
      
        if (IS_ENABLED(CONFIG_OF_BOARD_SETUP) {
                ...
        }
      Signed-off-by: 's avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      6f41751f
  9. 27 May, 2016 1 commit
  10. 24 May, 2016 3 commits
  11. 14 Mar, 2016 6 commits
    • Simon Glass's avatar
      spl: Add an option to load a FIT containing U-Boot · f1dcee59
      Simon Glass authored
      This provides a way to load a FIT containing U-Boot and a selection of device
      tree files. The board can select the correct device tree by probing the
      hardware. Then U-Boot is started with the selected device tree.
      Signed-off-by: 's avatarSimon Glass <sjg@chromium.org>
      f1dcee59
    • Simon Glass's avatar
      spl: Add a way for boards to select which device tree to load · 4b307f23
      Simon Glass authored
      SPL calls this function with each device tree it can find in the FIT. The
      board should implement this function, using whatever hardware detection it
      can muster to determine the correct device tree.
      Signed-off-by: 's avatarSimon Glass <sjg@chromium.org>
      4b307f23
    • Simon Glass's avatar
      image: Add functions to obtain short names · cef2e514
      Simon Glass authored
      Sometimes it is useful to obtain the short name for an Operating System,
      architecture or compression mechanism. Provide functions for this.
      Signed-off-by: 's avatarSimon Glass <sjg@chromium.org>
      cef2e514
    • Simon Glass's avatar
      fdt: Allow libfdt to be used in SPL · aa34fbc0
      Simon Glass authored
      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: 's avatarSimon Glass <sjg@chromium.org>
      aa34fbc0
    • Simon Glass's avatar
      Kconfig: Move CONFIG_FIT and related options to Kconfig · 73223f0e
      Simon Glass authored
      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: 's avatarSimon Glass <sjg@chromium.org>
      [trini: Add microblaze change, various configs/ re-applies]
      Signed-off-by: 's avatarTom Rini <trini@konsulko.com>
      73223f0e
    • Simon Glass's avatar
      Move CONFIG_OF_LIBFDT to Kconfig · 69e173eb
      Simon Glass authored
      Move this option to Kconfig and tidy up existing boards.
      Signed-off-by: 's avatarSimon Glass <sjg@chromium.org>
      69e173eb
  12. 26 Feb, 2016 1 commit
    • Simon Glass's avatar
      image: Correct the OS location code to work on sandbox · 7a80de46
      Simon Glass authored
      A recent change broke the 'bootm' command on sandbox. The root cause is
      using a pointer as an address. Conversion from pointer to address needs to
      use map_to_sysmem() so that sandbox can do the right thing. The problem was
      pre-existing but uncovered by a recent commit.
      
      Fix this. Also move fit_get_end() to the C file to avoid needing to include
      mapmem.h (and thus asm/io.h) everywhere.
      
      Fixes: 1fec3c5d (common/image.c: Make boot_get_ramdisk() perform a check for Android images)
      Signed-off-by: 's avatarSimon Glass <sjg@chromium.org>
      7a80de46
  13. 19 Nov, 2015 1 commit
    • Nathan Rossi's avatar
      tools: zynqimage: Add Xilinx Zynq boot header generation to mkimage · 66eef1e7
      Nathan Rossi authored
      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: 's avatarNathan Rossi <nathan@nathanrossi.com>
      Cc: Michal Simek <michal.simek@xilinx.com>
      Cc: Tom Rini <trini@konsulko.com>
      Reviewed-by: 's avatarTom Rini <trini@konsulko.com>
      Signed-off-by: 's avatarMichal Simek <michal.simek@xilinx.com>
      66eef1e7
  14. 11 Oct, 2015 1 commit
    • Julius Werner's avatar
      Add support for LZ4 decompression algorithm · 027b728d
      Julius Werner authored
      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: 's avatarJulius Werner <jwerner@chromium.org>
      Acked-by: 's avatarSimon Glass <sjg@chromium.org>
      027b728d
  15. 03 Sep, 2015 3 commits
    • Simon Glass's avatar
      rockchip: Add support for the SPI image · 10b84fe1
      Simon Glass authored
      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: 's avatarSimon Glass <sjg@chromium.org>
      10b84fe1
    • Simon Glass's avatar
      rockchip: Add support for the SD image · f9a3c278
      Simon Glass authored
      The Rockchip boot ROM requires a particular file format. It consists of
      64KB of zeroes, a 512-byte header encoded with RC4, and then some executable
      code.
      
      Add support to mkimage so that an SPL image (u-boot-spl-dtb.bin) can be
      converted to this format.
      Signed-off-by: 's avatarSimon Glass <sjg@chromium.org>
      f9a3c278
    • Simon Glass's avatar
      rockchip: Add the rkimage format to mkimage · a131c1f4
      Simon Glass authored
      Rockchip SoCs require certain formats for code that they execute, The
      simplest format is a 4-byte header at the start of a binary file. Add
      support for this so that we can create images that the boot ROM understands.
      Signed-off-by: 's avatarSimon Glass <sjg@chromium.org>
      a131c1f4
  16. 21 Jul, 2015 1 commit
  17. 28 May, 2015 2 commits
  18. 08 May, 2015 1 commit
    • Jörg Krause's avatar
      Fix musl build · 26e355d1
      Jörg Krause authored
      This patch fixes cross-compiling U-Boot tools with the musl C library:
        * including <sys/types.h> is needed for ulong
        * defining _GNU_SOURCE is needed for loff_t
      
      Tested for target at91sam9261ek_dataflash_cs3.
      Signed-off-by: 's avatarJörg Krause <joerg.krause@embedded.rocks>
      Cc: Tom Rini <trini@konsulko.com>
      26e355d1
  19. 10 Apr, 2015 1 commit
  20. 30 Jan, 2015 1 commit
  21. 29 Jan, 2015 1 commit
    • Guilherme Maciel Ferreira's avatar
      dumpimage: fit: extract FIT images · 39931f96
      Guilherme Maciel Ferreira authored
      The dumpimage is able to extract components contained in a FIT image:
      
        $ ./dumpimage -T flat_dt -i CONTAINER.ITB -p INDEX FILE
      
      The CONTAINER.ITB is a regular FIT container file. The INDEX is the poisition
      of the sub-image to be retrieved, and FILE is the file (path+name) to save the
      extracted sub-image.
      
      For example, given the following kernel.its to build a kernel.itb:
      
        /dts-v1/;
        / {
            ...
            images {
              kernel@1 {
                description = "Kernel 2.6.32-34";
                data = /incbin/("/boot/vmlinuz-2.6.32-34-generic");
                type = "kernel";
                arch = "ppc";
                os = "linux";
                compression = "gzip";
                load = <00000000>;
                entry = <00000000>;
                hash@1 {
                  algo = "md5";
                };
              };
              ...
            };
            ...
          };
      
      The dumpimage can extract the 'kernel@1' node through the following command:
      
        $ ./dumpimage -T flat_dt -i kernel.itb -p 0 kernel
        Extracted:
         Image 0 (kernel@1)
          Description:  Kernel 2.6.32-34
          Created:      Wed Oct 22 15:50:26 2014
          Type:         Kernel Image
          Compression:  gzip compressed
          Data Size:    4040128 Bytes = 3945.44 kB = 3.85 MB
          Architecture: PowerPC
          OS:           Linux
          Load Address: 0x00000000
          Entry Point:  0x00000000
          Hash algo:    md5
          Hash value:   22352ad39bdc03e2e50f9cc28c1c3652
      
      Which results in the file 'kernel' being exactly the same as '/boot/vmlinuz-2.6.32-34-generic'.
      Signed-off-by: 's avatarGuilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
      39931f96
  22. 14 Jan, 2015 1 commit
  23. 21 Nov, 2014 1 commit
  24. 29 Oct, 2014 1 commit