Add three backported patches from Linux upstream to fix the onboard Ethernet controller (dwmac-loongson) detection and driver issues on Loongson 2K3000 and 3B6000M platforms. These patches are taken from the upstream Linux kernel and retain the original authorship and commit logs. No other modifications are made to the loongarch64 target. The patches address the following symptoms: - Onboard network interface not recognized - Driver probe failures on 2K3000/3B6000M boards Signed-off-by: xinmu <xinmu@loongfans.cn> Link: https://github.com/openwrt/openwrt/pull/23366 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
54 lines
2.3 KiB
Diff
54 lines
2.3 KiB
Diff
From: Huacai Chen <chenhuacai@loongson.cn>
|
|
Date: Thu, 24 Apr 2025 15:22:09 +0800
|
|
Subject: [PATCH] net: stmmac: dwmac-loongson: Add new GMAC's PCI device ID
|
|
support
|
|
|
|
Add a new GMAC's PCI device ID (0x7a23) support which is used in
|
|
Loongson-2K3000/Loongson-3B6000M. The new GMAC device use external PHY,
|
|
so it reuses loongson_gmac_data() as the old GMAC device (0x7a03), and
|
|
the new GMAC device still doesn't support flow control now.
|
|
|
|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
|
Reviewed-by: Yanteng Si <si.yanteng@linux.dev>
|
|
Tested-by: Henry Chen <chenx97@aosc.io>
|
|
Tested-by: Biao Dong <dongbiao@loongson.cn>
|
|
Signed-off-by: Baoqi Zhang <zhangbaoqi@loongson.cn>
|
|
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
|
|
Link: https://patch.msgid.link/20250424072209.3134762-4-chenhuacai@loongson.cn
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c | 8 +++++---
|
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
|
|
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
|
|
@@ -66,7 +66,8 @@
|
|
DMA_STATUS_TPS | DMA_STATUS_TI | \
|
|
DMA_STATUS_MSK_COMMON_LOONGSON)
|
|
|
|
-#define PCI_DEVICE_ID_LOONGSON_GMAC 0x7a03
|
|
+#define PCI_DEVICE_ID_LOONGSON_GMAC1 0x7a03
|
|
+#define PCI_DEVICE_ID_LOONGSON_GMAC2 0x7a23
|
|
#define PCI_DEVICE_ID_LOONGSON_GNET 0x7a13
|
|
#define DWMAC_CORE_MULTICHAN_V1 0x10 /* Loongson custom ID 0x10 */
|
|
#define DWMAC_CORE_MULTICHAN_V2 0x12 /* Loongson custom ID 0x12 */
|
|
@@ -372,7 +373,7 @@ static struct mac_device_info *loongson_
|
|
/* Loongson GMAC doesn't support the flow control. Loongson GNET
|
|
* without multi-channel doesn't support the half-duplex link mode.
|
|
*/
|
|
- if (pdev->device == PCI_DEVICE_ID_LOONGSON_GMAC) {
|
|
+ if (pdev->device != PCI_DEVICE_ID_LOONGSON_GNET) {
|
|
mac->link.caps = MAC_10 | MAC_100 | MAC_1000;
|
|
} else {
|
|
if (ld->multichan)
|
|
@@ -668,7 +669,8 @@ static SIMPLE_DEV_PM_OPS(loongson_dwmac_
|
|
loongson_dwmac_resume);
|
|
|
|
static const struct pci_device_id loongson_dwmac_id_table[] = {
|
|
- { PCI_DEVICE_DATA(LOONGSON, GMAC, &loongson_gmac_pci_info) },
|
|
+ { PCI_DEVICE_DATA(LOONGSON, GMAC1, &loongson_gmac_pci_info) },
|
|
+ { PCI_DEVICE_DATA(LOONGSON, GMAC2, &loongson_gmac_pci_info) },
|
|
{ PCI_DEVICE_DATA(LOONGSON, GNET, &loongson_gnet_pci_info) },
|
|
{}
|
|
};
|