summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJulien Boibessot <julien.boibessot@armadeus.com>2010-12-21 18:38:07 +0100
committerPeter Korsgaard <jacmet@sunsite.dk>2011-01-11 22:39:05 +0100
commitf2bf06fd785de154ab96545b98952fb079310f35 (patch)
treeddfb918157f4b4151255cb85c1b60ca8c6e4861b /fs
parent8497c46a57e740cb9d236cae2c2a4cc4d9962a23 (diff)
downloadbuildroot-novena-f2bf06fd785de154ab96545b98952fb079310f35.tar.gz
buildroot-novena-f2bf06fd785de154ab96545b98952fb079310f35.zip
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 <julien.boibessot@armadeus.com> Signed-off-by: Nicolas Colombain <nicolas.colombain@armadeus.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'fs')
-rw-r--r--fs/ubifs/Config.in21
-rw-r--r--fs/ubifs/ubi.mk23
-rw-r--r--fs/ubifs/ubinize.cfg7
3 files changed, 51 insertions, 0 deletions
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