Add support for metadata in barebox images
It's often useful to get some information about a barebox image
before starting or flashing it. This patch introduces barebox
Image MetaData (IMD). When enabled a barebox image will contain
a list of tags containing the desired information. We have tags
for:

- the barebox release (2014.07.0-00160-g035de50-dirty)
- the build timestamp (#741 Mon Jul 28 15:08:54 CEST 2014)
- the board model the image is intended for
- the device tree toplevel compatible property

Also there is an additional generic key-value store which stores
parameters for which no dedicated tag exists. In this patch it
is used for the memory size an image supports.

Since there is no fixed offset in a barebox image which can be
used for storing the information, the metadata is stored somewhere
in the image and found by iterating over the image. This works
for most image types, but obviously not for SoC images which are
encoded or encrypted in some way.

There is a 'imd' tool compiled from the same sources for barebox,
for the compile host and for the target, so the metadata information
is available whereever needed.

For device tree boards the model and of_compatible tags are automatically
generated.

Example output of the imd tool for a Phytec phyFLEX image:

build: #889 Wed Jul 30 16:08:54 CEST 2014
release: 2014.07.0-00167-g6b2070d-dirty
parameter: memsize=1024
of_compatible: phytec,imx6x-pbab01 phytec,imx6dl-pfla02 fsl,imx6dl
model: Phytec phyFLEX-i.MX6 Duallite Carrier-Board

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
1 parent 7b0d00c commit 97e81f2d78f30fb4936f0f6fe52b317d8dbc9881
@Sascha Hauer Sascha Hauer authored on 28 Jul 2014
Showing 21 changed files
View
Documentation/user/imd.rst 0 → 100644
View
Documentation/user/updating.rst
View
Documentation/user/user-manual.rst
View
arch/arm/boards/freescale-mx53-qsb/lowlevel.c
View
arch/arm/boards/phytec-phyflex-imx6/lowlevel.c
View
arch/arm/boards/tqma53/lowlevel.c
View
arch/arm/lib/barebox.lds.S
View
arch/arm/lib/pbl.lds.S
View
commands/Kconfig
View
commands/Makefile
View
commands/imd.c 0 → 100644
View
common/Kconfig
View
common/Makefile
View
common/imd-barebox.c 0 → 100644
View
common/imd.c 0 → 100644
View
include/asm-generic/barebox.lds.h
View
include/image-metadata.h 0 → 100644
View
scripts/Makefile
View
scripts/Makefile.lib
View
scripts/bareboximd.c 0 → 100644
View
scripts/gen-dtb-s