All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Bianconi <lorenzo@kernel.org>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, matthias.bgg@gmail.com,
	linux-mediatek@lists.infradead.org, nbd@nbd.name,
	john@phrozen.org, sean.wang@mediatek.com,
	Mark-MC.Lee@mediatek.com, lorenzo.bianconi@redhat.com,
	daniel@makrotopia.org, krzysztof.kozlowski+dt@linaro.org,
	robh+dt@kernel.org, devicetree@vger.kernel.org
Subject: [PATCH net-next 05/10] net: ethernet: mtk_wed: move ilm a dedicated dts node
Date: Mon, 20 Mar 2023 17:57:59 +0100	[thread overview]
Message-ID: <93f309bafc6f3f9ddeeba81eea04b3769e70febf.1679330630.git.lorenzo@kernel.org> (raw)
In-Reply-To: <cover.1679330630.git.lorenzo@kernel.org>

Since the ilm memory region is not part of the RAM SoC, move ilm in a
deidicated syscon node.
This patch helps to keep backward-compatibility with older version of
uboot codebase where we have a limit of 8 reserved-memory dts child
nodes.
Keep backward-compatibility with older dts version where ilm was defined
as reserved-memory child node.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 55 ++++++++++++++++++---
 1 file changed, 49 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
index 797c3b412ab6..a19db914ebd2 100644
--- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
+++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
@@ -299,6 +299,52 @@ mtk_wed_mcu_run_firmware(struct mtk_wed_wo *wo, const struct firmware *fw,
 	return -EINVAL;
 }
 
+static int
+mtk_wed_mcu_load_memory_regions(struct mtk_wed_wo *wo,
+				struct mtk_wed_wo_memory_region *region)
+{
+	struct device_node *np;
+	int ret;
+
+	/* firmware EMI memory region */
+	ret = mtk_wed_get_reserved_memory_region(wo,
+			&region[MTK_WED_WO_REGION_EMI]);
+	if (ret)
+		return ret;
+
+	/* firmware DATA memory region */
+	ret = mtk_wed_get_reserved_memory_region(wo,
+			&region[MTK_WED_WO_REGION_DATA]);
+	if (ret)
+		return ret;
+
+	np = of_parse_phandle(wo->hw->node, "mediatek,wo-ilm", 0);
+	if (np) {
+		struct mtk_wed_wo_memory_region *ilm_region;
+		struct resource res;
+
+		ret = of_address_to_resource(np, 0, &res);
+		of_node_put(np);
+
+		if (ret < 0)
+			return ret;
+
+		ilm_region = &region[MTK_WED_WO_REGION_ILM];
+		ilm_region->phy_addr = res.start;
+		ilm_region->size = resource_size(&res);
+		ilm_region->addr = devm_ioremap(wo->hw->dev, ilm_region->phy_addr,
+						ilm_region->size);
+
+		return ilm_region->addr ? 0 : -ENOMEM;
+	}
+
+	/* For backward compatibility, we need to check if ILM
+	 * node is defined through reserved memory property.
+	 */
+	return mtk_wed_get_reserved_memory_region(wo,
+			&region[MTK_WED_WO_REGION_ILM]);
+}
+
 static int
 mtk_wed_mcu_load_firmware(struct mtk_wed_wo *wo)
 {
@@ -320,12 +366,9 @@ mtk_wed_mcu_load_firmware(struct mtk_wed_wo *wo)
 	u32 val, boot_cr;
 	int ret, i;
 
-	/* load firmware region metadata */
-	for (i = 0; i < ARRAY_SIZE(mem_region); i++) {
-		ret = mtk_wed_get_reserved_memory_region(wo, &mem_region[i]);
-		if (ret)
-			return ret;
-	}
+	ret = mtk_wed_mcu_load_memory_regions(wo, mem_region);
+	if (ret)
+		return ret;
 
 	wo->boot_regmap = syscon_regmap_lookup_by_phandle(wo->hw->node,
 							  "mediatek,wo-cpuboot");
-- 
2.39.2


  parent reply	other threads:[~2023-03-20 17:23 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-20 16:57 [PATCH net-next 00/10] mtk: wed: move cpuboot, ilm and dlm in dedicated dts nodes Lorenzo Bianconi
2023-03-20 16:57 ` [PATCH net-next 01/10] net: ethernet: mtk_wed: rename mtk_wed_get_memory_region in mtk_wed_get_reserved_memory_region Lorenzo Bianconi
2023-03-20 16:57 ` [PATCH net-next 02/10] net: ethernet: mtk_wed: move cpuboot in a dedicated dts node Lorenzo Bianconi
2023-03-20 16:57 ` [PATCH net-next 03/10] dt-bindings: soc: mediatek: " Lorenzo Bianconi
2023-03-20 16:57 ` [PATCH net-next 04/10] arm64: dts: mt7986: move cpuboot in a dedicated node Lorenzo Bianconi
2023-03-31 10:53   ` Matthias Brugger
2023-03-20 16:57 ` Lorenzo Bianconi [this message]
2023-03-20 16:58 ` [PATCH net-next 06/10] dt-bindings: soc: mediatek: move ilm in a dedicated dts node Lorenzo Bianconi
2023-03-21 13:17   ` Rob Herring
2023-03-21 13:54     ` Lorenzo Bianconi
2023-03-21 19:32   ` Rob Herring
2023-03-22 16:05     ` Lorenzo Bianconi
2023-03-28  8:11       ` Lorenzo Bianconi
2023-03-20 16:58 ` [PATCH net-next 07/10] arm64: dts: mt7986: move ilm in a dedicated node Lorenzo Bianconi
2023-03-31 10:56   ` Matthias Brugger
2023-03-20 16:58 ` [PATCH net-next 08/10] net: ethernet: mtk_wed: move dlm a dedicated dts node Lorenzo Bianconi
2023-03-20 16:58 ` [PATCH net-next 09/10] dt-bindings: soc: mediatek: move dlm in " Lorenzo Bianconi
2023-03-20 16:58 ` [PATCH net-next 10/10] arm64: dts: mt7986: move dlm in a dedicated node Lorenzo Bianconi
2023-03-31 10:56   ` Matthias Brugger
2023-03-21  4:43 ` [PATCH net-next 00/10] mtk: wed: move cpuboot, ilm and dlm in dedicated dts nodes Jakub Kicinski
2023-03-21  9:37   ` Lorenzo Bianconi
2023-03-21  9:37     ` Lorenzo Bianconi
2023-03-21 16:19     ` Jakub Kicinski
2023-03-21 16:19       ` Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=93f309bafc6f3f9ddeeba81eea04b3769e70febf.1679330630.git.lorenzo@kernel.org \
    --to=lorenzo@kernel.org \
    --cc=Mark-MC.Lee@mediatek.com \
    --cc=daniel@makrotopia.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=john@phrozen.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=lorenzo.bianconi@redhat.com \
    --cc=matthias.bgg@gmail.com \
    --cc=nbd@nbd.name \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=robh+dt@kernel.org \
    --cc=sean.wang@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.