aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers/mtd
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2016-02-24 22:43:16 +0000
committerRafał Miłecki <zajec5@gmail.com>2016-02-24 22:43:16 +0000
commit7f910dbdecab40d2dd9f48520b97d885c3a6c3f1 (patch)
tree8c1505aea178986997ae9838155e4db5a404f9a7 /target/linux/generic/files/drivers/mtd
parent7053f748ef7fb23d0797c37fb79144b1c2c327cf (diff)
downloadmaster-187ad058-7f910dbdecab40d2dd9f48520b97d885c3a6c3f1.tar.gz
master-187ad058-7f910dbdecab40d2dd9f48520b97d885c3a6c3f1.tar.bz2
master-187ad058-7f910dbdecab40d2dd9f48520b97d885c3a6c3f1.zip
kernel: mtdsplit: support uimage with UBI
This patch adds uimage firmware split support for ubi. Signed-off-by: YounJae Rho <luxflow@live.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48755 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/files/drivers/mtd')
-rw-r--r--target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
index c30ee6ad74..a50735a901 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
@@ -95,6 +95,7 @@ static int __mtdsplit_parse_uimage(struct mtd_info *master,
size_t rootfs_size = 0;
int uimage_part, rf_part;
int ret;
+ enum mtdsplit_part_type type;
nr_parts = 2;
parts = kzalloc(nr_parts * sizeof(*parts), GFP_KERNEL);
@@ -148,7 +149,7 @@ static int __mtdsplit_parse_uimage(struct mtd_info *master,
/* find the roots after the uImage */
ret = mtd_find_rootfs_from(master, uimage_offset + uimage_size,
- master->size, &rootfs_offset, NULL);
+ master->size, &rootfs_offset, &type);
if (ret) {
pr_debug("no rootfs after uImage in \"%s\"\n",
master->name);
@@ -162,7 +163,7 @@ static int __mtdsplit_parse_uimage(struct mtd_info *master,
uimage_part = 1;
/* check rootfs presence at offset 0 */
- ret = mtd_check_rootfs_magic(master, 0, NULL);
+ ret = mtd_check_rootfs_magic(master, 0, &type);
if (ret) {
pr_debug("no rootfs before uImage in \"%s\"\n",
master->name);
@@ -183,7 +184,10 @@ static int __mtdsplit_parse_uimage(struct mtd_info *master,
parts[uimage_part].offset = uimage_offset;
parts[uimage_part].size = uimage_size;
- parts[rf_part].name = ROOTFS_PART_NAME;
+ if (type == MTDSPLIT_PART_TYPE_UBI)
+ parts[rf_part].name = UBI_PART_NAME;
+ else
+ parts[rf_part].name = ROOTFS_PART_NAME;
parts[rf_part].offset = rootfs_offset;
parts[rf_part].size = rootfs_size;