U-boot new uImage source file format (bindings definition)
==========================================================

Author: Marian Balakowicz <m8@semihalf.com>

1) Introduction
---------------

Evolution of the 2.6 Linux kernel for embedded PowerPC systems introduced new
booting method which requires that hardware description is available to the
kernel in the form of Flattened Device Tree.

Booting with a Flattened Device Tree is much more flexible and is intended to
replace direct passing of 'struct bd_info' which was used to boot pre-FDT
kernels.

However, U-boot needs to support both techniques to provide backward
compatibility for platforms which are not FDT ready. Number of elements
playing role in the booting process has increased and now includes the FDT
blob. Kernel image, FDT blob and possibly ramdisk image - all must be placed
in the system memory and passed to bootm as a arguments. Some of them may be
missing: FDT is not present for legacy platforms, ramdisk is always optional.
Additionally, old uImage format has been extended to support multi sub-images
but the support is limited by simple format of the legacy uImage structure.
Single binary header 'struct image_header' is not flexible enough to cover all
possible scenarios.

All those factors combined clearly show that there is a need for new, more
flexible, multi component uImage format.


2) New uImage format assumptions
--------------------------------

a) Implementation

Libfdt has been selected for the new uImage format implementation as (1) it
provides needed functionality, (2) is actively maintained and developed and
(3) increases code reuse as it is already part of the U-boot source tree.

b) Terminology

This document defines new uImage structure by providing FDT bindings for new
uImage internals. Bindings are defined from U-boot perspective, i.e. describe
final form of the uImage at the moment when it reaches U-boot. User
perspective may be simpler, as some of the properties (like timestamps and
hashes) will need to be filled in automatically by the U-boot mkimage tool.

To avoid confusion with the kernel FDT the following naming convention is
proposed for the new uImage format related terms:

FIT	- Flattened uImage Tree

FIT is formally a flattened device tree (in the libfdt meaning), which
conforms to bindings defined in this document.

.its	- image tree source
.itb	- image tree blob

c) Image building procedure

The following picture shows how the new uImage is prepared. Input consists of
image source file (.its) and a set of data files. Image is created with the
help of standard U-boot mkimage tool which in turn uses dtc (device tree
compiler) to produce image tree blob (.itb).  Resulting .itb file is the
actual binary of a new uImage.


tqm5200.its
+
vmlinux.bin.gz	   mkimage + dtc	       xfer to target
eldk-4.2-ramdisk  --------------> tqm5200.itb --------------> bootm
tqm5200.dtb			     /|\
...				      |
				 'new uImage'

	- create .its file, automatically filled-in properties are omitted
	- call mkimage tool on a .its file
	- mkimage calls dtc to create .itb image and assures that
	  missing properties are added
	- .itb (new uImage) is uploaded onto the target and used therein


d) Unique identifiers

To identify FIT sub-nodes representing images, hashes, configurations (which
are defined in the following sections), the "unit name" of the given sub-node
is used as it's identifier as it assures uniqueness without additional
checking required.


3) Root node properties
-----------------------

Root node of the uImage Tree should have the following layout:

/ o image-tree
    |- description = "image description"
    |- timestamp = <12399321>
    |- #address-cells = <1>
    |
    o images
    | |
    | o img@1 {...}
    | o img@2 {...}
    | ...
    |
    o configurations
      |- default = "cfg@1"
      |
      o cfg@1 {...}
      o cfg@2 {...}
      ...


  Optional property:
  - description : Textual description of the uImage

  Mandatory property:
  - timestamp : Last image modification time being counted in seconds since
    1970-01-01 00:00:00 - to be automatically calculated by mkimage tool.

  Conditionally mandatory property:
  - #address-cells : Number of 32bit cells required to represent entry and
    load addresses supplied within sub-image nodes. May be omitted when no
    entry or load addresses are used.

  Mandatory node:
  - images : This node contains a set of sub-nodes, each of them representing
    single component sub-image (like kernel, ramdisk, etc.). At least one
    sub-image is required.

  Optional node:
  - configurations : Contains a set of available configuration nodes and
    defines a default configuration.


