1. 31 Dec, 2022 1 commit
  2. 31 Oct, 2022 1 commit
  3. 29 Sep, 2022 1 commit
  4. 26 Jul, 2022 2 commits
  5. 14 Apr, 2021 1 commit
  6. 22 Jan, 2021 1 commit
    • Alexandru Gagniuc's avatar
      doc: FIT image: Clarify format and simplify syntax · 4afc4f37
      Alexandru Gagniuc authored and Tom Rini's avatar Tom Rini committed
      
      
      ** Introduction
      
      There are currently four ways to load an OS image with u-boot
        1. SPL -> u-boot -> bootm
        2. SPL blue falcon mode
        3. "Basic" FIT image (CONFIG_LOAD_FIT)
        4. "Full-featured" FIT image (CONFIG_LOAD_FIT_FULL)
      
      These four code paths were developed independently, and share very
      little code. (3) and (4), behave very differently, are littered with
      special cases. They even have different DTS syntax and properties.
      
      The cause of this divergence is that the FIT format specification
      leaves a number of things open to interpretation. The purpose of this
      change is to enable the reduction of code size, duplication, and
      complexity by updating and streamlining the FIT format.
      
      We are only marginally concerned with backwards compatibility, because
      we don't have inter-compatibility. For example, CONFIG_LOAD_FIT is
      able to load images that CONFIG_LOAD_FIT_FULL won't. This is a direct
      result of the incompatible syntax between the two implementations.
      
      Ideally, these changes would enable "simple" FIT to be a subset of the
      "full" fit implementation, and share most code. These changes should
      also eliminate the need for falcon mode (although we are not
      advocating for the removal of falcon mode at this time).
      
      ** Description of changes
      
       * The "configurations" node is now mandatory
      
      Guessing how to load components based on their "os" and "type" invites
      confusion and superfluous heuristics. Instead, require each FIT image
      to be explicit on how components should be loaded.
      
       * Eliminate "ramdisk", "setup", "standalone", and "fpga" properties
      
      Having too many special purpose properties requires special-casing
      FIT loading code. When a special property can be handled by another
      property, it is redundant.
       - A "ramdisk" is identical to a loadable. Thus ramdisk images should
         be placed under "loadables".
       - A "setup" node can be achieved by using a "kernel" or "firmware"
         property instead.
       - "standalone" is used for u-boot nodes. The correct property to use
         in this case is "firmware".
       - "fpga" is a loadable
      
       * Prioritize control between "firmware" and "kernel"
      
      "firmware" and "kernel" are special nodes in that control is passed
      to the "entry-point" of the image. Both can be present, for example,
      an OP-TEE firmware with a linux kernel. When both are present,
      control is passed to the "firmware" image.
      
      ** Further generalizations (not included herein)
      
      The "firmware" and "kernel" properties could be generalized as a
      "next-boot-stage", or similar name. This "next" stage would be special
      in that it is both executable, and is the stage that is passed
      control. For example, "next-stage" could be an op-tee image, with
      linux as a loadable, or a u-boot image.
      
      Signed-off-by: default avatarAlexandru Gagniuc <mr.nuke.me@gmail.com>
      4afc4f37
  7. 18 Dec, 2020 1 commit
  8. 24 Apr, 2020 1 commit
    • Kever Yang's avatar
      mkimage: fit_image: Add option to make fit header align · ebfe611b
      Kever Yang authored and Tom Rini's avatar Tom Rini committed
      
      
      The image is usually stored in block device like emmc, SD card, make the
      offset of image data aligned to block(512 byte) can avoid data copy
      during boot process.
      eg. SPL boot from FIT image with external data:
      - SPL read the first block of FIT image, and then parse the header;
      - SPL read image data separately;
      - The first image offset is the base_offset which is the header size;
      - The second image offset is just after the first image;
      - If the offset of imge does not aligned, SPL will do memcpy;
      The header size is a ramdon number, which is very possible not aligned, so
      add '-B size'to specify the align size in hex for better performance.
      
      example usage:
        ./tools/mkimage -E -f u-boot.its -B 0x200 u-boot.itb
      
      Signed-off-by: Kever Yang's avatarKever Yang <kever.yang@rock-chips.com>
      Reviewed-by: default avatarPunit Agrawal <punit1.agrawal@toshiba.co.jp>
      Reviewed-by: Tom Rini's avatarTom Rini <trini@konsulko.com>
      ebfe611b
  9. 03 Dec, 2019 1 commit
  10. 29 Jul, 2019 1 commit
  11. 10 Aug, 2018 1 commit
  12. 16 Jan, 2018 1 commit
  13. 13 Dec, 2017 1 commit
    • Peng Fan's avatar
      SPL: Add FIT data-position property support · a1be94b6
      Peng Fan authored and Tom Rini's avatar Tom Rini committed
      
      
      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: default avatarYe Li <ye.li@nxp.com>
      Signed-off-by: Peng Fan's avatarPeng Fan <peng.fan@nxp.com>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Reviewed-by: default avatarTomas Melin <tomas.melin@vaisala.com>
      Cc: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
      Cc: "Andrew F. Davis" <afd@ti.com>
      Cc: Igor Grinberg <grinberg@compulab.co.il>
      Cc: "tomas.melin@vaisala.com" <tomas.melin@vaisala.com>
      Cc: Kever Yang <kever.yang@rock-chips.com>
      Cc: Andre Przywara <andre.przywara@arm.com>
      Cc: York Sun <york.sun@nxp.com>
      Cc: Lokesh Vutla <lokeshvutla@ti.com>
      Cc: "Cooper Jr., Franklin" <fcooper@ti.com>
      Cc: George McCollister <george.mccollister@gmail.com>
      Cc: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
      Cc: Jean-Jacques Hiblot <jjhiblot@ti.com>
      Cc: Rick Altherr <raltherr@google.com>
      Cc: Tom Rini <trini@konsulko.com>
      Reviewed-by: Lokesh Vutla's avatarLokesh Vutla <lokeshvutla@ti.com>
      Reviewed-by: default avatarYork Sun <york.sun@nxp.com>
      a1be94b6
  14. 15 Sep, 2017 1 commit
  15. 11 Sep, 2017 1 commit
  16. 26 Jul, 2017 1 commit
    • Tom Rini's avatar
      FIT: List kernel_noload in the list of types · 25fa0b93
      Tom Rini authored
      
      
      In the source_file_format.txt file we talk about how to construct a
      valid FIT image.  While it already says to look at the source for the
      full list, add kernel_noload to the explicit list of types.  This is
      arguably the most important type to use as most often we are including a
      kernel that will run from wherever it is loaded into memory and execute.
      
      This for example, allows you to create a single FIT image for Linux that
      can be used on both OMAP and i.MX devices as the kernel will not need to
      be moved in memory.
      
      Signed-off-by: Tom Rini's avatarTom Rini <trini@konsulko.com>
      25fa0b93
  17. 03 Dec, 2016 1 commit
  18. 24 Jun, 2016 1 commit
    • Teddy Reed's avatar
      mkimage: fit: spl: Add an optional static offset for external data · f8f9107d
      Teddy Reed authored and Tom Rini's avatar Tom Rini committed
      
      
      When building a FIT with external data (-E), U-Boot proper may require
      absolute positioning for executing the external firmware. To acheive this
      use the (-p) switch, which will replace the amended 'data-offset' with
      'data-position' indicating the absolute position of external data.
      
      It is considered an error if the requested absolute position overlaps with the
      initial data required for the compact FIT.
      
      Signed-off-by: default avatarTeddy Reed <teddy.reed@gmail.com>
      f8f9107d
  19. 24 May, 2016 1 commit
  20. 01 Apr, 2016 1 commit
  21. 14 Mar, 2016 1 commit
    • Simon Glass's avatar
      mkimage: Support placing data outside the FIT · 722ebc8f
      Simon Glass authored and Tom Rini's avatar Tom Rini committed
      
      
      One limitation of FIT is that all the data is 'inline' within it, using a
      'data' property in each image node. This means that to find out what is in
      the FIT it is necessary to scan the entire file. Once loaded it can be
      scanned and then the images can be copied to the correct place in memory.
      
      In SPL it can take a significant amount of time to copy images around in
      memory. Also loading data that does not end up being used is wasteful. It
      would be useful if the FIT were small, acting as a directory, with the
      actual data stored elsewhere.
      
      This allows SPL to load the entire FIT, without the images, then load the
      images it wants later.
      
      Add a -E option to mkimage to request that it output an 'external' FIT.
      
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      722ebc8f
  22. 06 Feb, 2016 1 commit
  23. 28 May, 2015 1 commit
  24. 29 Jan, 2015 2 commits
  25. 22 Oct, 2014 2 commits
  26. 17 Jan, 2014 1 commit
  27. 20 Sep, 2013 1 commit
  28. 28 May, 2010 1 commit
  29. 09 Sep, 2008 2 commits
  30. 26 Mar, 2008 1 commit
  31. 20 Mar, 2008 1 commit
  32. 12 Mar, 2008 1 commit