mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-19 19:27:27 +00:00
kernel: support "linux,rootfs" DT property for splitting rootfs
OpenWrt's support for splitting rootfs (to create an extra "rootfs_data" partition) is limited to partitions called "rootfs". Upstream kernel allows any name partition to be rootfs if it has "linux,rootfs" property set. Add split support to such partitions in OpenWrt code. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
parent
8cdafa149e
commit
e4770db163
@ -64,7 +64,7 @@ SVN-Revision: 38002
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* MTD methods which simply translate the effective address and pass through
|
* MTD methods which simply translate the effective address and pass through
|
||||||
@@ -237,6 +239,146 @@ static int mtd_add_partition_attrs(struc
|
@@ -237,6 +239,147 @@ static int mtd_add_partition_attrs(struc
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,7 +196,8 @@ SVN-Revision: 38002
|
|||||||
+ if (rootfs_found)
|
+ if (rootfs_found)
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
+ if (!strcmp(part->name, "rootfs")) {
|
+ if (of_find_property(mtd_get_of_node(part), "linux,rootfs", NULL) ||
|
||||||
|
+ !strcmp(part->name, "rootfs")) {
|
||||||
+ run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS);
|
+ run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS);
|
||||||
+
|
+
|
||||||
+ rootfs_found = 1;
|
+ rootfs_found = 1;
|
||||||
@ -211,7 +212,7 @@ SVN-Revision: 38002
|
|||||||
int mtd_add_partition(struct mtd_info *parent, const char *name,
|
int mtd_add_partition(struct mtd_info *parent, const char *name,
|
||||||
long long offset, long long length)
|
long long offset, long long length)
|
||||||
{
|
{
|
||||||
@@ -275,6 +417,7 @@ int mtd_add_partition(struct mtd_info *p
|
@@ -275,6 +418,7 @@ int mtd_add_partition(struct mtd_info *p
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_remove_part;
|
goto err_remove_part;
|
||||||
|
|
||||||
@ -219,7 +220,7 @@ SVN-Revision: 38002
|
|||||||
mtd_add_partition_attrs(child);
|
mtd_add_partition_attrs(child);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -423,6 +566,7 @@ int add_mtd_partitions(struct mtd_info *
|
@@ -423,6 +567,7 @@ int add_mtd_partitions(struct mtd_info *
|
||||||
goto err_del_partitions;
|
goto err_del_partitions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,7 +228,7 @@ SVN-Revision: 38002
|
|||||||
mtd_add_partition_attrs(child);
|
mtd_add_partition_attrs(child);
|
||||||
|
|
||||||
/* Look for subpartitions */
|
/* Look for subpartitions */
|
||||||
@@ -439,31 +583,6 @@ err_del_partitions:
|
@@ -439,31 +584,6 @@ err_del_partitions:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ Subject: [PATCH] mtd: mtdsplit support
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* MTD methods which simply translate the effective address and pass through
|
* MTD methods which simply translate the effective address and pass through
|
||||||
@@ -236,6 +238,146 @@ static int mtd_add_partition_attrs(struc
|
@@ -236,6 +238,147 @@ static int mtd_add_partition_attrs(struc
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,7 +198,8 @@ Subject: [PATCH] mtd: mtdsplit support
|
|||||||
+ if (rootfs_found)
|
+ if (rootfs_found)
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
+ if (!strcmp(part->name, "rootfs")) {
|
+ if (of_find_property(mtd_get_of_node(part), "linux,rootfs", NULL) ||
|
||||||
|
+ !strcmp(part->name, "rootfs")) {
|
||||||
+ run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS);
|
+ run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS);
|
||||||
+
|
+
|
||||||
+ rootfs_found = 1;
|
+ rootfs_found = 1;
|
||||||
@ -213,7 +214,7 @@ Subject: [PATCH] mtd: mtdsplit support
|
|||||||
int mtd_add_partition(struct mtd_info *parent, const char *name,
|
int mtd_add_partition(struct mtd_info *parent, const char *name,
|
||||||
long long offset, long long length)
|
long long offset, long long length)
|
||||||
{
|
{
|
||||||
@@ -274,6 +416,7 @@ int mtd_add_partition(struct mtd_info *p
|
@@ -274,6 +417,7 @@ int mtd_add_partition(struct mtd_info *p
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_remove_part;
|
goto err_remove_part;
|
||||||
|
|
||||||
@ -221,7 +222,7 @@ Subject: [PATCH] mtd: mtdsplit support
|
|||||||
mtd_add_partition_attrs(child);
|
mtd_add_partition_attrs(child);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -422,6 +565,7 @@ int add_mtd_partitions(struct mtd_info *
|
@@ -422,6 +566,7 @@ int add_mtd_partitions(struct mtd_info *
|
||||||
goto err_del_partitions;
|
goto err_del_partitions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,7 +230,7 @@ Subject: [PATCH] mtd: mtdsplit support
|
|||||||
mtd_add_partition_attrs(child);
|
mtd_add_partition_attrs(child);
|
||||||
|
|
||||||
/* Look for subpartitions */
|
/* Look for subpartitions */
|
||||||
@@ -438,31 +582,6 @@ err_del_partitions:
|
@@ -438,31 +583,6 @@ err_del_partitions:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user