From patchwork Tue Mar 9 23:52:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Hauke Mehrtens X-Patchwork-Id: 1450242 X-Patchwork-Delegate: hauke@hauke-m.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1:d65d:64ff:fe57:4e05; helo=desiato.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=RokdpvjH; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=hauke-m.de header.i=@hauke-m.de header.a=rsa-sha256 header.s=MBO0001 header.b=GvfcfcWz; dkim-atps=neutral Received: from desiato.infradead.org (desiato.infradead.org [IPv6:2001:8b0:10b:1:d65d:64ff:fe57:4e05]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DwBsP2ql6z9sRR for ; Wed, 10 Mar 2021 10:55:04 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ApSeAV0gPg43qNqshVCDIozI3w+X8mG1XJafpdL2jps=; b=RokdpvjHSD5aCJ+NT8eGFYHlm JmQ/TBuT/VuxCdGUl7ddRQN3RFDbcUgfxWvHTjm6ljIgUKOYOl9oyr2PTLE0G7SDttWw9AKmnkYHQ j48dW5SyQmNHs7n6vL+MirZOugpaXI/UgbDnQbDdmFr3MIVTvolgskAg5d7QfDvglQ4VNcAVlLoEt OHQoSWXA/7njQQoaN2ZEo1sYdsBprix77LUgZCkV6ZJJE3JCcOp3LmN3oJmZINsBjHQ7YirAw7P4Q Nztqy++2pV6pkYxW+2roH7uXhdNCK2UdI78rvrvIIk0ow9cAW0aOrZjyBVCm4l6pyWf1IVOlrotHC u6wmcq2/w==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJmA3-005ezi-No; Tue, 09 Mar 2021 23:53:11 +0000 Received: from mout-p-101.mailbox.org ([80.241.56.151]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lJm9d-005evh-Tu for openwrt-devel@lists.openwrt.org; Tue, 09 Mar 2021 23:52:48 +0000 Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:105:465:1:2:0]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4DwBpj4MkLzQjwk; Wed, 10 Mar 2021 00:52:45 +0100 (CET) X-Virus-Scanned: amavisd-new at heinlein-support.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hauke-m.de; s=MBO0001; t=1615333963; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xgtrW4UuIy071FeWRaOo6IKemBPdMJnzYtGsvPNaIPo=; b=GvfcfcWzpuuscZX02F44zeA7jobW/yk5emwtEwR3y/JvzMuFkfpZ8vLtZnOrDEGb+BwGLN Bc3l9RTdNI/d3ED/dTIBM4uZNKHW/E9gP4mdCK6C+NhEXM2HTRw9Y6PyOVNMfAF+K6EgMs rYgDB8p1qzuvRUH4Fe97QKh4c3VqvJliZrzCUxsrCCvezq7egqSw1tKvJQpawplH8+1bsH 9CTU5GaqAt38dPDyz/XAoXTooFrUCvFhhzMzB2PTz8CDJ7CvZNyLg2wvEmsyAIGqcOds6I x9rlc+bPxX0FyVTfwj6CYle7qZ9/n0+WaJCb2YiM3aJWUvGklXbWnOGmi/Nu8A== Received: from smtp2.mailbox.org ([80.241.60.241]) by hefe.heinlein-support.de (hefe.heinlein-support.de [91.198.250.172]) (amavisd-new, port 10030) with ESMTP id YqpsEFYgIT-x; Wed, 10 Mar 2021 00:52:41 +0100 (CET) From: Hauke Mehrtens To: openwrt-devel@lists.openwrt.org Cc: musashino.open@gmail.com, Hauke Mehrtens , =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= Subject: [PATCH 4/5] mediatek: Support non standard trx magic values Date: Wed, 10 Mar 2021 00:52:13 +0100 Message-Id: <20210309235214.1690449-5-hauke@hauke-m.de> In-Reply-To: <20210309235214.1690449-1-hauke@hauke-m.de> References: <20210309235214.1690449-1-hauke@hauke-m.de> MIME-Version: 1.0 X-MBO-SPAM-Probability: X-Rspamd-Score: -0.61 / 15.00 / 15.00 X-Rspamd-Queue-Id: AD6CD171D X-Rspamd-UID: e574e6 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210309_235246_283596_170ABF70 X-CRM114-Status: GOOD ( 21.61 ) X-Spam-Score: -0.9 (/) X-Spam-Report: =?unknown-8bit?q?Spam_detection_software=2C_running_on_the_sy?= =?unknown-8bit?q?stem_=22desiato=2Einfradead=2Eorg=22=2C?= =?unknown-8bit?q?_has_NOT_identified_this_incoming_email_as_spam=2E__The_ori?= =?unknown-8bit?q?ginal?= =?unknown-8bit?q?_message_has_been_attached_to_this_so_you_can_view_it_or_la?= =?unknown-8bit?q?bel?= =?unknown-8bit?q?_similar_future_email=2E__If_you_have_any_questions=2C_see?= =?unknown-8bit?q?_the_administrator_of_that_system_for_details=2E?= =?unknown-8bit?q?_?= =?unknown-8bit?q?_Content_preview=3A__Buffalo_uses_the_TRX_format_with_a_dif?= =?unknown-8bit?q?ferent_magic=2C_add_support?= =?unknown-8bit?q?_for_this=2E_It_is_planned_to_send_these_patches_upstream?= =?unknown-8bit?q?=2E_Cc=3A_Rafa=C5=82_Mi=C5=82ecki?= =?unknown-8bit?q?_=3Crafal=40milecki=2Epl=3E_Signed-off-by=3A_Hauke_Mehrtens?= =?unknown-8bit?q?_=3Chauke=40hauke-m=2Ede=3E_---_=2E=2E=2Etrx-Allow-to-spec?= =?unknown-8bit?q?ify-trx-magic-in-DT=2Epatch?= =?unknown-8bit?q?_=7C_75_+++++++++++++++++++_=2E=2E=2Eove-dependency-to-BRCM?= =?unknown-8bit?q?-architectur_=5B=2E=2E=2E=5D_?= =?unknown-8bit?q?_?= =?unknown-8bit?q?_Content_analysis_details=3A___=28-0=2E9_points=2C_5=2E0_re?= =?unknown-8bit?q?quired=29?= =?unknown-8bit?q?_?= =?unknown-8bit?q?_pts_rule_name______________description?= =?unknown-8bit?q?_----_----------------------_------------------------------?= =?unknown-8bit?q?--------------------?= =?unknown-8bit?q?_-0=2E7_RCVD=5FIN=5FDNSWL=5FLOW______RBL=3A_Sender_listed_a?= =?unknown-8bit?q?t_https=3A//www=2Ednswl=2Eorg/=2C?= =?unknown-8bit?q?_low_trust?= =?unknown-8bit?q?_=5B80=2E241=2E56=2E151_listed_in_list=2Ednswl=2Eorg=5D?= =?unknown-8bit?q?_-0=2E0_RCVD=5FIN=5FMSPIKE=5FH4______RBL=3A_Very_Good_reput?= =?unknown-8bit?q?ation_=28+4=29?= =?unknown-8bit?q?_=5B80=2E241=2E56=2E151_listed_in_wl=2Emailspike=2Enet=5D?= =?unknown-8bit?q?_0=2E0_SPF=5FHELO=5FNONE__________SPF=3A_HELO_does_not_publ?= =?unknown-8bit?q?ish_an_SPF_Record?= =?unknown-8bit?q?_-0=2E0_SPF=5FPASS_______________SPF=3A_sender_matches_SPF_?= =?unknown-8bit?q?record?= =?unknown-8bit?q?_-0=2E1_DKIM=5FVALID_____________Message_has_at_least_one_v?= =?unknown-8bit?q?alid_DKIM_or_DK_signature?= =?unknown-8bit?q?_-0=2E1_DKIM=5FVALID=5FEF__________Message_has_a_valid_DKIM?= =?unknown-8bit?q?_or_DK_signature_from?= =?unknown-8bit?q?_envelope-from_domain?= =?unknown-8bit?q?_0=2E1_DKIM=5FSIGNED____________Message_has_a_DKIM_or_DK_si?= =?unknown-8bit?q?gnature=2C_not_necessarily?= =?unknown-8bit?q?_valid?= =?unknown-8bit?q?_-0=2E1_DKIM=5FVALID=5FAU__________Message_has_a_valid_DKIM?= =?unknown-8bit?q?_or_DK_signature_from?= =?unknown-8bit?q?_author=27s_domain?= =?unknown-8bit?q?_-0=2E0_RCVD=5FIN=5FMSPIKE=5FWL______Mailspike_good_senders?= X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Buffalo uses the TRX format with a different magic, add support for this. It is planned to send these patches upstream. Cc: Rafał Miłecki Signed-off-by: Hauke Mehrtens --- ...trx-Allow-to-specify-trx-magic-in-DT.patch | 75 +++++++++++++++++++ ...ove-dependency-to-BRCM-architectures.patch | 23 ++++++ ...trx-Allow-to-specify-trx-magic-in-DT.patch | 75 +++++++++++++++++++ ...ove-dependency-to-BRCM-architectures.patch | 23 ++++++ 4 files changed, 196 insertions(+) create mode 100644 target/linux/mediatek/patches-5.10/350-mtd-parsers-trx-Allow-to-specify-trx-magic-in-DT.patch create mode 100644 target/linux/mediatek/patches-5.10/351-mtd-parsers-Remove-dependency-to-BRCM-architectures.patch create mode 100644 target/linux/mediatek/patches-5.4/0350-mtd-parsers-trx-Allow-to-specify-trx-magic-in-DT.patch create mode 100644 target/linux/mediatek/patches-5.4/0351-mtd-parsers-Remove-dependency-to-BRCM-architectures.patch diff --git a/target/linux/mediatek/patches-5.10/350-mtd-parsers-trx-Allow-to-specify-trx-magic-in-DT.patch b/target/linux/mediatek/patches-5.10/350-mtd-parsers-trx-Allow-to-specify-trx-magic-in-DT.patch new file mode 100644 index 000000000000..4db51a88ad19 --- /dev/null +++ b/target/linux/mediatek/patches-5.10/350-mtd-parsers-trx-Allow-to-specify-trx-magic-in-DT.patch @@ -0,0 +1,75 @@ +From 0600e3d81628002a5cd80cf83ee454851b0063c0 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sun, 7 Mar 2021 18:19:26 +0100 +Subject: mtd: parsers: trx: Allow to specify trx-magic in DT + +Buffalo uses a different TRX magic for every device, to be able to use +this trx parser, make it possible to specify the TRX magic in device +tree. If no TRX magic is specified in device tree, the standard value +will be used. This value should only be specified if a vendor chooses to +use a non standard TRX magic. + +Signed-off-by: Hauke Mehrtens +--- + .../bindings/mtd/partitions/brcm,trx.txt | 5 +++++ + drivers/mtd/parsers/parser_trx.c | 21 ++++++++++++++++++- + 2 files changed, 25 insertions(+), 1 deletion(-) + +--- a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt ++++ b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt +@@ -28,6 +28,11 @@ detected by a software parsing TRX heade + Required properties: + - compatible : (required) must be "brcm,trx" + ++Optional properties: ++ ++- trx-magic: TRX magic, if it is different from the default magic ++ 0x30524448 as a u32. ++ + Example: + + flash@0 { +--- a/drivers/mtd/parsers/parser_trx.c ++++ b/drivers/mtd/parsers/parser_trx.c +@@ -74,6 +74,24 @@ out_default: + return "rootfs"; + } + ++static uint32_t parser_trx_get_magic(struct mtd_info *mtd) ++{ ++ uint32_t trx_magic = TRX_MAGIC; ++ struct device_node *np; ++ int err; ++ ++ np = mtd_get_of_node(mtd); ++ if (!np) ++ return trx_magic; ++ ++ /* Get different magic from device tree if specified */ ++ err = of_property_read_u32(np, "trx-magic", &trx_magic); ++ if (err != 0 && err != -EINVAL) ++ pr_err("failed to parse \"trx-magic\" DT attribute, use default: %d\n", err); ++ ++ return trx_magic; ++} ++ + static int parser_trx_parse(struct mtd_info *mtd, + const struct mtd_partition **pparts, + struct mtd_part_parser_data *data) +@@ -83,6 +101,7 @@ static int parser_trx_parse(struct mtd_i + struct trx_header trx; + size_t bytes_read; + uint8_t curr_part = 0, i = 0; ++ uint32_t trx_magic = parser_trx_get_magic(mtd); + int err; + + parts = kcalloc(TRX_PARSER_MAX_PARTS, sizeof(struct mtd_partition), +@@ -97,7 +116,7 @@ static int parser_trx_parse(struct mtd_i + return err; + } + +- if (trx.magic != TRX_MAGIC) { ++ if (trx.magic != trx_magic) { + kfree(parts); + return -ENOENT; + } diff --git a/target/linux/mediatek/patches-5.10/351-mtd-parsers-Remove-dependency-to-BRCM-architectures.patch b/target/linux/mediatek/patches-5.10/351-mtd-parsers-Remove-dependency-to-BRCM-architectures.patch new file mode 100644 index 000000000000..5f06cad4cd8d --- /dev/null +++ b/target/linux/mediatek/patches-5.10/351-mtd-parsers-Remove-dependency-to-BRCM-architectures.patch @@ -0,0 +1,23 @@ +From 63f0cf88ab5461acb0911252f12bb94ee3bf05a2 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sun, 7 Mar 2021 18:23:29 +0100 +Subject: mtd: parsers: Remove dependency to BRCM architectures + +Buffalo uses the TRX partition format also on Mediatek SoCs. + +Signed-off-by: Hauke Mehrtens +--- + drivers/mtd/parsers/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/mtd/parsers/Kconfig ++++ b/drivers/mtd/parsers/Kconfig +@@ -121,7 +121,7 @@ config MTD_AFS_PARTS + + config MTD_PARSER_TRX + tristate "Parser for TRX format partitions" +- depends on MTD && (BCM47XX || ARCH_BCM_5301X || COMPILE_TEST) ++ depends on MTD + help + TRX is a firmware format used by Broadcom on their devices. It + may contain up to 3/4 partitions (depending on the version). diff --git a/target/linux/mediatek/patches-5.4/0350-mtd-parsers-trx-Allow-to-specify-trx-magic-in-DT.patch b/target/linux/mediatek/patches-5.4/0350-mtd-parsers-trx-Allow-to-specify-trx-magic-in-DT.patch new file mode 100644 index 000000000000..4db51a88ad19 --- /dev/null +++ b/target/linux/mediatek/patches-5.4/0350-mtd-parsers-trx-Allow-to-specify-trx-magic-in-DT.patch @@ -0,0 +1,75 @@ +From 0600e3d81628002a5cd80cf83ee454851b0063c0 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sun, 7 Mar 2021 18:19:26 +0100 +Subject: mtd: parsers: trx: Allow to specify trx-magic in DT + +Buffalo uses a different TRX magic for every device, to be able to use +this trx parser, make it possible to specify the TRX magic in device +tree. If no TRX magic is specified in device tree, the standard value +will be used. This value should only be specified if a vendor chooses to +use a non standard TRX magic. + +Signed-off-by: Hauke Mehrtens +--- + .../bindings/mtd/partitions/brcm,trx.txt | 5 +++++ + drivers/mtd/parsers/parser_trx.c | 21 ++++++++++++++++++- + 2 files changed, 25 insertions(+), 1 deletion(-) + +--- a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt ++++ b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt +@@ -28,6 +28,11 @@ detected by a software parsing TRX heade + Required properties: + - compatible : (required) must be "brcm,trx" + ++Optional properties: ++ ++- trx-magic: TRX magic, if it is different from the default magic ++ 0x30524448 as a u32. ++ + Example: + + flash@0 { +--- a/drivers/mtd/parsers/parser_trx.c ++++ b/drivers/mtd/parsers/parser_trx.c +@@ -74,6 +74,24 @@ out_default: + return "rootfs"; + } + ++static uint32_t parser_trx_get_magic(struct mtd_info *mtd) ++{ ++ uint32_t trx_magic = TRX_MAGIC; ++ struct device_node *np; ++ int err; ++ ++ np = mtd_get_of_node(mtd); ++ if (!np) ++ return trx_magic; ++ ++ /* Get different magic from device tree if specified */ ++ err = of_property_read_u32(np, "trx-magic", &trx_magic); ++ if (err != 0 && err != -EINVAL) ++ pr_err("failed to parse \"trx-magic\" DT attribute, use default: %d\n", err); ++ ++ return trx_magic; ++} ++ + static int parser_trx_parse(struct mtd_info *mtd, + const struct mtd_partition **pparts, + struct mtd_part_parser_data *data) +@@ -83,6 +101,7 @@ static int parser_trx_parse(struct mtd_i + struct trx_header trx; + size_t bytes_read; + uint8_t curr_part = 0, i = 0; ++ uint32_t trx_magic = parser_trx_get_magic(mtd); + int err; + + parts = kcalloc(TRX_PARSER_MAX_PARTS, sizeof(struct mtd_partition), +@@ -97,7 +116,7 @@ static int parser_trx_parse(struct mtd_i + return err; + } + +- if (trx.magic != TRX_MAGIC) { ++ if (trx.magic != trx_magic) { + kfree(parts); + return -ENOENT; + } diff --git a/target/linux/mediatek/patches-5.4/0351-mtd-parsers-Remove-dependency-to-BRCM-architectures.patch b/target/linux/mediatek/patches-5.4/0351-mtd-parsers-Remove-dependency-to-BRCM-architectures.patch new file mode 100644 index 000000000000..5f06cad4cd8d --- /dev/null +++ b/target/linux/mediatek/patches-5.4/0351-mtd-parsers-Remove-dependency-to-BRCM-architectures.patch @@ -0,0 +1,23 @@ +From 63f0cf88ab5461acb0911252f12bb94ee3bf05a2 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sun, 7 Mar 2021 18:23:29 +0100 +Subject: mtd: parsers: Remove dependency to BRCM architectures + +Buffalo uses the TRX partition format also on Mediatek SoCs. + +Signed-off-by: Hauke Mehrtens +--- + drivers/mtd/parsers/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/mtd/parsers/Kconfig ++++ b/drivers/mtd/parsers/Kconfig +@@ -121,7 +121,7 @@ config MTD_AFS_PARTS + + config MTD_PARSER_TRX + tristate "Parser for TRX format partitions" +- depends on MTD && (BCM47XX || ARCH_BCM_5301X || COMPILE_TEST) ++ depends on MTD + help + TRX is a firmware format used by Broadcom on their devices. It + may contain up to 3/4 partitions (depending on the version).