4) '/images' node
-----------------

This node is a container node for component sub-image nodes. Each sub-node of
the '/images' node should have the following layout:

 o image@1
   |- description = "component sub-image description"
   |- data = /incbin/("path/to/data/file.bin")
   |- type = "sub-image type name"
   |- arch = "ARCH name"
   |- os = "OS name"
   |- compression = "compression name"
   |- load = <00000000>
   |- entry = <00000000>
   |
   o hash@1 {...}
   o hash@2 {...}
   ...

  Mandatory properties:
  - description : Textual description of the component sub-image
  - type : Name of component sub-image type, supported types are:
    "standalone", "kernel", "ramdisk", "firmware", "script", "filesystem",
    "flat_dt".
  - data : Path to the external file which contains this node's binary data.
  - compression : Compression used by included data. Supported compressions
    are "gzip" and "bzip2". If no compression is used compression property
    should be set to "none".

  Conditionally mandatory property:
  - os : OS name, mandatory for type="kernel", valid OS names are: "openbsd",
    "netbsd", "freebsd", "4_4bsd", "linux", "svr4", "esix", "solaris", "irix",
    "sco", "dell", "ncr", "lynxos", "vxworks", "psos", "qnx", "u_boot",
    "rtems", "unity", "integrity".
  - arch : Architecture name, mandatory for types: "standalone", "kernel",
    "firmware", "ramdisk" and "fdt". Valid architecture names are: "alpha",
    "arm", "i386", "ia64", "mips", "mips64", "ppc", "s390", "sh", "sparc",
    "sparc64", "m68k", "microblaze", "nios2", "blackfin", "avr32", "st200".
  - entry : entry point address, address size is determined by
    '#address-cells' property of the root node. Mandatory for for types:
    "standalone" and "kernel".
  - load : load address, address size is determined by '#address-cells'
    property of the root node. Mandatory for types: "standalone" and "kernel".

  Optional nodes:
  - hash@1 : Each hash sub-node represents separate hash or checksum
    calculated for node's data according to specified algorithm.


5) Hash nodes
-------------

o hash@1
  |- algo = "hash or checksum algorithm name"
  |- value = [hash or checksum value]

  Mandatory properties:
  - algo : Algorithm name, supported are "crc32", "md5" and "sha1".
  - value : Actual checksum or hash value, correspondingly 4, 16 or 20 bytes
    long.


6) '/configurations' node
-------------------------

The 'configurations' node is optional. If present, it allows to create a
convenient, labeled boot configurations, which combine together kernel images
with their ramdisks and fdt blobs.

The 'configurations' node has has the following structure:

o configurations
  |- default = "default configuration sub-node unit name"
  |
  o config@1 {...}
  o config@2 {...}
  ...


  Optional property:
  - default : Selects one of the configuration sub-nodes as a default
    configuration.

  Mandatory nodes:
  - configuration-sub-node-unit-name : At least one of the configuration
    sub-nodes is required.


7) Configuration nodes
----------------------

Each configuration has the following structure:

o config@1
  |- description = "configuration description"
  |- kernel = "kernel sub-node unit name"
  |- ramdisk = "ramdisk sub-node unit name"
  |- fdt = "fdt sub-node unit-name"


  Mandatory properties:
  - description : Textual configuration description.
  - kernel : Unit name of the corresponding kernel image (image sub-node of a
    "kernel" type).

  Optional properties:
  - ramdisk : Unit name of the corresponding ramdisk image (component image
    node of a "ramdisk" type).
  - fdt : Unit name of the corresponding fdt blob (component image node of a
    "fdt type").

The FDT blob is required to properly boot FDT based kernel, so the minimal
configuration for 2.6 FDT kernel is (kernel, fdt) pair.

Older, 2.4 kernel and 2.6 non-FDT kernel do not use FDT blob, in such cases
'struct bd_info' must be passed instead of FDT blob, thus fdt property *must
not* be specified in a configuration node.


8) Examples
-----------

Please see doc/uImage.FIT/*.its for actual image source files.
