Update hw configurations as below:
phy config,
mac mcu patch.
Signed-off-by: Howard Wang <[email protected]>
---
drivers/net/r8169/base/rtl8126a.c | 8 +++
drivers/net/r8169/base/rtl8126a_mcu.c | 76 +++++++++++++++++++--------
2 files changed, 61 insertions(+), 23 deletions(-)
diff --git a/drivers/net/r8169/base/rtl8126a.c
b/drivers/net/r8169/base/rtl8126a.c
index e3f68c1292..5de4ff1274 100644
--- a/drivers/net/r8169/base/rtl8126a.c
+++ b/drivers/net/r8169/base/rtl8126a.c
@@ -456,6 +456,14 @@ rtl_hw_phy_config_8126a_3(struct rtl_hw *hw)
rtl_set_eth_phy_ocp_bit(hw, 0xA430, BIT_1 | BIT_0);
rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB54C, 0xFFC0, 0x3700);
+
+ rtl_set_eth_phy_ocp_bit(hw, 0xB648, BIT_6);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x8082);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x5D00);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x807C);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x5000);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x809D);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x5000);
}
static void
diff --git a/drivers/net/r8169/base/rtl8126a_mcu.c
b/drivers/net/r8169/base/rtl8126a_mcu.c
index 89ad5f6deb..80de797807 100644
--- a/drivers/net/r8169/base/rtl8126a_mcu.c
+++ b/drivers/net/r8169/base/rtl8126a_mcu.c
@@ -15,8 +15,8 @@ void
rtl_set_mac_mcu_8126a_2(struct rtl_hw *hw)
{
static const u16 mcu_patch_code[] = {
- 0xE010, 0xE02C, 0xE04E, 0xE0A4, 0xE0A8, 0xE0AB, 0xE0AE, 0xE0B1,
0xE0B3,
- 0xE0B5, 0xE0B7, 0xE0B9, 0xE0BB, 0xE0BD, 0xE0BF, 0xE0C1, 0xC716,
0xC616,
+ 0xE010, 0xE02C, 0xE04E, 0xE0A4, 0xE0A8, 0xE0AB, 0xE0AE, 0xE0B1,
0xE0B5,
+ 0xE0B7, 0xE0B9, 0xE0BB, 0xE0BD, 0xE0BF, 0xE0C1, 0xE0C3, 0xC716,
0xC616,
0x9EE0, 0xC616, 0x65C0, 0x1500, 0xF009, 0xC714, 0x66E0, 0x41B5,
0x8EE0,
0xC611, 0x75C0, 0x4858, 0x9DC0, 0xC707, 0xC608, 0x9EE0, 0xC608,
0xC502,
0xBD00, 0x0100, 0xE86C, 0xE000, 0xA000, 0xB404, 0xB430, 0xC070,
0xE926,
@@ -35,10 +35,11 @@ rtl_set_mac_mcu_8126a_2(struct rtl_hw *hw)
0x4898, 0x9902, 0xE7C0, 0xC00A, 0xC606, 0xBE00, 0x0C01, 0x1400,
0xF1FE,
0xFF80, 0x2362, 0xD456, 0xD404, 0xE400, 0x4166, 0x9CF6, 0xC002,
0xB800,
0x14A6, 0x49D1, 0xC602, 0xBE00, 0x4160, 0x49D1, 0xC602, 0xBE00,
0x41E6,
- 0x49D1, 0xC602, 0xBE00, 0x4282, 0xC602, 0xBE00, 0x0000, 0xC602,
0xBE00,
- 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602,
0xBE00,
- 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602,
0xBE00,
- 0x0000, 0xC602, 0xBE00, 0x0000, 0x6847, 0x0A18, 0x0C02, 0x0B30
+ 0x49D1, 0xC602, 0xBE00, 0x4282, 0xC104, 0xC202, 0xBA00, 0x234C,
0xD116,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
0x0000,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
0x0000,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0x6847, 0x0019,
0x041C,
+ 0x1322
};
/* Get BIN mac mcu patch code version */
@@ -51,34 +52,60 @@ rtl_set_mac_mcu_8126a_2(struct rtl_hw *hw)
rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
+ rtl_mac_ocp_write(hw, 0xFC28, 0x00FE);
+ rtl_mac_ocp_write(hw, 0xFC2A, 0x4A14);
rtl_mac_ocp_write(hw, 0xFC2C, 0x2360);
rtl_mac_ocp_write(hw, 0xFC2E, 0x14A4);
rtl_mac_ocp_write(hw, 0xFC30, 0x415E);
rtl_mac_ocp_write(hw, 0xFC32, 0x41E4);
rtl_mac_ocp_write(hw, 0xFC34, 0x4280);
+ rtl_mac_ocp_write(hw, 0xFC36, 0x234A);
- rtl_mac_ocp_write(hw, 0xFC48, 0x007C);
+ rtl_mac_ocp_write(hw, 0xFC48, 0x00FF);
}
void
rtl_set_mac_mcu_8126a_3(struct rtl_hw *hw)
{
static const u16 mcu_patch_code[] = {
- 0xE010, 0xE02C, 0xE04E, 0xE052, 0xE055, 0xE058, 0xE05B, 0xE05D,
0xE05F,
- 0xE061, 0xE063, 0xE065, 0xE067, 0xE069, 0xE06B, 0xE06D, 0xC716,
0xC616,
- 0x9EE0, 0xC616, 0x65C0, 0x1500, 0xF009, 0xC714, 0x66E0, 0x41B5,
0x8EE0,
- 0xC611, 0x75C0, 0x4858, 0x9DC0, 0xC707, 0xC608, 0x9EE0, 0xC608,
0xC502,
- 0xBD00, 0x0100, 0xE86C, 0xE000, 0xA000, 0xB404, 0xB430, 0xC070,
0xE926,
- 0xC2FE, 0x400A, 0xF11A, 0x63A4, 0x1A00, 0x49B0, 0xF002, 0x4820,
0x49B1,
- 0xF002, 0x4821, 0x49B2, 0xF002, 0x4822, 0x49B3, 0xF002, 0x4823,
0xC411,
- 0x6380, 0x48B0, 0x8B80, 0x6320, 0x41DA, 0x8B20, 0x6380, 0x4830,
0x8B80,
- 0xE003, 0x73A4, 0x9B20, 0xC302, 0xBB00, 0x55E2, 0xC070, 0xE022,
0x4166,
- 0x9CF6, 0xC602, 0xBE00, 0x14A6, 0x49D1, 0xC602, 0xBE00, 0x4178,
0x49D1,
- 0xC602, 0xBE00, 0x41FE, 0x49D1, 0xC602, 0xBE00, 0x429A, 0xC602,
0xBE00,
- 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602,
0xBE00,
- 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602,
0xBE00,
- 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602,
0xBE00,
- 0x0000, 0x6847, 0x0B18, 0x0C02, 0x0D10
+ 0xE00A, 0xE026, 0xE048, 0xE04C, 0xE04F, 0xE052, 0xE055, 0xE0AB,
0xE0F8,
+ 0xE141, 0xC716, 0xC616, 0x9EE0, 0xC616, 0x65C0, 0x1500, 0xF009,
0xC714,
+ 0x66E0, 0x41B5, 0x8EE0, 0xC611, 0x75C0, 0x4858, 0x9DC0, 0xC707,
0xC608,
+ 0x9EE0, 0xC608, 0xC502, 0xBD00, 0x0100, 0xE86C, 0xE000, 0xA000,
0xB404,
+ 0xB430, 0xC070, 0xE926, 0xC2FE, 0x400A, 0xF11A, 0x63A4, 0x1A00,
0x49B0,
+ 0xF002, 0x4820, 0x49B1, 0xF002, 0x4821, 0x49B2, 0xF002, 0x4822,
0x49B3,
+ 0xF002, 0x4823, 0xC411, 0x6380, 0x48B0, 0x8B80, 0x6320, 0x41DA,
0x8B20,
+ 0x6380, 0x4830, 0x8B80, 0xE003, 0x73A4, 0x9B20, 0xC302, 0xBB00,
0x55E2,
+ 0xC070, 0xE022, 0x4166, 0x9CF6, 0xC602, 0xBE00, 0x14A6, 0x49D1,
0xC602,
+ 0xBE00, 0x4178, 0x49D1, 0xC602, 0xBE00, 0x41FE, 0x49D1, 0xC602,
0xBE00,
+ 0x429A, 0xC74B, 0x76E2, 0xC54A, 0x402E, 0xF034, 0x76E0, 0x402E,
0xF006,
+ 0xC503, 0xC403, 0xBC00, 0xC0BC, 0x0AAE, 0x76F0, 0x1601, 0xF023,
0xC741,
+ 0x1E04, 0x9EE0, 0x1E40, 0x9EE4, 0xC63D, 0x9EE8, 0xC73D, 0x76E0,
0x4863,
+ 0x9EE0, 0xC73A, 0x76E0, 0x48EA, 0x48EB, 0x9EE0, 0xC736, 0x1E01,
0x9EE2,
+ 0xC72D, 0x76E0, 0x486F, 0x9EE0, 0xC72D, 0x76E0, 0x48E3, 0x9EE0,
0xC728,
+ 0x1E0E, 0x9EE0, 0xC71D, 0x1E01, 0x9EE4, 0xE00D, 0x1E00, 0x9EF0,
0x1E05,
+ 0xC715, 0x9EE0, 0xE00A, 0x1E00, 0x9EE2, 0xC614, 0x75CC, 0x48D2,
0x9DCC,
+ 0x1E04, 0xC70B, 0x9EE0, 0xB000, 0xB001, 0xB002, 0xB003, 0xB004,
0xB005,
+ 0xB006, 0xB007, 0xFFC0, 0xE428, 0xD3C0, 0xBEEF, 0x5B4A, 0xDC46,
0xE0CC,
+ 0xE84E, 0xC0A2, 0x0100, 0xC010, 0xE85A, 0xE812, 0xC0B4, 0xC5F4,
0x74A0,
+ 0xC6F3, 0x4026, 0xF107, 0x74A2, 0xC6EF, 0x4026, 0xF107, 0xC6ED,
0xBE00,
+ 0x753A, 0xC602, 0xBE00, 0x5A3A, 0x7520, 0x49DE, 0xF102, 0xE7F9,
0xC6A1,
+ 0x67C6, 0x7520, 0x22D2, 0x26DD, 0x1500, 0xF002, 0xE7F1, 0x7532,
0x26D5,
+ 0x0530, 0x0D6C, 0xC42D, 0x308D, 0x7540, 0x4025, 0xF11E, 0x7542,
0x4025,
+ 0xF11B, 0x7544, 0x4025, 0xF118, 0xC423, 0x7546, 0x4025, 0xF114,
0x7548,
+ 0x4025, 0xF111, 0x754A, 0x4025, 0xF10E, 0xC5C0, 0xC4C0, 0x9CA2,
0xC6C0,
+ 0x75CC, 0x4852, 0x9DCC, 0xC6B8, 0x1D7D, 0x9DC2, 0x1D01, 0x9DC0,
0xE7C9,
+ 0xC40B, 0x7546, 0x4025, 0xF1FC, 0x7548, 0x4025, 0xF1F9, 0x754A,
0x4025,
+ 0xF1F6, 0xE7C0, 0xFFFF, 0xEEEE, 0xC2A6, 0x7340, 0xC2A5, 0x4013,
0xF013,
+ 0xC2AC, 0x7340, 0x4835, 0x9B40, 0xC240, 0x7358, 0x48B7, 0x48B2,
0x9B58,
+ 0x7346, 0x48B7, 0x48B2, 0x9B46, 0x7340, 0x48B7, 0x48B2, 0x9B40,
0xE012,
+ 0xC29A, 0x7340, 0x48B5, 0x9B40, 0xC22E, 0x7358, 0x4837, 0x4832,
0x9B58,
+ 0x7346, 0x4837, 0x4832, 0x9B46, 0x7340, 0x4837, 0x4832, 0x9B40,
0xC283,
+ 0x7340, 0x49BF, 0xF010, 0xC21B, 0x7344, 0x1300, 0xF104, 0x1B00,
0xC217,
+ 0x9B40, 0x1B01, 0xC213, 0x9B44, 0xC213, 0x734C, 0x48B7, 0x9B4C,
0xE008,
+ 0xC20C, 0x1B00, 0x9B44, 0xC20B, 0x734C, 0x4837, 0x9B4C, 0xC204,
0xC302,
+ 0xBB00, 0x2384, 0xE092, 0xD3C0, 0xE428, 0xDC46, 0xC104, 0xC202,
0xBA00,
+ 0x234C, 0xD116, 0x6847, 0x0119, 0x041C, 0x1134
};
/* Get BIN mac mcu patch code version */
@@ -91,12 +118,15 @@ rtl_set_mac_mcu_8126a_3(struct rtl_hw *hw)
rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
+ rtl_mac_ocp_write(hw, 0xFC28, 0x00FE);
+ rtl_mac_ocp_write(hw, 0xFC2A, 0x55DE);
rtl_mac_ocp_write(hw, 0xFC2C, 0x14A4);
rtl_mac_ocp_write(hw, 0xFC2E, 0x4176);
rtl_mac_ocp_write(hw, 0xFC30, 0x41FC);
rtl_mac_ocp_write(hw, 0xFC32, 0x4298);
+ rtl_mac_ocp_write(hw, 0xFC3A, 0x234A);
- rtl_mac_ocp_write(hw, 0xFC48, 0x003C);
+ rtl_mac_ocp_write(hw, 0xFC48, 0x023F);
}
/* ------------------------------------PHY
8126A------------------------------------- */
--
2.34.1