aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-mediatek/patches/001-mtk-0017-net-mediatek-remap-iobase-address.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/boot/uboot-mediatek/patches/001-mtk-0017-net-mediatek-remap-iobase-address.patch')
-rw-r--r--package/boot/uboot-mediatek/patches/001-mtk-0017-net-mediatek-remap-iobase-address.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/package/boot/uboot-mediatek/patches/001-mtk-0017-net-mediatek-remap-iobase-address.patch b/package/boot/uboot-mediatek/patches/001-mtk-0017-net-mediatek-remap-iobase-address.patch
new file mode 100644
index 0000000000..72b38492e8
--- /dev/null
+++ b/package/boot/uboot-mediatek/patches/001-mtk-0017-net-mediatek-remap-iobase-address.patch
@@ -0,0 +1,38 @@
+From 391785398f61c85e6b55b1e9edbab94e3ba1b783 Mon Sep 17 00:00:00 2001
+From: Weijie Gao <weijie.gao@mediatek.com>
+Date: Fri, 20 May 2022 11:23:31 +0800
+Subject: [PATCH 17/25] net: mediatek: remap iobase address
+
+The iobase address from dts node is actually physical address. It's
+identical to the virtual address in ARM platform. This is ok because this
+driver was used only by ARM platforms (mt7622/mt7623 ...).
+
+But now this driver will be used by mt7621 which is a MIPS SoC. For MIPS
+platform the physical address space is mapped to KSEG0 and KSEG1 and this
+makes the virtual address apparently not idential to its physical address.
+
+To solve this issue, this patch replaces dev_read_addr with dev_remap_addr
+to get the remapped iobase address.
+
+Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
+Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
+---
+ drivers/net/mtk_eth.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c
+index 666ddeb10d..caa83b7cec 100644
+--- a/drivers/net/mtk_eth.c
++++ b/drivers/net/mtk_eth.c
+@@ -1419,7 +1419,7 @@ static int mtk_eth_of_to_plat(struct udevice *dev)
+
+ priv->soc = dev_get_driver_data(dev);
+
+- pdata->iobase = dev_read_addr(dev);
++ pdata->iobase = (phys_addr_t)dev_remap_addr(dev);
+
+ /* get corresponding ethsys phandle */
+ ret = dev_read_phandle_with_args(dev, "mediatek,ethsys", NULL, 0, 0,
+--
+2.36.1
+