aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2021-02-15 15:05:52 +0100
committerRafał Miłecki <rafal@milecki.pl>2021-02-15 15:06:40 +0100
commit09fbc79bf6dc6365018944e1e0629b5f1c921790 (patch)
tree3f7b8bb34fcc9f52622e3f138b70d7e8d5a1e261 /target/linux/generic
parentac7d45b5e783fdd4ca35fe53a0921d8972f3f53b (diff)
downloadupstream-09fbc79bf6dc6365018944e1e0629b5f1c921790.tar.gz
upstream-09fbc79bf6dc6365018944e1e0629b5f1c921790.tar.bz2
upstream-09fbc79bf6dc6365018944e1e0629b5f1c921790.zip
kernel: drop ofpart patch dropped from upstream mtd tree
It stopped ofpart_parser_init() from being called Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/backport-5.4/402-v5.12-0003-mtd-parsers-ofpart-support-BCM4908-fixed-partitions.patch194
-rw-r--r--target/linux/generic/backport-5.4/402-v5.12-0004-mtd-parsers-ofpart-fix-building-as-module.patch40
-rw-r--r--target/linux/generic/pending-5.4/430-mtd-add-myloader-partition-parser.patch2
-rw-r--r--target/linux/generic/pending-5.4/435-mtd-add-routerbootpart-parser-config.patch2
4 files changed, 2 insertions, 236 deletions
diff --git a/target/linux/generic/backport-5.4/402-v5.12-0003-mtd-parsers-ofpart-support-BCM4908-fixed-partitions.patch b/target/linux/generic/backport-5.4/402-v5.12-0003-mtd-parsers-ofpart-support-BCM4908-fixed-partitions.patch
deleted file mode 100644
index 340091fab9..0000000000
--- a/target/linux/generic/backport-5.4/402-v5.12-0003-mtd-parsers-ofpart-support-BCM4908-fixed-partitions.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-From 09cf6ee6d21cd9ef2eb857ccb24305cf51166792 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Thu, 11 Feb 2021 23:04:27 +0100
-Subject: [PATCH] mtd: parsers: ofpart: support BCM4908 fixed partitions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-BCM4908 partitioning is based on fixed layout but allows specifying
-multiple firmware partitions. It requires detecting which firmware
-partition was used for booting current kernel.
-
-To support such cases without duplicating a lot of code (without copying
-most of the ofpart.c code) support for post-parsing callback was added.
-
-BCM4908 callback simply reads offset of currently used firmware
-partition from the DT. Bootloader specifies it using the "brcm_blparms"
-property.
-
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Signed-off-by: Richard Weinberger <richard@nod.at>
----
- drivers/mtd/parsers/Makefile | 1 +
- drivers/mtd/parsers/bcm4908-partitions.c | 64 ++++++++++++++++++++++++
- drivers/mtd/parsers/bcm4908-partitions.h | 7 +++
- drivers/mtd/parsers/ofpart.c | 28 ++++++++++-
- 4 files changed, 98 insertions(+), 2 deletions(-)
- create mode 100644 drivers/mtd/parsers/bcm4908-partitions.c
- create mode 100644 drivers/mtd/parsers/bcm4908-partitions.h
-
---- a/drivers/mtd/parsers/Makefile
-+++ b/drivers/mtd/parsers/Makefile
-@@ -4,6 +4,7 @@ obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm4
- obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
- obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
- obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
-+obj-$(CONFIG_MTD_OF_PARTS) += bcm4908-partitions.o
- obj-$(CONFIG_MTD_PARSER_IMAGETAG) += parser_imagetag.o
- obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
- obj-$(CONFIG_MTD_PARSER_TRX) += parser_trx.o
---- /dev/null
-+++ b/drivers/mtd/parsers/bcm4908-partitions.c
-@@ -0,0 +1,64 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Copyright (C) 2021 Rafał Miłecki <rafal@milecki.pl>
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/of.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/slab.h>
-+#include <linux/mtd/partitions.h>
-+
-+#include "bcm4908-partitions.h"
-+
-+#define BLPARAMS_FW_OFFSET "NAND_RFS_OFS"
-+
-+static long long bcm4908_partitions_fw_offset(void)
-+{
-+ struct device_node *root;
-+ struct property *prop;
-+ const char *s;
-+
-+ root = of_find_node_by_path("/");
-+ if (!root)
-+ return -ENOENT;
-+
-+ of_property_for_each_string(root, "brcm_blparms", prop, s) {
-+ size_t len = strlen(BLPARAMS_FW_OFFSET);
-+ unsigned long offset;
-+ int err;
-+
-+ if (strncmp(s, BLPARAMS_FW_OFFSET, len) || s[len] != '=')
-+ continue;
-+
-+ err = kstrtoul(s + len + 1, 0, &offset);
-+ if (err) {
-+ pr_err("failed to parse %s\n", s + len + 1);
-+ return err;
-+ }
-+
-+ return offset << 10;
-+ }
-+
-+ return -ENOENT;
-+}
-+
-+int bcm4908_partitions_post_parse(struct mtd_info *mtd, struct mtd_partition *parts, int nr_parts)
-+{
-+ long long fw_offset;
-+ int i;
-+
-+ fw_offset = bcm4908_partitions_fw_offset();
-+
-+ for (i = 0; i < nr_parts; i++) {
-+ if (of_device_is_compatible(parts[i].of_node, "brcm,bcm4908-firmware")) {
-+ if (fw_offset < 0 || parts[i].offset == fw_offset)
-+ parts[i].name = "firmware";
-+ else
-+ parts[i].name = "backup";
-+ }
-+ }
-+
-+ return 0;
-+}
---- /dev/null
-+++ b/drivers/mtd/parsers/bcm4908-partitions.h
-@@ -0,0 +1,7 @@
-+/* SPDX-License-Identifier: GPL-2.0 */
-+#ifndef __BCM4908_PARTITIONS_H
-+#define __BCM4908_PARTITIONS_H
-+
-+int bcm4908_partitions_post_parse(struct mtd_info *mtd, struct mtd_partition *parts, int nr_parts);
-+
-+#endif
---- a/drivers/mtd/parsers/ofpart.c
-+++ b/drivers/mtd/parsers/ofpart.c
-@@ -16,6 +16,18 @@
- #include <linux/slab.h>
- #include <linux/mtd/partitions.h>
-
-+#include "bcm4908-partitions.h"
-+
-+struct fixed_partitions_quirks {
-+ int (*post_parse)(struct mtd_info *mtd, struct mtd_partition *parts, int nr_parts);
-+};
-+
-+struct fixed_partitions_quirks bcm4908_partitions_quirks = {
-+ .post_parse = bcm4908_partitions_post_parse,
-+};
-+
-+static const struct of_device_id parse_ofpart_match_table[];
-+
- static bool node_has_compatible(struct device_node *pp)
- {
- return of_get_property(pp, "compatible", NULL);
-@@ -25,6 +37,8 @@ static int parse_fixed_partitions(struct
- const struct mtd_partition **pparts,
- struct mtd_part_parser_data *data)
- {
-+ const struct fixed_partitions_quirks *quirks;
-+ const struct of_device_id *of_id;
- struct mtd_partition *parts;
- struct device_node *mtd_node;
- struct device_node *ofpart_node;
-@@ -33,7 +47,6 @@ static int parse_fixed_partitions(struct
- int nr_parts, i, ret = 0;
- bool dedicated = true;
-
--
- /* Pull of_node from the master device node */
- mtd_node = mtd_get_of_node(master);
- if (!mtd_node)
-@@ -50,11 +63,16 @@ static int parse_fixed_partitions(struct
- master->name, mtd_node);
- ofpart_node = mtd_node;
- dedicated = false;
-- } else if (!of_device_is_compatible(ofpart_node, "fixed-partitions")) {
-+ }
-+
-+ of_id = of_match_node(parse_ofpart_match_table, ofpart_node);
-+ if (dedicated && !of_id) {
- /* The 'partitions' subnode might be used by another parser */
- return 0;
- }
-
-+ quirks = of_id ? of_id->data : NULL;
-+
- /* First count the subnodes */
- nr_parts = 0;
- for_each_child_of_node(ofpart_node, pp) {
-@@ -123,6 +141,9 @@ static int parse_fixed_partitions(struct
- if (!nr_parts)
- goto ofpart_none;
-
-+ if (quirks && quirks->post_parse)
-+ quirks->post_parse(master, parts, nr_parts);
-+
- *pparts = parts;
- return nr_parts;
-
-@@ -137,7 +158,10 @@ ofpart_none:
- }
-
- static const struct of_device_id parse_ofpart_match_table[] = {
-+ /* Generic */
- { .compatible = "fixed-partitions" },
-+ /* Customized */
-+ { .compatible = "brcm,bcm4908-partitions", .data = &bcm4908_partitions_quirks, },
- {},
- };
- MODULE_DEVICE_TABLE(of, parse_ofpart_match_table);
diff --git a/target/linux/generic/backport-5.4/402-v5.12-0004-mtd-parsers-ofpart-fix-building-as-module.patch b/target/linux/generic/backport-5.4/402-v5.12-0004-mtd-parsers-ofpart-fix-building-as-module.patch
deleted file mode 100644
index 47223098ec..0000000000
--- a/target/linux/generic/backport-5.4/402-v5.12-0004-mtd-parsers-ofpart-fix-building-as-module.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From bc6dcf44da2bea215ae3edbdac5d350e96de3996 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Mon, 15 Feb 2021 08:28:44 +0100
-Subject: [PATCH] mtd: parsers: ofpart: fix building as module
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes:
-ERROR: modpost: missing MODULE_LICENSE() in drivers/mtd/parsers/bcm4908-partitions.o
-ERROR: modpost: "bcm4908_partitions_post_parse" [drivers/mtd/parsers/ofpart.ko] undefined!
-
-Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
-Fixes: 09cf6ee6d21c ("mtd: parsers: ofpart: support BCM4908 fixed partitions")
-Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-Signed-off-by: Richard Weinberger <richard@nod.at>
----
- drivers/mtd/parsers/Makefile | 2 +-
- drivers/mtd/parsers/bcm4908-partitions.c | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
---- a/drivers/mtd/parsers/Makefile
-+++ b/drivers/mtd/parsers/Makefile
-@@ -4,7 +4,7 @@ obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm4
- obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
- obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
- obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
--obj-$(CONFIG_MTD_OF_PARTS) += bcm4908-partitions.o
-+ofpart-objs := bcm4908-partitions.o
- obj-$(CONFIG_MTD_PARSER_IMAGETAG) += parser_imagetag.o
- obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
- obj-$(CONFIG_MTD_PARSER_TRX) += parser_trx.o
---- a/drivers/mtd/parsers/bcm4908-partitions.c
-+++ b/drivers/mtd/parsers/bcm4908-partitions.c
-@@ -62,3 +62,5 @@ int bcm4908_partitions_post_parse(struct
-
- return 0;
- }
-+
-+MODULE_LICENSE("GPL");
diff --git a/target/linux/generic/pending-5.4/430-mtd-add-myloader-partition-parser.patch b/target/linux/generic/pending-5.4/430-mtd-add-myloader-partition-parser.patch
index fc99996674..9600dfc67a 100644
--- a/target/linux/generic/pending-5.4/430-mtd-add-myloader-partition-parser.patch
+++ b/target/linux/generic/pending-5.4/430-mtd-add-myloader-partition-parser.patch
@@ -41,8 +41,8 @@ Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
+obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
- ofpart-objs := bcm4908-partitions.o
obj-$(CONFIG_MTD_PARSER_IMAGETAG) += parser_imagetag.o
+ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
--- /dev/null
+++ b/drivers/mtd/parsers/myloader.c
@@ -0,0 +1,181 @@
diff --git a/target/linux/generic/pending-5.4/435-mtd-add-routerbootpart-parser-config.patch b/target/linux/generic/pending-5.4/435-mtd-add-routerbootpart-parser-config.patch
index ed7eb6e989..1523e757c7 100644
--- a/target/linux/generic/pending-5.4/435-mtd-add-routerbootpart-parser-config.patch
+++ b/target/linux/generic/pending-5.4/435-mtd-add-routerbootpart-parser-config.patch
@@ -31,7 +31,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
+ formatted DTS.
--- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/parsers/Makefile
-@@ -11,3 +11,4 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
+@@ -10,3 +10,4 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
obj-$(CONFIG_MTD_PARSER_TRX) += parser_trx.o
obj-$(CONFIG_MTD_SHARPSL_PARTS) += sharpslpart.o
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o