summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2016-02-01 12:41:47 +0000
committerRafał Miłecki <zajec5@gmail.com>2016-02-01 12:41:47 +0000
commit4156f292c157b8e118ac05ea4b8e861c58531eba (patch)
tree9932b5f57903a7ff36021e9f068e08dca1956625 /target/linux/generic/files
parente1491b341b212000bc26f68b55d9a060b9c48625 (diff)
downloadmaster-31e0f0ae-4156f292c157b8e118ac05ea4b8e861c58531eba.tar.gz
master-31e0f0ae-4156f292c157b8e118ac05ea4b8e861c58531eba.tar.bz2
master-31e0f0ae-4156f292c157b8e118ac05ea4b8e861c58531eba.zip
kernel: mtdsplit: detect UBI partition when looking for rootfs
This allows mtdsplit parsers work with UBI which is very popular on NAND flases. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48599
Diffstat (limited to 'target/linux/generic/files')
-rw-r--r--target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.c6
-rw-r--r--target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.c
index 4f6b46e28b..9a330df252 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.c
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.c
@@ -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;
diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h
index b757758685..42841ef541 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h
@@ -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