Author: rmilecki Date: 2016-02-01 13:41:53 +0100 (Mon, 01 Feb 2016) New Revision: 48600
Modified: trunk/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h trunk/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_seama.c Log: kernel: mtdsplit: support Seama entity with UBI Some D-Link routers (e.g. DIR-885L) have NAND and use Seama format. It means OpenWrt will want to have UBI in Sseama entity and should be able to detect it. Signed-off-by: Rafa?\197?\130 Mi?\197?\130ecki <[email protected]> Modified: trunk/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h =================================================================== --- trunk/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h 2016-02-01 12:41:47 UTC (rev 48599) +++ trunk/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit.h 2016-02-01 12:41:53 UTC (rev 48600) @@ -15,6 +15,7 @@ #define KERNEL_PART_NAME "kernel" #define ROOTFS_PART_NAME "rootfs" +#define UBI_PART_NAME "ubi" #define ROOTFS_SPLIT_NAME "rootfs_data" Modified: trunk/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_seama.c =================================================================== --- trunk/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_seama.c 2016-02-01 12:41:47 UTC (rev 48599) +++ trunk/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_seama.c 2016-02-01 12:41:53 UTC (rev 48600) @@ -36,6 +36,7 @@ size_t hdr_len, retlen, kernel_ent_size; size_t rootfs_offset; struct mtd_partition *parts; + enum mtdsplit_part_type type; int err; hdr_len = sizeof(hdr); @@ -56,7 +57,7 @@ return -EINVAL; /* Check for the rootfs right after Seama entity with a kernel. */ - err = mtd_check_rootfs_magic(master, kernel_ent_size, NULL); + err = mtd_check_rootfs_magic(master, kernel_ent_size, &type); if (!err) { rootfs_offset = kernel_ent_size; } else { @@ -67,7 +68,7 @@ * Start the search from an arbitrary offset. */ err = mtd_find_rootfs_from(master, SEAMA_MIN_ROOTFS_OFFS, - master->size, &rootfs_offset, NULL); + master->size, &rootfs_offset, &type); if (err) return err; } @@ -80,7 +81,10 @@ parts[0].offset = 0; parts[0].size = rootfs_offset; - parts[1].name = ROOTFS_PART_NAME; + if (type == MTDSPLIT_PART_TYPE_UBI) + parts[1].name = UBI_PART_NAME; + else + parts[1].name = ROOTFS_PART_NAME; parts[1].offset = rootfs_offset; parts[1].size = master->size - rootfs_offset; _______________________________________________ openwrt-commits mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits
