From f2bf06fd785de154ab96545b98952fb079310f35 Mon Sep 17 00:00:00 2001 From: Julien Boibessot Date: Tue, 21 Dec 2010 18:38:07 +0100 Subject: ubifs: Add UBI image generation support. UBI images are generated from UBIFS one (with ubinize tool) and are used by bootloaders (eg U-Boot) to write UBIFS images directly on bare NAND FLASH (see http://www.linux-mtd.infradead.org/faq/ubi.html). [Peter: tweak help text] Signed-off-by: Julien Boibessot Signed-off-by: Nicolas Colombain Acked-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- fs/ubifs/Config.in | 21 +++++++++++++++++++++ fs/ubifs/ubi.mk | 23 +++++++++++++++++++++++ fs/ubifs/ubinize.cfg | 7 +++++++ 3 files changed, 51 insertions(+) create mode 100644 fs/ubifs/ubi.mk create mode 100644 fs/ubifs/ubinize.cfg diff --git a/fs/ubifs/Config.in b/fs/ubifs/Config.in index bcf409cad..a5ef5f2b2 100644 --- a/fs/ubifs/Config.in +++ b/fs/ubifs/Config.in @@ -77,3 +77,24 @@ config BR2_TARGET_ROOTFS_UBIFS_LZMA endchoice +config BR2_TARGET_ROOTFS_UBI + depends on BR2_TARGET_ROOTFS_UBIFS + bool "Embed into an UBI image" + help + Build an ubi image from the ubifs one (with ubinize). + +config BR2_TARGET_ROOTFS_UBI_PEBSIZE + hex "UBI physical erase block size" + depends on BR2_TARGET_ROOTFS_UBI + default 0x20000 + help + Tells ubinize the physical eraseblock size of the flash chip + the ubi image is created for. + +config BR2_TARGET_ROOTFS_UBI_SUBSIZE + int "UBI sub-page size" + depends on BR2_TARGET_ROOTFS_UBI + default 512 + help + Tells ubinize that the flash supports sub-pages and the sub-page + size. Use 0 if subpages are not supported on flash chip. diff --git a/fs/ubifs/ubi.mk b/fs/ubifs/ubi.mk new file mode 100644 index 000000000..c88e33639 --- /dev/null +++ b/fs/ubifs/ubi.mk @@ -0,0 +1,23 @@ +############################################################# +# +# Embed the ubifs image into an ubi one +# +############################################################# + +UBI_UBINIZE_OPTS := -m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE) +UBI_UBINIZE_OPTS += -p $(BR2_TARGET_ROOTFS_UBI_PEBSIZE) +ifneq ($(BR2_TARGET_ROOTFS_UBI_SUBSIZE),0) +UBI_UBINIZE_OPTS += -s $(BR2_TARGET_ROOTFS_UBI_SUBSIZE) +endif + +ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs + +define ROOTFS_UBI_CMD + cp fs/ubifs/ubinize.cfg . ;\ + echo "image=$$@fs" \ + >> ./ubinize.cfg ;\ + $(HOST_DIR)/usr/sbin/ubinize -o $$@ $(UBI_UBINIZE_OPTS) ubinize.cfg ;\ + rm ubinize.cfg +endef + +$(eval $(call ROOTFS_TARGET,ubi)) diff --git a/fs/ubifs/ubinize.cfg b/fs/ubifs/ubinize.cfg new file mode 100644 index 000000000..65152714b --- /dev/null +++ b/fs/ubifs/ubinize.cfg @@ -0,0 +1,7 @@ +[ubifs] +mode=ubi +vol_id=0 +vol_type=dynamic +vol_name=rootfs +vol_alignment=1 +vol_flags=autoresize -- cgit v1.2.3