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ł Miłecki <zajec5@gmail.com> SVN-Revision: 48600
This commit is contained in:
parent
4156f292c1
commit
9220dd5d36
2 changed files with 8 additions and 3 deletions
|
@ -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"
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ static int mtdsplit_parse_seama(struct mtd_info *master,
|
|||
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 @@ static int mtdsplit_parse_seama(struct mtd_info *master,
|
|||
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 @@ static int mtdsplit_parse_seama(struct mtd_info *master,
|
|||
* 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 @@ static int mtdsplit_parse_seama(struct mtd_info *master,
|
|||
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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue