kernel: mtdsplit: detect UBI partition when looking for rootfs
authorrmilecki <rmilecki@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 1 Feb 2016 12:41:47 +0000 (12:41 +0000)
committerrmilecki <rmilecki@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 1 Feb 2016 12:41:47 +0000 (12:41 +0000)
This allows mtdsplit parsers work with UBI which is very popular on
NAND flases.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48599 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.c
target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h

index 4f6b46e..9a330df 100644 (file)
@@ -22,6 +22,8 @@
 
 #include "mtdsplit.h"
 
+#define UBI_EC_MAGIC                   0x55424923      /* UBI# */
+
 struct squashfs_super_block {
        __le32 s_magic;
        __le32 pad0[9];
@@ -93,6 +95,10 @@ int mtd_check_rootfs_magic(struct mtd_info *mtd, size_t offset,
                if (type)
                        *type = MTDSPLIT_PART_TYPE_JFFS2;
                return 0;
+       } else if (be32_to_cpu(magic) == UBI_EC_MAGIC) {
+               if (type)
+                       *type = MTDSPLIT_PART_TYPE_UBI;
+               return 0;
        }
 
        return -EINVAL;
index b757758..42841ef 100644 (file)
@@ -22,6 +22,7 @@ enum mtdsplit_part_type {
        MTDSPLIT_PART_TYPE_UNK = 0,
        MTDSPLIT_PART_TYPE_SQUASHFS,
        MTDSPLIT_PART_TYPE_JFFS2,
+       MTDSPLIT_PART_TYPE_UBI,
 };
 
 #ifdef CONFIG_MTD_SPLIT