[openwrt/openwrt] kernel: add support for enabling fit firmware partition parser via cmdline

LEDE Commits lede-commits at lists.infradead.org
Sat Feb 27 23:19:41 EST 2021


dangole pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/7a6d0748247e23fe976bc400e9802db903d20b47

commit 7a6d0748247e23fe976bc400e9802db903d20b47
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Wed Feb 3 20:37:03 2021 +0100

    kernel: add support for enabling fit firmware partition parser via cmdline
    
    This is useful for dual-boot setups where the loader sets variables depending
    on the flash boot partition.
    For example the Linksys E8450 sets mtdparts=master for the first partition
    and mtdparts=slave for the second one.
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_fit.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_fit.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_fit.c
index 67ee33d085..5cc1658dbd 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_fit.c
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_fit.c
@@ -49,6 +49,8 @@ mtdsplit_fit_parse(struct mtd_info *mtd,
 		   const struct mtd_partition **pparts,
 	           struct mtd_part_parser_data *data)
 {
+	struct device_node *np = mtd_get_of_node(mtd);
+	const char *cmdline_match = NULL;
 	struct fdt_header hdr;
 	size_t hdr_len, retlen;
 	size_t offset;
@@ -57,6 +59,10 @@ mtdsplit_fit_parse(struct mtd_info *mtd,
 	struct mtd_partition *parts;
 	int ret;
 
+	of_property_read_string(np, "openwrt,cmdline-match", &cmdline_match);
+	if (cmdline_match && !strstr(saved_command_line, cmdline_match))
+		return -ENODEV;
+
 	hdr_len = sizeof(struct fdt_header);
 
 	/* Parse the MTD device & search for the FIT image location */



More information about the lede-commits mailing list