common/armflash: Support for ARM flash images
authorLinus Walleij <linus.walleij@linaro.org>
Sat, 4 Apr 2015 23:48:31 +0000 (01:48 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 10 Apr 2015 15:54:08 +0000 (11:54 -0400)
commit4bb6650632a3e36185f689c56ea31f189ce39325
treecc092cb766a332eee797130ccbc9e5266b40fcb5
parentffb96d55d13759a7e4fe4ba5fc5e3eb6fac11738
common/armflash: Support for ARM flash images

The ARM reference designs all use a special flash image format
that stores a footer (two versions exist) at the end of the last
erase block of the image in flash memory.

Version one of the footer is indicated by the magic number
0xA0FFFF9F at 12 bytes before the end of the flash block and
version two is indicated by the magic number 0x464F4F54 0x464C5348
(ASCII for "FLSHFOOT") in the very last 8 bytes of the erase block.

This command driver implements support for both versions of the
AFS images (the name comes from the Linux driver in drivers/mtd/afs.c)
and makes it possible to list images and load an image by name into
the memory with these commands:

afs - lists flash contents
afs load <image> - loads image to address indicated in the image
afs load <image> <addres> - loads image to a specified address

This image scheme is used on the ARM Integrator family, ARM
Versatile family, ARM RealView family (not yet supported in U-Boot)
and ARM Versatile Express family up to and including the new
Juno board for 64 bit development.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
common/Kconfig
common/Makefile
common/cmd_armflash.c [new file with mode: 0644]