fs: add BPKFS support
Simple update file format developed for Somfy, tools and library are
available under LGPLv2 (https://www.gitorious.org/libbpk).

This format in the v1.0 allow you to store 6 types a binary stream for
a unique hardware id:
 - bootloader
 - bootloader_version
 - description.gz
 - kernel
 - rootfs
 - firmware_version

and you can easly add more binary stream type.

The fs will display you in a directory per hw id

and if a binary stream type is unknown will be display
as unknown_%08x

 # mount image.bpk /tmp
 # ls -l /tmp/hw_id_0/
-rwxrwxrwx         10 firmware_version
-rwxrwxrwx          8 firmware_version.crc
-rwxrwxrwx    1845968 kernel
-rwxrwxrwx          8 kernel.crc
-rwxrwxrwx    5062656 rootfs
-rwxrwxrwx          8 rootfs.crc
-rwxrwxrwx        248 bootloader
-rwxrwxrwx          8 bootloader.crc
-rwxrwxrwx     248925 description.gz
-rwxrwxrwx          8 description.gz.crc
-rwxrwxrwx          4 bootloader_version
-rwxrwxrwx          8 bootloader_version.crc
-rwxrwxrwx          4 unknown_1234567g
-rwxrwxrwx          8 unknown_1234567g.crc

Why BPK and not CPIO or uImage

1) CPIO

cpio does not handle > 4GiB image and does not have any crc checksum

2) uImage

uImage only provide one crc32 for the all data part and only a list of binary
stream with no information about what is what (in multi-image format)

3) BPK

BPK provide a crc32 for the header part and one crc32 per binary stream
so if you does not care of some data you are not force to check them

And you known exactly the binary stream type and for which hw to
use it.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Fargier Sylvain <sylvain.fargier@somfy.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
1 parent 32d88d9 commit 2f677b9b1ed510612b72799ec6eb65a6c6a3c172
@Jean-Christophe PLAGNIOL-VILLARD Jean-Christophe PLAGNIOL-VILLARD authored on 3 Oct 2013
Sascha Hauer committed on 6 Oct 2013
Showing 3 changed files
View
fs/Kconfig
View
fs/Makefile
View
fs/bpkfs.c 0 → 100644