This device supports network speeds up to 2.5Gbps.
Signed-off-by: Howard Wang <[email protected]>
---
drivers/net/r8169/base/rtl8125d.c | 7 +++++
drivers/net/r8169/base/rtl8125d_mcu.c | 1 +
drivers/net/r8169/r8169_compat.h | 1 +
drivers/net/r8169/r8169_ethdev.c | 3 ++
drivers/net/r8169/r8169_hw.c | 42 +++++++++++----------------
drivers/net/r8169/r8169_phy.c | 1 +
6 files changed, 30 insertions(+), 25 deletions(-)
diff --git a/drivers/net/r8169/base/rtl8125d.c
b/drivers/net/r8169/base/rtl8125d.c
index ac500587e0..70b82858ef 100644
--- a/drivers/net/r8169/base/rtl8125d.c
+++ b/drivers/net/r8169/base/rtl8125d.c
@@ -10,6 +10,7 @@
/*
* For RTL8125D, CFG_METHOD_56,57
* For RTL8168KD, CFG_METHOD_59
+ * For RTL8125K, CFG_METHOD_61
*/
static void
@@ -26,6 +27,7 @@ hw_ephy_config_8125d(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_59:
+ case CFG_METHOD_61:
/* Nothing to do */
break;
}
@@ -278,6 +280,7 @@ hw_phy_config_8125d(struct rtl_hw *hw)
break;
case CFG_METHOD_57:
case CFG_METHOD_59:
+ case CFG_METHOD_61:
rtl_hw_phy_config_8125d_2(hw);
break;
}
@@ -302,6 +305,9 @@ hw_mac_mcu_config_8125d(struct rtl_hw *hw)
case CFG_METHOD_59:
rtl_set_mac_mcu_8125d_2(hw);
break;
+ default:
+ /* no mac mcu patch code */
+ break;
}
}
@@ -314,6 +320,7 @@ hw_phy_mcu_config_8125d(struct rtl_hw *hw)
break;
case CFG_METHOD_57:
case CFG_METHOD_59:
+ case CFG_METHOD_61:
rtl_set_phy_mcu_8125d_2(hw);
break;
}
diff --git a/drivers/net/r8169/base/rtl8125d_mcu.c
b/drivers/net/r8169/base/rtl8125d_mcu.c
index 304bad2998..953c80da5b 100644
--- a/drivers/net/r8169/base/rtl8125d_mcu.c
+++ b/drivers/net/r8169/base/rtl8125d_mcu.c
@@ -10,6 +10,7 @@
/*
* For RTL8125D, CFG_METHOD_56,57
* For RTL8168KD, CFG_METHOD_59
+ * For RTL8125K, CFG_METHOD_61
*/
/* ------------------------------------MAC
8125D------------------------------------- */
diff --git a/drivers/net/r8169/r8169_compat.h b/drivers/net/r8169/r8169_compat.h
index 4339522f2d..91c84c7633 100644
--- a/drivers/net/r8169/r8169_compat.h
+++ b/drivers/net/r8169/r8169_compat.h
@@ -529,6 +529,7 @@ enum RTL_chipset_name {
RTL8125CP,
RTL8168KD,
RTL9151A,
+ RTL8125K,
RTL8126A,
RTL8168EP,
RTL8168FP,
diff --git a/drivers/net/r8169/r8169_ethdev.c b/drivers/net/r8169/r8169_ethdev.c
index 625f50853e..72e014e22b 100644
--- a/drivers/net/r8169/r8169_ethdev.c
+++ b/drivers/net/r8169/r8169_ethdev.c
@@ -172,6 +172,7 @@ _rtl_setup_link(struct rte_eth_dev *dev)
case RTL8125D:
case RTL8125CP:
case RTL9151A:
+ case RTL8125K:
speed_mode = SPEED_2500;
break;
case RTL8126A:
@@ -428,6 +429,7 @@ rtl_dev_infos_get(struct rte_eth_dev *dev, struct
rte_eth_dev_info *dev_info)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_60:
+ case CFG_METHOD_61:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -474,6 +476,7 @@ rtl_dev_infos_get(struct rte_eth_dev *dev, struct
rte_eth_dev_info *dev_info)
case RTL8125D:
case RTL8125CP:
case RTL9151A:
+ case RTL8125K:
dev_info->speed_capa |= RTE_ETH_LINK_SPEED_2_5G;
break;
}
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index ef2b0654a5..aa5e160feb 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -602,6 +602,7 @@ rtl_stop_all_request(struct rtl_hw *hw)
case CFG_METHOD_58:
case CFG_METHOD_59:
case CFG_METHOD_60:
+ case CFG_METHOD_61:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -660,6 +661,7 @@ rtl_wait_txrx_fifo_empty(struct rtl_hw *hw)
case CFG_METHOD_58:
case CFG_METHOD_59:
case CFG_METHOD_60:
+ case CFG_METHOD_61:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -898,6 +900,7 @@ rtl8125_set_rx_desc_type(struct rtl_hw *hw)
case CFG_METHOD_58:
case CFG_METHOD_59:
case CFG_METHOD_60:
+ case CFG_METHOD_61:
RTL_W8(hw, 0xD8, RTL_R8(hw, 0xD8) & ~EnableRxDescV4_0);
break;
case CFG_METHOD_70:
@@ -1016,7 +1019,8 @@ rtl8125_hw_config(struct rtl_hw *hw)
rtl_oob_mutex_lock(hw);
if (hw->mcfg == CFG_METHOD_56 || hw->mcfg == CFG_METHOD_57 ||
- hw->mcfg == CFG_METHOD_59 || hw->mcfg == CFG_METHOD_60)
+ hw->mcfg == CFG_METHOD_59 || hw->mcfg == CFG_METHOD_60 ||
+ hw->mcfg == CFG_METHOD_61)
rtl_mac_ocp_write(hw, 0xE0C0, 0x4403);
else
rtl_mac_ocp_write(hw, 0xE0C0, 0x4000);
@@ -1222,10 +1226,11 @@ rtl_set_hw_ops(struct rtl_hw *hw)
case CFG_METHOD_55:
hw->hw_ops = rtl8125bp_ops;
return 0;
- /* 8125D and 8168KD */
+ /* 8125D, 8168KD, 8125K */
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_59:
+ case CFG_METHOD_61:
hw->hw_ops = rtl8125d_ops;
return 0;
/* 8125CP */
@@ -1527,6 +1532,9 @@ rtl_init_software_variable(struct rtl_hw *hw, struct
rte_pci_device *pci_dev)
case CFG_METHOD_60:
hw->chipset_name = RTL9151A;
break;
+ case CFG_METHOD_61:
+ hw->chipset_name = RTL8125K;
+ break;
case CFG_METHOD_70:
case CFG_METHOD_71:
hw->chipset_name = RTL8126A;
@@ -1547,6 +1555,7 @@ rtl_init_software_variable(struct rtl_hw *hw, struct
rte_pci_device *pci_dev)
case RTL8125D:
case RTL8125CP:
case RTL9151A:
+ case RTL8125K:
speed_mode = SPEED_2500;
break;
case RTL8126A:
@@ -1659,29 +1668,7 @@ rtl_init_software_variable(struct rtl_hw *hw, struct
rte_pci_device *pci_dev)
case CFG_METHOD_37:
hw->HwSuppCheckPhyDisableModeVer = 2;
break;
- case CFG_METHOD_23:
- case CFG_METHOD_27:
- case CFG_METHOD_28:
- case CFG_METHOD_31:
- case CFG_METHOD_32:
- case CFG_METHOD_33:
- case CFG_METHOD_34:
- case CFG_METHOD_48:
- case CFG_METHOD_49:
- case CFG_METHOD_50:
- case CFG_METHOD_51:
- case CFG_METHOD_52:
- case CFG_METHOD_53:
- case CFG_METHOD_54:
- case CFG_METHOD_55:
- case CFG_METHOD_56:
- case CFG_METHOD_57:
- case CFG_METHOD_58:
- case CFG_METHOD_59:
- case CFG_METHOD_60:
- case CFG_METHOD_70:
- case CFG_METHOD_71:
- case CFG_METHOD_91:
+ default:
hw->HwSuppCheckPhyDisableModeVer = 3;
break;
}
@@ -1702,6 +1689,7 @@ rtl_init_software_variable(struct rtl_hw *hw, struct
rte_pci_device *pci_dev)
case CFG_METHOD_58:
case CFG_METHOD_59:
case CFG_METHOD_60:
+ case CFG_METHOD_61:
case CFG_METHOD_91:
hw->HwSuppTxNoCloseVer = 6;
break;
@@ -1791,6 +1779,7 @@ rtl_init_software_variable(struct rtl_hw *hw, struct
rte_pci_device *pci_dev)
break;
case CFG_METHOD_57:
case CFG_METHOD_59:
+ case CFG_METHOD_61:
hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_57;
break;
case CFG_METHOD_58:
@@ -1850,6 +1839,7 @@ rtl_init_software_variable(struct rtl_hw *hw, struct
rte_pci_device *pci_dev)
case CFG_METHOD_58:
case CFG_METHOD_59:
case CFG_METHOD_60:
+ case CFG_METHOD_61:
case CFG_METHOD_91:
hw->HwSuppIntMitiVer = 6;
break;
@@ -2362,6 +2352,8 @@ rtl_get_mac_version(struct rtl_hw *hw, struct
rte_pci_device *pci_dev)
hw->mcfg = CFG_METHOD_56;
} else if (ic_version_id == 0x100000) {
hw->mcfg = CFG_METHOD_57;
+ } else if (ic_version_id == 0x200000) {
+ hw->mcfg = CFG_METHOD_61;
} else if (ic_version_id == 0x300000) {
hw->mcfg = CFG_METHOD_60;
} else {
diff --git a/drivers/net/r8169/r8169_phy.c b/drivers/net/r8169/r8169_phy.c
index de6e512375..079b9e5f00 100644
--- a/drivers/net/r8169/r8169_phy.c
+++ b/drivers/net/r8169/r8169_phy.c
@@ -1051,6 +1051,7 @@ rtl_disable_eee(struct rtl_hw *hw)
case CFG_METHOD_58:
case CFG_METHOD_59:
case CFG_METHOD_60:
+ case CFG_METHOD_61:
rtl_clear_mac_ocp_bit(hw, 0xE040, (BIT_1 | BIT_0));
rtl_set_eth_phy_ocp_bit(hw, 0xA432, BIT_4);
--
2.34.1