From: Weijie Gao <hackpas...@gmail.com> Some firmware have already defined rootfs/rootfs_data partitions and do not need extra split operations.
This patch adds two kernel cmdline parameters to disable firmware and rootfs parsers separately: nofwsplit norootfssplit Signed-off-by: Weijie Gao <hackpas...@gmail.com> --- ...d-kernel-cmdline-to-disable-split-parsers.patch | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 target/linux/generic/pending-4.4/405-mtd-add-kernel-cmdline-to-disable-split-parsers.patch diff --git a/target/linux/generic/pending-4.4/405-mtd-add-kernel-cmdline-to-disable-split-parsers.patch b/target/linux/generic/pending-4.4/405-mtd-add-kernel-cmdline-to-disable-split-parsers.patch new file mode 100644 index 0000000000..b0a666a401 --- /dev/null +++ b/target/linux/generic/pending-4.4/405-mtd-add-kernel-cmdline-to-disable-split-parsers.patch @@ -0,0 +1,56 @@ +--- a/drivers/mtd/mtdpart.c ++++ b/drivers/mtd/mtdpart.c +@@ -39,6 +39,10 @@ + + #define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */ + ++/* Do not split firmware/rootfs partition */ ++static bool no_fw_split_flag = 0; ++static bool no_rootfs_split_flag = 0; ++ + /* Our partition linked list */ + static LIST_HEAD(mtd_partitions); + static DEFINE_MUTEX(mtd_partitions_mutex); +@@ -774,6 +778,9 @@ mtd_pad_erasesize(struct mtd_info *mtd, + + static void split_firmware(struct mtd_info *master, struct mtd_part *part) + { ++ if (no_fw_split_flag) ++ return; ++ + run_parsers_by_type(part, MTD_PARSER_TYPE_FIRMWARE); + } + +@@ -790,7 +797,8 @@ static void mtd_partition_split(struct m + return; + + if (!strcmp(part->mtd.name, "rootfs")) { +- run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS); ++ if (!no_rootfs_split_flag) ++ run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS); + + rootfs_found = 1; + } +@@ -1092,3 +1100,22 @@ uint64_t mtd_get_device_size(const struc + return PART(mtd)->master->size; + } + EXPORT_SYMBOL_GPL(mtd_get_device_size); ++ ++ ++static int __init no_fw_split(char *str) ++{ ++ no_fw_split_flag = 1; ++ ++ return 0; ++} ++ ++early_param("nofwsplit", no_fw_split); ++ ++static int __init no_rootfs_split(char *str) ++{ ++ no_rootfs_split_flag = 1; ++ ++ return 0; ++} ++ ++early_param("norootfssplit", no_rootfs_split); -- 2.11.0 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev