* [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes
@ 2026-02-09 8:54 Howard Wang
2026-02-09 8:54 ` [PATCH v1 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
` (13 more replies)
0 siblings, 14 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
This patch set updates the r8169 pmd driver to include support for new
Realtek hardware revisions and provides several bug fixes and improvements.
The main changes include:
1. New Hardware Support:
- Add support for RTL8125K, RTL9151 and RTL8168KD.
2. Bug Fixes:
- Fix a bug related to RTL8168KB.
- Fix a potential NULL pointer dereference in rtl8168fp_ops.
- Fix the incorrect link status reported when binding the PMD after
the NIC has been initialized by the vendor driver.
3. Configuration & Optimization:
- Update hardware configurations for 8125, 8126, and 8127 series.
- Adjust jumbo frame size limits for non-1G cards.
- Tune RX descriptor fetch number for 8126 and 8127 to improve performance.
- Remove support for legacy CFG_METHOD_69.
Howard Wang (12):
net/r8169: fix NULL pointer dereference in rtl8168fp_ops
net/r8169: tune RX desc fetch num for 8126 and 8127
net/r8169: add support for RTL8168KD
net/r8169: update hardware configurations for 8127
net/r8169: adjust jumbo frame size limit for non-1G cards
net/r8169: remove support for CFG_METHOD_69
net/r8169: update hardware configurations for 8126
net/r8169: update hardware configurations for 8125
net/r8169: add support for RTL9151
net/r8169: add support for RTL8125K
net/r8169: fix one bug about RTL8168KB
net/r8169: ensure the old mapping is used
drivers/net/r8169/base/rtl8125a_mcu.c | 128 +--
drivers/net/r8169/base/rtl8125b_mcu.c | 56 +-
drivers/net/r8169/base/rtl8125bp_mcu.c | 17 +-
drivers/net/r8169/base/rtl8125cp.c | 36 +
drivers/net/r8169/base/rtl8125cp_mcu.c | 87 +-
drivers/net/r8169/base/rtl8125cp_mcu.h | 1 +
drivers/net/r8169/base/rtl8125d.c | 31 +-
drivers/net/r8169/base/rtl8125d_mcu.c | 605 +++++++----
drivers/net/r8169/base/rtl8125d_mcu.h | 1 +
drivers/net/r8169/base/rtl8126a.c | 32 +-
drivers/net/r8169/base/rtl8126a_mcu.c | 689 +-----------
drivers/net/r8169/base/rtl8126a_mcu.h | 2 -
drivers/net/r8169/base/rtl8127.c | 15 +-
drivers/net/r8169/base/rtl8127_mcu.c | 1332 +++++++++++++++++-------
drivers/net/r8169/base/rtl8168fp.c | 1 +
drivers/net/r8169/base/rtl8168fp.h | 1 +
drivers/net/r8169/base/rtl8168fp_mcu.c | 6 +
drivers/net/r8169/base/rtl9151a.c | 87 ++
drivers/net/r8169/base/rtl9151a.h | 10 +
drivers/net/r8169/base/rtl9151a_mcu.c | 53 +
drivers/net/r8169/meson.build | 2 +
drivers/net/r8169/r8169_compat.h | 10 +-
drivers/net/r8169/r8169_ethdev.c | 36 +-
drivers/net/r8169/r8169_ethdev.h | 3 +
drivers/net/r8169/r8169_fiber.c | 15 +-
drivers/net/r8169/r8169_hw.c | 239 +++--
drivers/net/r8169/r8169_hw.h | 11 +-
drivers/net/r8169/r8169_phy.c | 54 +-
drivers/net/r8169/r8169_rxtx.c | 1 -
29 files changed, 2058 insertions(+), 1503 deletions(-)
create mode 100644 drivers/net/r8169/base/rtl9151a.c
create mode 100644 drivers/net/r8169/base/rtl9151a.h
create mode 100644 drivers/net/r8169/base/rtl9151a_mcu.c
--
2.34.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v1 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:54 ` [PATCH v1 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127 Howard Wang
` (12 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/base/rtl8168fp.c | 1 +
drivers/net/r8169/base/rtl8168fp.h | 1 +
drivers/net/r8169/base/rtl8168fp_mcu.c | 6 ++++++
3 files changed, 8 insertions(+)
diff --git a/drivers/net/r8169/base/rtl8168fp.c b/drivers/net/r8169/base/rtl8168fp.c
index b8a058bbd9..9aa3cabeb8 100644
--- a/drivers/net/r8169/base/rtl8168fp.c
+++ b/drivers/net/r8169/base/rtl8168fp.c
@@ -192,4 +192,5 @@ const struct rtl_hw_ops rtl8168fp_ops = {
.hw_ephy_config = hw_ephy_config_8168fp,
.hw_phy_config = hw_phy_config_8168fp,
.hw_mac_mcu_config = hw_mac_mcu_config_8168fp,
+ .hw_phy_mcu_config = hw_phy_mcu_config_8168fp,
};
diff --git a/drivers/net/r8169/base/rtl8168fp.h b/drivers/net/r8169/base/rtl8168fp.h
index 4613fe9a98..194f14af4e 100644
--- a/drivers/net/r8169/base/rtl8168fp.h
+++ b/drivers/net/r8169/base/rtl8168fp.h
@@ -10,5 +10,6 @@
extern const struct rtl_hw_ops rtl8168fp_ops;
void hw_mac_mcu_config_8168fp(struct rtl_hw *hw);
+void hw_phy_mcu_config_8168fp(struct rtl_hw *hw __rte_unused);
#endif
diff --git a/drivers/net/r8169/base/rtl8168fp_mcu.c b/drivers/net/r8169/base/rtl8168fp_mcu.c
index 839dcfde61..7757e5f448 100644
--- a/drivers/net/r8169/base/rtl8168fp_mcu.c
+++ b/drivers/net/r8169/base/rtl8168fp_mcu.c
@@ -268,3 +268,9 @@ hw_mac_mcu_config_8168fp(struct rtl_hw *hw)
break;
}
}
+
+void
+hw_phy_mcu_config_8168fp(struct rtl_hw *hw __rte_unused)
+{
+ /* Do nothing */
+}
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
2026-02-09 8:54 ` [PATCH v1 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:54 ` [PATCH v1 03/12] net/r8169: add support for RTL8168KD Howard Wang
` (11 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
For RTL8126: Tune RX descriptor fetch number to 20.
For RTL8127: Tune RX descriptor fetch number to 12.
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/base/rtl8126a.c | 4 ++--
drivers/net/r8169/base/rtl8127.c | 2 +-
drivers/net/r8169/r8169_compat.h | 2 ++
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/net/r8169/base/rtl8126a.c b/drivers/net/r8169/base/rtl8126a.c
index 047ef83587..58b1cc2664 100644
--- a/drivers/net/r8169/base/rtl8126a.c
+++ b/drivers/net/r8169/base/rtl8126a.c
@@ -14,12 +14,12 @@ hw_init_rxcfg_8126a(struct rtl_hw *hw)
{
switch (hw->mcfg) {
case CFG_METHOD_69:
- RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 | RxCfg_pause_slot_en |
+ RTL_W32(hw, RxConfig, Rx_Fetch_Number_20 | RxCfg_pause_slot_en |
(RX_DMA_BURST_512 << RxCfgDMAShift));
break;
case CFG_METHOD_70:
case CFG_METHOD_71:
- RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 | Rx_Close_Multiple |
+ RTL_W32(hw, RxConfig, Rx_Fetch_Number_20 | Rx_Close_Multiple |
RxCfg_pause_slot_en | (RX_DMA_BURST_512 << RxCfgDMAShift));
break;
}
diff --git a/drivers/net/r8169/base/rtl8127.c b/drivers/net/r8169/base/rtl8127.c
index 9e79255e3c..26c2cfd25b 100644
--- a/drivers/net/r8169/base/rtl8127.c
+++ b/drivers/net/r8169/base/rtl8127.c
@@ -14,7 +14,7 @@ hw_init_rxcfg_8127(struct rtl_hw *hw)
{
switch (hw->mcfg) {
case CFG_METHOD_91:
- RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 | Rx_Close_Multiple |
+ RTL_W32(hw, RxConfig, Rx_Fetch_Number_12 | Rx_Close_Multiple |
RxCfg_pause_slot_en | (RX_DMA_BURST_512 << RxCfgDMAShift));
break;
}
diff --git a/drivers/net/r8169/r8169_compat.h b/drivers/net/r8169/r8169_compat.h
index 9163c7f59f..ab6a984a54 100644
--- a/drivers/net/r8169/r8169_compat.h
+++ b/drivers/net/r8169/r8169_compat.h
@@ -563,6 +563,8 @@ enum RTL_chipset_name {
#define TX_DMA_BURST_16 0
#define InterFrameGap 0x03 /* 3 means InterFrameGap = the shortest one */
#define Rx_Fetch_Number_8 (1 << 30)
+#define Rx_Fetch_Number_12 (BIT_30 | BIT_29)
+#define Rx_Fetch_Number_20 (BIT_31 | BIT_29)
#define Rx_Close_Multiple (1 << 21)
#define RxEarly_off_V2 (1 << 11)
#define Rx_Single_fetch_V2 (1 << 14)
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 03/12] net/r8169: add support for RTL8168KD
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
2026-02-09 8:54 ` [PATCH v1 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
2026-02-09 8:54 ` [PATCH v1 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127 Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:54 ` [PATCH v1 04/12] net/r8169: update hardware configurations for 8127 Howard Wang
` (10 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/base/rtl8125d.c | 15 +++-
drivers/net/r8169/base/rtl8125d_mcu.c | 112 +++++++++++++++++++++++++-
drivers/net/r8169/base/rtl8125d_mcu.h | 1 +
drivers/net/r8169/r8169_compat.h | 3 +-
drivers/net/r8169/r8169_hw.c | 64 ++++++++-------
drivers/net/r8169/r8169_phy.c | 18 ++---
6 files changed, 168 insertions(+), 45 deletions(-)
diff --git a/drivers/net/r8169/base/rtl8125d.c b/drivers/net/r8169/base/rtl8125d.c
index 55bfdbcf21..29be122e6b 100644
--- a/drivers/net/r8169/base/rtl8125d.c
+++ b/drivers/net/r8169/base/rtl8125d.c
@@ -7,7 +7,10 @@
#include "../r8169_phy.h"
#include "rtl8125d_mcu.h"
-/* For RTL8125D, CFG_METHOD_56,57 */
+/*
+ * For RTL8125D, CFG_METHOD_56,57
+ * For RTL8168KD, CFG_METHOD_59
+ */
static void
hw_init_rxcfg_8125d(struct rtl_hw *hw)
@@ -22,6 +25,7 @@ hw_ephy_config_8125d(struct rtl_hw *hw)
switch (hw->mcfg) {
case CFG_METHOD_56:
case CFG_METHOD_57:
+ case CFG_METHOD_59:
/* Nothing to do */
break;
}
@@ -264,6 +268,7 @@ hw_phy_config_8125d(struct rtl_hw *hw)
rtl_hw_phy_config_8125d_1(hw);
break;
case CFG_METHOD_57:
+ case CFG_METHOD_59:
rtl_hw_phy_config_8125d_2(hw);
break;
}
@@ -277,10 +282,17 @@ hw_mac_mcu_config_8125d(struct rtl_hw *hw)
rtl_hw_disable_mac_mcu_bps(hw);
+ /* Get H/W mac mcu patch code version */
+ hw->hw_mcu_patch_code_ver = rtl_get_hw_mcu_patch_code_ver(hw);
+
switch (hw->mcfg) {
case CFG_METHOD_56:
rtl_set_mac_mcu_8125d_1(hw);
break;
+ case CFG_METHOD_57:
+ case CFG_METHOD_59:
+ rtl_set_mac_mcu_8125d_2(hw);
+ break;
}
}
@@ -292,6 +304,7 @@ hw_phy_mcu_config_8125d(struct rtl_hw *hw)
rtl_set_phy_mcu_8125d_1(hw);
break;
case CFG_METHOD_57:
+ case CFG_METHOD_59:
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 2f6d1df584..c99681ad33 100644
--- a/drivers/net/r8169/base/rtl8125d_mcu.c
+++ b/drivers/net/r8169/base/rtl8125d_mcu.c
@@ -7,7 +7,10 @@
#include "../r8169_phy.h"
#include "rtl8125d_mcu.h"
-/* For RTL8125D, CFG_METHOD_56,57 */
+/*
+ * For RTL8125D, CFG_METHOD_56,57
+ * For RTL8168KD, CFG_METHOD_59
+ */
/* ------------------------------------MAC 8125D------------------------------------- */
@@ -110,6 +113,113 @@ rtl_set_mac_mcu_8125d_1(struct rtl_hw *hw)
rtl_mac_ocp_write(hw, 0xFC48, 0x0001);
}
+void
+rtl_set_mac_mcu_8125d_2(struct rtl_hw *hw)
+{
+ u16 entry_cnt;
+ static const u16 mcu_patch_code[] = {
+ 0xE010, 0xE014, 0xE016, 0xE018, 0xE01A, 0xE01C, 0xE01E, 0xE020, 0xE022,
+ 0xE024, 0xE026, 0xE028, 0xE02A, 0xE02C, 0xE02E, 0xE030, 0xC104, 0xC202,
+ 0xBA00, 0x2384, 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,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
+ 0xC602, 0xBE00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6938,
+ 0x0A19, 0x030E, 0x0B2F
+ };
+
+ entry_cnt = ARRAY_SIZE(mcu_patch_code);
+
+ /* Get BIN mac mcu patch code version */
+ hw->bin_mcu_patch_code_ver = rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
+ entry_cnt);
+
+ if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
+ rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
+
+ rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
+ rtl_mac_ocp_write(hw, 0xFC28, 0x2382);
+ rtl_mac_ocp_write(hw, 0xFC48, 0x0001);
+}
+
/* ------------------------------------PHY 8125D--------------------------------------- */
static const u16 phy_mcu_ram_code_8125d_1_1[] = {
diff --git a/drivers/net/r8169/base/rtl8125d_mcu.h b/drivers/net/r8169/base/rtl8125d_mcu.h
index 163e0e8123..82b70e5b53 100644
--- a/drivers/net/r8169/base/rtl8125d_mcu.h
+++ b/drivers/net/r8169/base/rtl8125d_mcu.h
@@ -6,6 +6,7 @@
#define RTL8125D_MCU_H
void rtl_set_mac_mcu_8125d_1(struct rtl_hw *hw);
+void rtl_set_mac_mcu_8125d_2(struct rtl_hw *hw);
void rtl_set_phy_mcu_8125d_1(struct rtl_hw *hw);
void rtl_set_phy_mcu_8125d_2(struct rtl_hw *hw);
diff --git a/drivers/net/r8169/r8169_compat.h b/drivers/net/r8169/r8169_compat.h
index ab6a984a54..d2d928cdd7 100644
--- a/drivers/net/r8169/r8169_compat.h
+++ b/drivers/net/r8169/r8169_compat.h
@@ -105,7 +105,7 @@ enum mcfg {
CFG_METHOD_69,
CFG_METHOD_70,
CFG_METHOD_71,
- CFG_METHOD_91,
+ CFG_METHOD_91 = 91,
CFG_METHOD_MAX,
CFG_METHOD_DEFAULT = 0xFF
};
@@ -525,6 +525,7 @@ enum RTL_chipset_name {
RTL8125BP,
RTL8125D,
RTL8125CP,
+ RTL8168KD,
RTL8126A,
RTL8168EP,
RTL8168FP,
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index e1521f5f9d..32c370deba 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -630,6 +630,7 @@ rtl_stop_all_request(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
@@ -687,6 +688,7 @@ rtl_wait_txrx_fifo_empty(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
@@ -924,6 +926,7 @@ rtl8125_set_rx_desc_type(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
RTL_W8(hw, 0xD8, RTL_R8(hw, 0xD8) & ~EnableRxDescV4_0);
break;
case CFG_METHOD_69:
@@ -1044,8 +1047,11 @@ rtl8125_hw_config(struct rtl_hw *hw)
rtl_oob_mutex_lock(hw);
- /* MAC_PWRDWN_CR0 */
- rtl_mac_ocp_write(hw, 0xE0C0, 0x4000);
+ if (hw->mcfg == CFG_METHOD_56 || hw->mcfg == CFG_METHOD_57 ||
+ hw->mcfg == CFG_METHOD_59)
+ rtl_mac_ocp_write(hw, 0xE0C0, 0x4403);
+ else
+ rtl_mac_ocp_write(hw, 0xE0C0, 0x4000);
rtl_set_mac_ocp_bit(hw, 0xE052, (BIT_6 | BIT_5));
rtl_clear_mac_ocp_bit(hw, 0xE052, (BIT_3 | BIT_7));
@@ -1065,10 +1071,15 @@ rtl8125_hw_config(struct rtl_hw *hw)
mac_ocp_data |= 0x45F;
rtl_mac_ocp_write(hw, 0xD430, mac_ocp_data);
- if (!hw->DASH)
- RTL_W8(hw, 0xD0, RTL_R8(hw, 0xD0) | BIT_6 | BIT_7);
- else
- RTL_W8(hw, 0xD0, RTL_R8(hw, 0xD0) & ~(BIT_6 | BIT_7));
+ if (hw->DASH) {
+ RTL_W8(hw, 0xD0, RTL_R8(hw, 0xD0) & ~BIT_6);
+ RTL_W8(hw, 0xF2, RTL_R8(hw, 0xF2) & ~BIT_6);
+ RTL_W8(hw, 0xD0, RTL_R8(hw, 0xD0) & ~BIT_7);
+ } else {
+ RTL_W8(hw, 0xD0, RTL_R8(hw, 0xD0) | BIT_6);
+ RTL_W8(hw, 0xF2, RTL_R8(hw, 0xF2) | BIT_6);
+ RTL_W8(hw, 0xD0, RTL_R8(hw, 0xD0) | BIT_7);
+ }
if (hw->mcfg == CFG_METHOD_48 || hw->mcfg == CFG_METHOD_49 ||
hw->mcfg == CFG_METHOD_52)
@@ -1243,9 +1254,10 @@ rtl_set_hw_ops(struct rtl_hw *hw)
case CFG_METHOD_55:
hw->hw_ops = rtl8125bp_ops;
return 0;
- /* 8125D */
+ /* 8125D and 8168KD */
case CFG_METHOD_56:
case CFG_METHOD_57:
+ case CFG_METHOD_59:
hw->hw_ops = rtl8125d_ops;
return 0;
/* 8125CP */
@@ -1538,6 +1550,9 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_58:
hw->chipset_name = RTL8125CP;
break;
+ case CFG_METHOD_59:
+ hw->chipset_name = RTL8168KD;
+ break;
case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
@@ -1688,6 +1703,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
@@ -1710,6 +1726,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
case CFG_METHOD_91:
hw->HwSuppTxNoCloseVer = 6;
break;
@@ -1801,6 +1818,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_56;
break;
case CFG_METHOD_57:
+ case CFG_METHOD_59:
hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_57;
break;
case CFG_METHOD_58:
@@ -1859,6 +1877,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
case CFG_METHOD_91:
hw->HwSuppIntMitiVer = 6;
break;
@@ -1902,37 +1921,18 @@ rtl_exit_realwow(struct rtl_hw *hw)
u32 csi_tmp;
/* Disable realwow function */
- switch (hw->mcfg) {
- case CFG_METHOD_21:
- case CFG_METHOD_22:
+ if (rtl_is_8125(hw)) {
+ rtl_mac_ocp_write(hw, 0xC0BC, 0x00FF);
+ } else if (hw->mcfg == CFG_METHOD_21 || hw->mcfg == CFG_METHOD_22) {
RTL_W32(hw, MACOCP, 0x605E0000);
RTL_W32(hw, MACOCP, (0xE05E << 16) |
(RTL_R32(hw, MACOCP) & 0xFFFE));
RTL_W32(hw, MACOCP, 0xE9720000);
RTL_W32(hw, MACOCP, 0xF2140010);
- break;
- case CFG_METHOD_26:
+ } else if (hw->mcfg == CFG_METHOD_26) {
RTL_W32(hw, MACOCP, 0xE05E00FF);
RTL_W32(hw, MACOCP, 0xE9720000);
rtl_mac_ocp_write(hw, 0xE428, 0x0010);
- break;
- 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_69:
- case CFG_METHOD_70:
- case CFG_METHOD_71:
- case CFG_METHOD_91:
- rtl_mac_ocp_write(hw, 0xC0BC, 0x00FF);
- break;
}
switch (hw->mcfg) {
@@ -2059,7 +2059,7 @@ rtl_disable_ocp_phy_power_saving(struct rtl_hw *hw)
rtl_clear_phy_mcu_patch_request(hw);
}
} else if (hw->mcfg == CFG_METHOD_48 || hw->mcfg == CFG_METHOD_49 ||
- hw->mcfg == CFG_METHOD_52){
+ hw->mcfg == CFG_METHOD_52) {
val = rtl_mdio_direct_read_phy_ocp(hw, 0xC416);
if (val != 0x0050) {
rtl_set_phy_mcu_patch_request(hw);
@@ -2400,6 +2400,8 @@ rtl_get_mac_version(struct rtl_hw *hw, struct rte_pci_device *pci_dev)
hw->mcfg = CFG_METHOD_52;
else if (hw->mcfg == CFG_METHOD_51)
hw->mcfg = CFG_METHOD_53;
+ else if (hw->mcfg == CFG_METHOD_57)
+ hw->mcfg = CFG_METHOD_59;
}
}
diff --git a/drivers/net/r8169/r8169_phy.c b/drivers/net/r8169/r8169_phy.c
index 50c24d1504..1239319da5 100644
--- a/drivers/net/r8169/r8169_phy.c
+++ b/drivers/net/r8169/r8169_phy.c
@@ -558,10 +558,6 @@ rtl_powerdown_pll(struct rtl_hw *hw)
if (hw->mcfg >= CFG_METHOD_21 && hw->mcfg <= CFG_METHOD_36) {
RTL_W8(hw, 0xD0, RTL_R8(hw, 0xD0) & ~BIT_6);
RTL_W8(hw, 0xF2, RTL_R8(hw, 0xF2) & ~BIT_6);
- } else if ((hw->mcfg >= CFG_METHOD_48 && hw->mcfg <= CFG_METHOD_58) ||
- (hw->mcfg >= CFG_METHOD_69 && hw->mcfg <= CFG_METHOD_71) ||
- hw->mcfg == CFG_METHOD_91) {
- RTL_W8(hw, 0xF2, RTL_R8(hw, 0xF2) & ~BIT_6);
}
}
@@ -893,17 +889,14 @@ rtl_is_adv_eee_enabled(struct rtl_hw *hw)
{
bool enabled = false;
- if (hw->mcfg >= CFG_METHOD_25 && hw->mcfg <= CFG_METHOD_36) {
+ if (rtl_is_8125(hw)) {
+ if (rtl_mdio_direct_read_phy_ocp(hw, 0xA430) & BIT_15)
+ enabled = true;
+ } else if (hw->mcfg >= CFG_METHOD_25 && hw->mcfg <= CFG_METHOD_36) {
rtl_mdio_write(hw, 0x1F, 0x0A43);
if (rtl_mdio_read(hw, 0x10) & BIT_15)
enabled = true;
rtl_mdio_write(hw, 0x1F, 0x0000);
- } else if ((hw->mcfg >= CFG_METHOD_48 && hw->mcfg <= CFG_METHOD_55) ||
- hw->mcfg == CFG_METHOD_58 || hw->mcfg == CFG_METHOD_69 ||
- hw->mcfg == CFG_METHOD_70 || hw->mcfg == CFG_METHOD_71 ||
- hw->mcfg == CFG_METHOD_91){
- if (rtl_mdio_direct_read_phy_ocp(hw, 0xA430) & BIT_15)
- enabled = true;
}
return enabled;
@@ -982,6 +975,7 @@ _rtl_disable_adv_eee(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
@@ -1068,6 +1062,7 @@ rtl_disable_eee(struct rtl_hw *hw)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
rtl_clear_mac_ocp_bit(hw, 0xE040, (BIT_1 | BIT_0));
rtl_set_eth_phy_ocp_bit(hw, 0xA432, BIT_4);
@@ -1232,6 +1227,7 @@ rtl_set_speed_xmii(struct rtl_hw *hw, u8 autoneg, u32 speed, u8 duplex, u64 adv)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_59:
mask |= BIT_0;
rtl_clear_eth_phy_ocp_bit(hw, 0xA428, BIT_9);
rtl_clear_eth_phy_ocp_bit(hw, 0xA5EA, mask);
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 04/12] net/r8169: update hardware configurations for 8127
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (2 preceding siblings ...)
2026-02-09 8:54 ` [PATCH v1 03/12] net/r8169: add support for RTL8168KD Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:54 ` [PATCH v1 05/12] net/r8169: adjust jumbo frame size limit for non-1G cards Howard Wang
` (9 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Update hw configurations as below:
enable RTL8127ATF flow control,
phy config,
mac mcu patch,
phy mcu patch.
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/base/rtl8127.c | 13 +-
drivers/net/r8169/base/rtl8127_mcu.c | 1332 +++++++++++++++++++-------
drivers/net/r8169/r8169_fiber.c | 15 +-
drivers/net/r8169/r8169_hw.h | 2 +-
4 files changed, 1009 insertions(+), 353 deletions(-)
diff --git a/drivers/net/r8169/base/rtl8127.c b/drivers/net/r8169/base/rtl8127.c
index 26c2cfd25b..3ed7b18d84 100644
--- a/drivers/net/r8169/base/rtl8127.c
+++ b/drivers/net/r8169/base/rtl8127.c
@@ -195,6 +195,15 @@ rtl_hw_phy_config_8127a_1(struct rtl_hw *hw)
rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x82CE);
rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xF000, 0x4000);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x83A5);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x0400);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x83A6);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x0400);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x83A7);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x0400);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x83A8);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x0400);
+
rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x84AC);
rtl_mdio_direct_write_phy_ocp(hw, 0xB87E, 0x0000);
rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x84AE);
@@ -207,7 +216,7 @@ rtl_hw_phy_config_8127a_1(struct rtl_hw *hw)
rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x8FFC);
rtl_mdio_direct_write_phy_ocp(hw, 0xB87E, 0x6008);
rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x8FFE);
- rtl_mdio_direct_write_phy_ocp(hw, 0xB87E, 0xF450);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87E, 0xF4FF);
rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x8015);
rtl_set_eth_phy_ocp_bit(hw, 0xB87E, BIT_9);
@@ -336,6 +345,8 @@ rtl_hw_phy_config_8127a_1(struct rtl_hw *hw)
rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xA438, 0xFF00, 0x1600);
rtl_set_eth_phy_ocp_bit(hw, 0xA430, BIT_1 | BIT_0);
+ rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_7);
+ rtl_clear_eth_phy_ocp_bit(hw, 0xA430, BIT_12);
}
static void
diff --git a/drivers/net/r8169/base/rtl8127_mcu.c b/drivers/net/r8169/base/rtl8127_mcu.c
index facbae8132..79e518a91f 100644
--- a/drivers/net/r8169/base/rtl8127_mcu.c
+++ b/drivers/net/r8169/base/rtl8127_mcu.c
@@ -17,7 +17,7 @@ rtl_set_mac_mcu_8127a_1(struct rtl_hw *hw)
u16 entry_cnt;
static const u16 mcu_patch_code[] = {
0xE010, 0xE023, 0xE036, 0xE049, 0xE05C, 0xE075, 0xE0B1, 0xE117, 0xE11B,
- 0xE11D, 0xE11F, 0xE121, 0xE123, 0xE125, 0xE127, 0xE129, 0x7020, 0xB405,
+ 0xE1F7, 0xE1F9, 0xE297, 0xE299, 0xE29B, 0xE29D, 0xE29F, 0x7020, 0xB405,
0xB404, 0xC50F, 0x74A0, 0xC50E, 0x4025, 0xF005, 0x4850, 0x4025, 0xF002,
0xE002, 0x4809, 0xB004, 0xB005, 0xC502, 0xBD00, 0x1522, 0xD006, 0x0004,
0x7760, 0xB405, 0xB404, 0xC50F, 0x74A0, 0xC50E, 0x4025, 0xF005, 0x4850,
@@ -48,10 +48,51 @@ rtl_set_mac_mcu_8127a_1(struct rtl_hw *hw)
0xB000, 0xB001, 0xB002, 0xB003, 0xB004, 0xB005, 0xB006, 0xB007, 0x2125,
0xC102, 0xB900, 0x1A6C, 0xD410, 0xC000, 0xE86C, 0xB600, 0xB800, 0xB40A,
0xE024, 0x5A00, 0x5A81, 0x0073, 0x5A80, 0x0042, 0x0001, 0xC104, 0xC202,
- 0xBA00, 0x1A2E, 0xC896, 0xC302, 0xBB00, 0x0000, 0xC002, 0xB800, 0x0000,
- 0xC002, 0xB800, 0x0000, 0xC502, 0xBD00, 0x0000, 0xC102, 0xB900, 0x0000,
- 0xC102, 0xB900, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
- 0x6961, 0x0019, 0x050C, 0x140C
+ 0xBA00, 0x1A2E, 0xC896, 0xB400, 0xB401, 0xB402, 0xB403, 0xB404, 0xB405,
+ 0xB406, 0xB407, 0xC11F, 0xC21F, 0x9A24, 0xC21B, 0x9A26, 0xE83B, 0x7320,
+ 0x7422, 0xC010, 0x7200, 0x4822, 0x9A00, 0x7218, 0x4822, 0x9A18, 0x7206,
+ 0x4822, 0x9A06, 0x720C, 0x49C0, 0xF00D, 0x4822, 0x9A0C, 0xE00C, 0xDC46,
+ 0xD40C, 0xE008, 0xDEAD, 0xDE20, 0x0012, 0x3D02, 0xE8E0, 0x0168, 0x48A2,
+ 0x9A0C, 0x49CF, 0xF058, 0x1301, 0xF00A, 0x1302, 0xF00D, 0x1303, 0xF01B,
+ 0x1304, 0xF01F, 0x1305, 0xF024, 0xE043, 0xE858, 0xC7EC, 0xE863, 0xE893,
+ 0xE048, 0xE853, 0xC7E7, 0x4878, 0xE85D, 0xE88D, 0xE042, 0xE8E0, 0xF180,
+ 0xBD02, 0x8FFE, 0xC000, 0xC1DF, 0x6227, 0x49A6, 0xF1FD, 0xFF80, 0xE843,
+ 0xC7D7, 0x4879, 0xE84D, 0xE87D, 0xE032, 0xE83D, 0xC7D1, 0x4878, 0x4879,
+ 0xE846, 0xE876, 0xE02B, 0xC5C8, 0x76A0, 0x4868, 0x9EA0, 0xC5C3, 0x71A0,
+ 0xC5E7, 0x70A0, 0xC2E1, 0x9940, 0x9842, 0xC1DF, 0x9944, 0xC1DE, 0x9946,
+ 0xEFDF, 0x71A2, 0x70A4, 0xC2D7, 0x9940, 0x9842, 0xC16C, 0x9944, 0xC1D4,
+ 0x9946, 0xEFD5, 0xC5AE, 0x76A0, 0x48E8, 0x9EA0, 0xE856, 0xE00B, 0xC6A9,
+ 0xC2C8, 0x9E40, 0x9E42, 0xC1C6, 0x9944, 0xC1C5, 0x9946, 0xEFC6, 0xE84B,
+ 0xB007, 0xB006, 0xB005, 0xB004, 0xB003, 0xB002, 0xB001, 0xB000, 0x1100,
+ 0xC202, 0xBA00, 0x1A86, 0xC694, 0xE807, 0x1D00, 0x9DC0, 0xC5B2, 0x9DC2,
+ 0xE802, 0xFF80, 0xC18C, 0x7222, 0x49AE, 0xF1FD, 0xFF80, 0xC687, 0x9FC2,
+ 0xEFF9, 0x70C0, 0x0702, 0x9FC2, 0xEFF5, 0x71C0, 0xC235, 0x9940, 0x9842,
+ 0xC19C, 0x9944, 0xC12E, 0x9946, 0xEF9C, 0x0701, 0x9FC2, 0xEFE9, 0x70C0,
+ 0x0704, 0x9FC2, 0xEFE5, 0x71C0, 0xC225, 0x9940, 0x9842, 0xC123, 0x9944,
+ 0xC11E, 0x9946, 0xEF8C, 0x071A, 0x9FC2, 0xEFD9, 0x70C0, 0x0728, 0x9FC2,
+ 0xEFD5, 0x71C0, 0xC215, 0x9940, 0x9842, 0xC114, 0x9944, 0xC10E, 0x9946,
+ 0xEF7C, 0xFF80, 0x48CF, 0xC20B, 0x9B40, 0x9C42, 0xC107, 0x9944, 0xC104,
+ 0x9946, 0xEF72, 0xFF80, 0xBD02, 0xF168, 0xE8E0, 0xF184, 0xF188, 0xC502,
+ 0xBD00, 0x0000, 0xB400, 0xB401, 0xB402, 0xB403, 0xC079, 0xC377, 0x7160,
+ 0x9906, 0xC376, 0xE87C, 0xC073, 0x9900, 0x1906, 0xC371, 0xE884, 0xC170,
+ 0xC370, 0xE881, 0x1908, 0xC36B, 0xE87E, 0xC36C, 0xE86F, 0x1A88, 0x44CA,
+ 0xE879, 0xC367, 0x4833, 0xE869, 0x4816, 0xE874, 0xC362, 0x4838, 0xE864,
+ 0x1A88, 0x44CA, 0xE86E, 0xC35C, 0x4838, 0x4833, 0xE85D, 0x4816, 0xE868,
+ 0xC357, 0xE859, 0x1A88, 0x44CA, 0xE863, 0xC352, 0x4833, 0xE853, 0x4816,
+ 0xE85E, 0xC34D, 0x4838, 0xE84E, 0x1A88, 0x44CA, 0xE858, 0xC347, 0x4838,
+ 0x4833, 0xE847, 0x4816, 0xE852, 0xC342, 0xE843, 0x1A58, 0x44CA, 0xE84D,
+ 0xC33D, 0x4833, 0xE83D, 0x4816, 0xE848, 0xC338, 0x4838, 0xE838, 0x1A58,
+ 0x44CA, 0xE842, 0xC332, 0x4838, 0x4833, 0xE831, 0x4816, 0xE83C, 0xC32D,
+ 0xE82D, 0x1A58, 0x44CA, 0xE837, 0xC328, 0x4833, 0xE827, 0x4816, 0xE832,
+ 0xC323, 0x4838, 0xE822, 0x1A58, 0x44CA, 0xE82C, 0xC31D, 0x4838, 0x4833,
+ 0xE81B, 0x4816, 0xE826, 0xC010, 0x7100, 0xC30F, 0xE822, 0xC00C, 0x7106,
+ 0xC309, 0x9960, 0xB003, 0xB002, 0xB001, 0xB000, 0xC402, 0xBC00, 0x15B0,
+ 0xDE20, 0xDD26, 0x0FFE, 0x0000, 0x6F00, 0x8086, 0x8486, 0x8886, 0x8C86,
+ 0xC0F7, 0x7202, 0x49AE, 0xF1FD, 0x44D3, 0x4413, 0x48AF, 0x9A02, 0x7202,
+ 0x49AE, 0xF1FE, 0x7100, 0xFF80, 0xC0EA, 0x7202, 0x49AE, 0xF1FD, 0x9900,
+ 0x44D3, 0x4413, 0x482F, 0x9A02, 0x7202, 0x49AE, 0xF1FE, 0xFF80, 0xC502,
+ 0xBD00, 0x0000, 0xC102, 0xB900, 0x0000, 0xC102, 0xB900, 0x0000, 0xC602,
+ 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0x6961, 0x0019, 0x0A1E, 0x0F2A
};
entry_cnt = ARRAY_SIZE(mcu_patch_code);
@@ -73,8 +114,9 @@ rtl_set_mac_mcu_8127a_1(struct rtl_hw *hw)
rtl_mac_ocp_write(hw, 0xFC32, 0x0166);
rtl_mac_ocp_write(hw, 0xFC34, 0x1A6A);
rtl_mac_ocp_write(hw, 0xFC36, 0x1A2C);
+ rtl_mac_ocp_write(hw, 0xFC3C, 0x1598);
- rtl_mac_ocp_write(hw, 0xFC48, 0x00FF);
+ rtl_mac_ocp_write(hw, 0xFC48, 0x04FF);
}
/* ------------------------------------PHY 8127------------------------------------- */
@@ -124,97 +166,649 @@ static const u16 phy_mcu_ram_code_8127a_1[] = {
0xa436, 0xA082, 0xa438, 0x0117, 0xa436, 0xA080, 0xa438, 0x0027,
0xa436, 0xA090, 0xa438, 0x00ff, 0xa436, 0xA016, 0xa438, 0x0020,
0xa436, 0xA012, 0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800,
- 0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x801d, 0xa438, 0x1800,
- 0xa438, 0x803b, 0xa438, 0x1800, 0xa438, 0x8087, 0xa438, 0x1800,
- 0xa438, 0x808e, 0xa438, 0x1800, 0xa438, 0x809d, 0xa438, 0x1800,
- 0xa438, 0x80b7, 0xa438, 0x1800, 0xa438, 0x80c4, 0xa438, 0xd1bc,
+ 0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x8663, 0xa438, 0x1800,
+ 0xa438, 0x8681, 0xa438, 0x1800, 0xa438, 0x86cd, 0xa438, 0x1800,
+ 0xa438, 0x86d4, 0xa438, 0x1800, 0xa438, 0x86e3, 0xa438, 0x1800,
+ 0xa438, 0x8944, 0xa438, 0x1800, 0xa438, 0x8951, 0xa438, 0xd1bc,
0xa438, 0xd040, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd700,
- 0xa438, 0x5fba, 0xa438, 0xd700, 0xa438, 0x273d, 0xa438, 0x801b,
- 0xa438, 0x1800, 0xa438, 0x07d1, 0xa438, 0x1800, 0xa438, 0x080e,
- 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x8032, 0xa438, 0x33a9,
- 0xa438, 0x802a, 0xa438, 0xd705, 0xa438, 0x4084, 0xa438, 0xd1f4,
- 0xa438, 0xd048, 0xa438, 0xf013, 0xa438, 0xd1b7, 0xa438, 0xd04b,
- 0xa438, 0xf010, 0xa438, 0xd705, 0xa438, 0x4084, 0xa438, 0xd1f4,
- 0xa438, 0xd048, 0xa438, 0xf00b, 0xa438, 0xd1b7, 0xa438, 0xd04b,
- 0xa438, 0xf008, 0xa438, 0xd705, 0xa438, 0x4084, 0xa438, 0xd1f4,
- 0xa438, 0xd048, 0xa438, 0xf003, 0xa438, 0xd1b7, 0xa438, 0xd04b,
- 0xa438, 0x1800, 0xa438, 0x14cc, 0xa438, 0xd700, 0xa438, 0x2b59,
- 0xa438, 0x803f, 0xa438, 0xf003, 0xa438, 0x1800, 0xa438, 0x118f,
- 0xa438, 0x6060, 0xa438, 0x1800, 0xa438, 0x1167, 0xa438, 0xd700,
- 0xa438, 0x60c7, 0xa438, 0xd704, 0xa438, 0x609f, 0xa438, 0xd705,
- 0xa438, 0x4043, 0xa438, 0xf003, 0xa438, 0x1800, 0xa438, 0x1150,
- 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8702, 0xa438, 0x8011,
- 0xa438, 0x9503, 0xa438, 0x800a, 0xa438, 0x81a0, 0xa438, 0x8302,
- 0xa438, 0x8480, 0xa438, 0x8686, 0xa438, 0xcde0, 0xa438, 0xd1ff,
- 0xa438, 0xd049, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd700,
- 0xa438, 0x5fba, 0xa438, 0xd705, 0xa438, 0x417e, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0xa011, 0xa438, 0x9503, 0xa438, 0xd1c8,
- 0xa438, 0xd045, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd700,
- 0xa438, 0x5fba, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa702,
- 0xa438, 0x9503, 0xa438, 0xa00a, 0xa438, 0xa1a0, 0xa438, 0xa480,
- 0xa438, 0xa686, 0xa438, 0xd705, 0xa438, 0x605e, 0xa438, 0xa302,
- 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x8083,
- 0xa438, 0x33a9, 0xa438, 0x807f, 0xa438, 0xd178, 0xa438, 0xd04b,
- 0xa438, 0x1800, 0xa438, 0x115d, 0xa438, 0xd1c8, 0xa438, 0xd04b,
- 0xa438, 0x1800, 0xa438, 0x115d, 0xa438, 0xd1e6, 0xa438, 0xd04b,
- 0xa438, 0x1800, 0xa438, 0x115d, 0xa438, 0xd71f, 0xa438, 0x6080,
- 0xa438, 0xd704, 0xa438, 0x1800, 0xa438, 0x1bc0, 0xa438, 0x1800,
- 0xa438, 0x1bc4, 0xa438, 0x4134, 0xa438, 0xd115, 0xa438, 0xd04f,
- 0xa438, 0x1000, 0xa438, 0x1d0b, 0xa438, 0x1000, 0xa438, 0x80ad,
- 0xa438, 0x1800, 0xa438, 0x01f2, 0xa438, 0x1000, 0xa438, 0x1d0b,
- 0xa438, 0x1000, 0xa438, 0x80ad, 0xa438, 0x1800, 0xa438, 0x01f9,
- 0xa438, 0x2969, 0xa438, 0x80a3, 0xa438, 0xd700, 0xa438, 0x606b,
- 0xa438, 0xd701, 0xa438, 0x60b4, 0xa438, 0x1000, 0xa438, 0x80ad,
- 0xa438, 0x1800, 0xa438, 0x0551, 0xa438, 0xd196, 0xa438, 0xd04d,
- 0xa438, 0x1000, 0xa438, 0x80ad, 0xa438, 0x1800, 0xa438, 0x054d,
- 0xa438, 0xd208, 0xa438, 0x0c09, 0xa438, 0x1301, 0xa438, 0x1000,
- 0xa438, 0x1cd2, 0xa438, 0xd701, 0xa438, 0x5fa3, 0xa438, 0xb302,
- 0xa438, 0xd200, 0xa438, 0x0800, 0xa438, 0xd705, 0xa438, 0x6064,
- 0xa438, 0x1800, 0xa438, 0x140a, 0xa438, 0x8810, 0xa438, 0xd199,
- 0xa438, 0xd04b, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd700,
- 0xa438, 0x5fba, 0xa438, 0x1800, 0xa438, 0x140a, 0xa436, 0xA10E,
- 0xa438, 0xffff, 0xa436, 0xA10C, 0xa438, 0x1352, 0xa436, 0xA10A,
- 0xa438, 0x0545, 0xa436, 0xA108, 0xa438, 0x01ed, 0xa436, 0xA106,
- 0xa438, 0x1bbf, 0xa436, 0xA104, 0xa438, 0x114b, 0xa436, 0xA102,
- 0xa438, 0x14bf, 0xa436, 0xA100, 0xa438, 0x07ce, 0xa436, 0xA110,
- 0xa438, 0x007f, 0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012,
- 0xa438, 0x1ff8, 0xa436, 0xA014, 0xa438, 0xd1ce, 0xa438, 0x0000,
+ 0xa438, 0x5fba, 0xa438, 0xd700, 0xa438, 0x273d, 0xa438, 0x8056,
+ 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x802e, 0xa438, 0x33a9,
+ 0xa438, 0x8026, 0xa438, 0xd702, 0xa438, 0x6099, 0xa438, 0xd1b7,
+ 0xa438, 0xd05c, 0xa438, 0xf013, 0xa438, 0xd1b7, 0xa438, 0xd05c,
+ 0xa438, 0xf010, 0xa438, 0xd702, 0xa438, 0x6099, 0xa438, 0xd1b7,
+ 0xa438, 0xd05c, 0xa438, 0xf00b, 0xa438, 0xd1b7, 0xa438, 0xd05c,
+ 0xa438, 0xf008, 0xa438, 0xd702, 0xa438, 0x6099, 0xa438, 0xd199,
+ 0xa438, 0xd05d, 0xa438, 0xf003, 0xa438, 0xd199, 0xa438, 0xd05d,
+ 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x804a, 0xa438, 0x33a9,
+ 0xa438, 0x8042, 0xa438, 0xd702, 0xa438, 0x6099, 0xa438, 0xd1bf,
+ 0xa438, 0xd06d, 0xa438, 0xf013, 0xa438, 0xd1e5, 0xa438, 0xd06d,
+ 0xa438, 0xf010, 0xa438, 0xd702, 0xa438, 0x6099, 0xa438, 0xd1ec,
+ 0xa438, 0xd06d, 0xa438, 0xf00b, 0xa438, 0xd1bf, 0xa438, 0xd06d,
+ 0xa438, 0xf008, 0xa438, 0xd702, 0xa438, 0x6099, 0xa438, 0xd199,
+ 0xa438, 0xd06e, 0xa438, 0xf003, 0xa438, 0xd199, 0xa438, 0xd06e,
+ 0xa438, 0xd703, 0xa438, 0x6090, 0xa438, 0xd41a, 0xa438, 0x1000,
+ 0xa438, 0x1cc8, 0xa438, 0xd408, 0xa438, 0x1000, 0xa438, 0x1cc8,
+ 0xa438, 0xcd31, 0xa438, 0xd700, 0xa438, 0x2fa9, 0xa438, 0x8061,
+ 0xa438, 0x33c9, 0xa438, 0x8064, 0xa438, 0x6117, 0xa438, 0xf00a,
+ 0xa438, 0xd141, 0xa438, 0xd043, 0xa438, 0xf009, 0xa438, 0xd121,
+ 0xa438, 0xd043, 0xa438, 0xf006, 0xa438, 0xd122, 0xa438, 0xd042,
+ 0xa438, 0xf003, 0xa438, 0xd181, 0xa438, 0xd043, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0xd700,
+ 0xa438, 0x2969, 0xa438, 0x80da, 0xa438, 0xd700, 0xa438, 0x6ccb,
+ 0xa438, 0xd700, 0xa438, 0x6d67, 0xa438, 0x800a, 0xa438, 0x81a0,
+ 0xa438, 0x8312, 0xa438, 0x8480, 0xa438, 0x0c86, 0xa438, 0x0680,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8702, 0xa438, 0x9503,
+ 0xa438, 0xd407, 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0xd703,
+ 0xa438, 0x6090, 0xa438, 0xd41a, 0xa438, 0x1000, 0xa438, 0x1cc8,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8380, 0xa438, 0x9503,
+ 0xa438, 0xd406, 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0xcd39,
+ 0xa438, 0xd404, 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0xd700,
+ 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135,
+ 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce03, 0xa438, 0xf00a,
+ 0xa438, 0xce03, 0xa438, 0xf008, 0xa438, 0xce03, 0xa438, 0xf006,
+ 0xa438, 0xce03, 0xa438, 0xf004, 0xa438, 0xce03, 0xa438, 0xf002,
+ 0xa438, 0xce03, 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x0c07, 0xa438, 0x0c01, 0xa438, 0x8d07,
+ 0xa438, 0x0cc3, 0xa438, 0x0b40, 0xa438, 0x8d07, 0xa438, 0x9503,
+ 0xa438, 0xa810, 0xa438, 0xa00a, 0xa438, 0xa302, 0xa438, 0x0ca0,
+ 0xa438, 0x0480, 0xa438, 0xa684, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd706, 0xa438, 0x5fa7, 0xa438, 0xb920, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x7fb4, 0xa438, 0x8810,
+ 0xa438, 0x9920, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f,
+ 0xa438, 0x60e5, 0xa438, 0x5f94, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd706, 0xa438, 0x5fa7, 0xa438, 0xfff0, 0xa438, 0xb820,
+ 0xa438, 0xa810, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f,
+ 0xa438, 0x7fa5, 0xa438, 0x9820, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd706, 0xa438, 0x5f69,
+ 0xa438, 0xf010, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xae80,
+ 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x2b6d, 0xa438, 0x8184,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8380, 0xa438, 0x9503,
+ 0xa438, 0xd406, 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0xcd32,
+ 0xa438, 0xd701, 0xa438, 0x6191, 0xa438, 0xa504, 0xa438, 0xcd3a,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x6067,
+ 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd701, 0xa438, 0x5f3a,
+ 0xa438, 0x8504, 0xa438, 0xd700, 0xa438, 0x2739, 0xa438, 0x817a,
+ 0xa438, 0xd707, 0xa438, 0x6061, 0xa438, 0x1800, 0xa438, 0x816c,
+ 0xa438, 0xd193, 0xa438, 0xd047, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd700, 0xa438, 0x5f7a,
+ 0xa438, 0xd706, 0xa438, 0x5f29, 0xa438, 0xd700, 0xa438, 0x60cf,
+ 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135, 0xa438, 0x6157,
+ 0xa438, 0xf00b, 0xa438, 0xce06, 0xa438, 0xf00a, 0xa438, 0xce06,
+ 0xa438, 0xf008, 0xa438, 0xce06, 0xa438, 0xf006, 0xa438, 0xce06,
+ 0xa438, 0xf004, 0xa438, 0xce06, 0xa438, 0xf002, 0xa438, 0xce06,
+ 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0x0c0f, 0xa438, 0x0b01, 0xa438, 0x0c3f, 0xa438, 0x0c08,
+ 0xa438, 0x8bc0, 0xa438, 0x9503, 0xa438, 0xd707, 0xa438, 0x409f,
+ 0xa438, 0x4062, 0xa438, 0x8310, 0xa438, 0xf002, 0xa438, 0xa310,
+ 0xa438, 0xa120, 0xa438, 0xa420, 0xa438, 0xd193, 0xa438, 0xd048,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b,
+ 0xa438, 0xd700, 0xa438, 0x5f7a, 0xa438, 0xd706, 0xa438, 0x5f29,
+ 0xa438, 0xd700, 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113,
+ 0xa438, 0x6135, 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce03,
+ 0xa438, 0xf00a, 0xa438, 0xce03, 0xa438, 0xf008, 0xa438, 0xce03,
+ 0xa438, 0xf006, 0xa438, 0xce03, 0xa438, 0xf004, 0xa438, 0xce03,
+ 0xa438, 0xf002, 0xa438, 0xce03, 0xa438, 0x1000, 0xa438, 0x1ce7,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x0c07, 0xa438, 0x0c01,
+ 0xa438, 0x9503, 0xa438, 0x8420, 0xa438, 0x800a, 0xa438, 0x8120,
+ 0xa438, 0x8312, 0xa438, 0x8480, 0xa438, 0x8604, 0xa438, 0xd419,
+ 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0xd702, 0xa438, 0x4080,
+ 0xa438, 0xbb20, 0xa438, 0x1800, 0xa438, 0x8507, 0xa438, 0xa00a,
+ 0xa438, 0xa302, 0xa438, 0xa480, 0xa438, 0xa604, 0xa438, 0xd193,
+ 0xa438, 0xd047, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000,
+ 0xa438, 0x1d2b, 0xa438, 0xd700, 0xa438, 0x5f7a, 0xa438, 0xd706,
+ 0xa438, 0x5f29, 0xa438, 0x1800, 0xa438, 0x814f, 0xa438, 0x800a,
+ 0xa438, 0x8302, 0xa438, 0x8480, 0xa438, 0x8604, 0xa438, 0xd405,
+ 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0xbb20, 0xa438, 0xa00a,
+ 0xa438, 0xa302, 0xa438, 0xa480, 0xa438, 0xa604, 0xa438, 0x1800,
+ 0xa438, 0x8507, 0xa438, 0xd405, 0xa438, 0x1000, 0xa438, 0x1cc8,
+ 0xa438, 0xd404, 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0xd700,
+ 0xa438, 0x2b69, 0xa438, 0x8184, 0xa438, 0xf06d, 0xa438, 0xd700,
+ 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135,
+ 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce03, 0xa438, 0xf00a,
+ 0xa438, 0xce03, 0xa438, 0xf008, 0xa438, 0xce03, 0xa438, 0xf006,
+ 0xa438, 0xce03, 0xa438, 0xf004, 0xa438, 0xce03, 0xa438, 0xf002,
+ 0xa438, 0xce03, 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x0c07, 0xa438, 0x0c01, 0xa438, 0x0c3f,
+ 0xa438, 0x0d08, 0xa438, 0x9503, 0xa438, 0xa810, 0xa438, 0xa00a,
+ 0xa438, 0xa302, 0xa438, 0x0ca0, 0xa438, 0x0480, 0xa438, 0xd700,
+ 0xa438, 0x2969, 0xa438, 0x0960, 0xa438, 0x60a4, 0xa438, 0xd704,
+ 0xa438, 0x407d, 0xa438, 0x8604, 0xa438, 0xf002, 0xa438, 0xa604,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa340, 0xa438, 0xd700,
+ 0xa438, 0x37cd, 0xa438, 0x81b4, 0xa438, 0x8310, 0xa438, 0x9503,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd706, 0xa438, 0x5fa7,
+ 0xa438, 0xb920, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f,
+ 0xa438, 0x7fb4, 0xa438, 0x8810, 0xa438, 0x9920, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x60e5, 0xa438, 0x5f94,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd706, 0xa438, 0x5fa7,
+ 0xa438, 0xfff0, 0xa438, 0xb820, 0xa438, 0xa810, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x7fa5, 0xa438, 0x9820,
+ 0xa438, 0xd700, 0xa438, 0x2d59, 0xa438, 0x8507, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x8c07, 0xa438, 0x9503, 0xa438, 0xa120,
+ 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x81e3, 0xa438, 0x60e4,
+ 0xa438, 0xd704, 0xa438, 0x40bd, 0xa438, 0xd704, 0xa438, 0x407b,
+ 0xa438, 0x8310, 0xa438, 0xf002, 0xa438, 0xa310, 0xa438, 0xd700,
+ 0xa438, 0x2969, 0xa438, 0x81ec, 0xa438, 0x60a4, 0xa438, 0xd704,
+ 0xa438, 0x407d, 0xa438, 0xa202, 0xa438, 0xf002, 0xa438, 0x8202,
+ 0xa438, 0xa420, 0xa438, 0x1800, 0xa438, 0x861d, 0xa438, 0x8810,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x5fbb,
+ 0xa438, 0xd17a, 0xa438, 0xd05a, 0xa438, 0xd700, 0xa438, 0x60cf,
+ 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135, 0xa438, 0x6157,
+ 0xa438, 0xf00b, 0xa438, 0xce06, 0xa438, 0xf00a, 0xa438, 0xce06,
+ 0xa438, 0xf008, 0xa438, 0xce06, 0xa438, 0xf006, 0xa438, 0xce06,
+ 0xa438, 0xf004, 0xa438, 0xce06, 0xa438, 0xf002, 0xa438, 0xce06,
+ 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0x0c0f, 0xa438, 0x0b04, 0xa438, 0x0c3f, 0xa438, 0x0c21,
+ 0xa438, 0x8d07, 0xa438, 0x9503, 0xa438, 0xa340, 0xa438, 0x1000,
+ 0xa438, 0x1d47, 0xa438, 0xa110, 0xa438, 0x1000, 0xa438, 0x1cef,
+ 0xa438, 0x8110, 0xa438, 0x1000, 0xa438, 0x1d50, 0xa438, 0xa304,
+ 0xa438, 0xa440, 0xa438, 0xa8c0, 0xa438, 0x8810, 0xa438, 0xa00a,
+ 0xa438, 0xa120, 0xa438, 0xa310, 0xa438, 0xd704, 0xa438, 0x405d,
+ 0xa438, 0xa308, 0xa438, 0x0cfc, 0xa438, 0x0224, 0xa438, 0x0ca0,
+ 0xa438, 0x0480, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa340,
+ 0xa438, 0xd700, 0xa438, 0x37cd, 0xa438, 0x8231, 0xa438, 0x8310,
+ 0xa438, 0x9503, 0xa438, 0xd162, 0xa438, 0xd048, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0x8840,
+ 0xa438, 0xd1c4, 0xa438, 0xd045, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0xd706, 0xa438, 0x6127,
+ 0xa438, 0xd700, 0xa438, 0x5f3b, 0xa438, 0x88c0, 0xa438, 0x800a,
+ 0xa438, 0x8120, 0xa438, 0x8350, 0xa438, 0x84a0, 0xa438, 0xffad,
+ 0xa438, 0xb920, 0xa438, 0xcd33, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd71f, 0xa438, 0x7fb4, 0xa438, 0x9920, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x6065, 0xa438, 0x5f94,
+ 0xa438, 0xffee, 0xa438, 0xb820, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd71f, 0xa438, 0x7fa5, 0xa438, 0x9820, 0xa438, 0x800a,
+ 0xa438, 0x8120, 0xa438, 0x1000, 0xa438, 0x1d47, 0xa438, 0xa108,
+ 0xa438, 0x1000, 0xa438, 0x1cef, 0xa438, 0x8108, 0xa438, 0x1000,
+ 0xa438, 0x1d50, 0xa438, 0xd704, 0xa438, 0x60bd, 0xa438, 0xd707,
+ 0xa438, 0x413f, 0xa438, 0x4100, 0xa438, 0xf004, 0xa438, 0x0cfd,
+ 0xa438, 0x0201, 0xa438, 0xf005, 0xa438, 0x0cfc, 0xa438, 0x02bc,
+ 0xa438, 0xf002, 0xa438, 0xa2fc, 0xa438, 0xa304, 0xa438, 0x8880,
+ 0xa438, 0x0cc0, 0xa438, 0x0440, 0xa438, 0xcd34, 0xa438, 0xd704,
+ 0xa438, 0x407d, 0xa438, 0x405b, 0xa438, 0xf006, 0xa438, 0xd704,
+ 0xa438, 0x60fd, 0xa438, 0xd707, 0xa438, 0x40bf, 0xa438, 0x4080,
+ 0xa438, 0x8310, 0xa438, 0x1000, 0xa438, 0x1d15, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x8c07, 0xa438, 0xd704, 0xa438, 0x409d,
+ 0xa438, 0x8b0f, 0xa438, 0x8c38, 0xa438, 0xf004, 0xa438, 0x0c0f,
+ 0xa438, 0x0b07, 0xa438, 0xac38, 0xa438, 0x0c38, 0xa438, 0x0d10,
+ 0xa438, 0x9503, 0xa438, 0xa810, 0xa438, 0xa00a, 0xa438, 0xa120,
+ 0xa438, 0xd704, 0xa438, 0x607d, 0xa438, 0xa4a0, 0xa438, 0xa604,
+ 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x829f, 0xa438, 0xd17a,
+ 0xa438, 0xd049, 0xa438, 0xf003, 0xa438, 0xd19f, 0xa438, 0xd049,
+ 0xa438, 0xd704, 0xa438, 0x413d, 0xa438, 0xa00a, 0xa438, 0xa120,
+ 0xa438, 0xd704, 0xa438, 0x407b, 0xa438, 0x8310, 0xa438, 0xf002,
+ 0xa438, 0xa310, 0xa438, 0xa403, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd71f, 0xa438, 0x6a14, 0xa438, 0xd700, 0xa438, 0x409a,
+ 0xa438, 0xd706, 0xa438, 0x4988, 0xa438, 0xf014, 0xa438, 0xd704,
+ 0xa438, 0x6055, 0xa438, 0xfff5, 0xa438, 0x1000, 0xa438, 0x1d47,
+ 0xa438, 0x800a, 0xa438, 0x8120, 0xa438, 0x8310, 0xa438, 0xa380,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b,
+ 0xa438, 0xd705, 0xa438, 0x5f77, 0xa438, 0x8380, 0xa438, 0x1000,
+ 0xa438, 0x1d50, 0xa438, 0xffdd, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0x8b0f, 0xa438, 0x8c38, 0xa438, 0x8d38, 0xa438, 0x9503,
+ 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x82d8, 0xa438, 0x33a9,
+ 0xa438, 0x82d5, 0xa438, 0xd1f4, 0xa438, 0xd04b, 0xa438, 0xf006,
+ 0xa438, 0xd1b7, 0xa438, 0xd04b, 0xa438, 0xf003, 0xa438, 0xd1c6,
+ 0xa438, 0xd04c, 0xa438, 0xd704, 0xa438, 0x413d, 0xa438, 0xa00a,
+ 0xa438, 0xa120, 0xa438, 0xd704, 0xa438, 0x407b, 0xa438, 0x8310,
+ 0xa438, 0xf002, 0xa438, 0xa310, 0xa438, 0xa403, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x62f4, 0xa438, 0xd700,
+ 0xa438, 0x405a, 0xa438, 0xf01a, 0xa438, 0xd704, 0xa438, 0x6055,
+ 0xa438, 0xfff7, 0xa438, 0x1000, 0xa438, 0x1d47, 0xa438, 0x800a,
+ 0xa438, 0x8120, 0xa438, 0x8310, 0xa438, 0xa380, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd705,
+ 0xa438, 0x5f77, 0xa438, 0x8380, 0xa438, 0x1000, 0xa438, 0x1d50,
+ 0xa438, 0xffdf, 0xa438, 0x8403, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd700, 0xa438, 0x629c, 0xa438, 0xfffb, 0xa438, 0x8403,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x6096,
+ 0xa438, 0xd700, 0xa438, 0x619c, 0xa438, 0xfffa, 0xa438, 0xd706,
+ 0xa438, 0x4128, 0xa438, 0xd702, 0xa438, 0x60b0, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0xae80, 0xa438, 0x9503, 0xa438, 0x1800,
+ 0xa438, 0x8431, 0xa438, 0xd17a, 0xa438, 0xd05a, 0xa438, 0xd700,
+ 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135,
+ 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce06, 0xa438, 0xf00a,
+ 0xa438, 0xce06, 0xa438, 0xf008, 0xa438, 0xce06, 0xa438, 0xf006,
+ 0xa438, 0xce06, 0xa438, 0xf004, 0xa438, 0xce06, 0xa438, 0xf002,
+ 0xa438, 0xce06, 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x0c0f, 0xa438, 0x0b04, 0xa438, 0x0c3f,
+ 0xa438, 0x0c21, 0xa438, 0x8d07, 0xa438, 0x0cc3, 0xa438, 0x0b40,
+ 0xa438, 0x0c3f, 0xa438, 0x0c24, 0xa438, 0x8d07, 0xa438, 0x9503,
+ 0xa438, 0xa340, 0xa438, 0x1000, 0xa438, 0x1d47, 0xa438, 0xa110,
+ 0xa438, 0x1000, 0xa438, 0x1cef, 0xa438, 0x8110, 0xa438, 0x1000,
+ 0xa438, 0x1d50, 0xa438, 0xa304, 0xa438, 0xa440, 0xa438, 0xa8c0,
+ 0xa438, 0x8810, 0xa438, 0xa00a, 0xa438, 0xa120, 0xa438, 0xa310,
+ 0xa438, 0xd704, 0xa438, 0x405d, 0xa438, 0xa308, 0xa438, 0x0cfc,
+ 0xa438, 0x0224, 0xa438, 0x0ca0, 0xa438, 0x0480, 0xa438, 0x8604,
+ 0xa438, 0xcd35, 0xa438, 0xd162, 0xa438, 0xd048, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0x8840,
+ 0xa438, 0xd1c4, 0xa438, 0xd045, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0xd706, 0xa438, 0x6127,
+ 0xa438, 0xd700, 0xa438, 0x5f3b, 0xa438, 0x88c0, 0xa438, 0x800a,
+ 0xa438, 0x8120, 0xa438, 0x8350, 0xa438, 0x84a0, 0xa438, 0xffae,
+ 0xa438, 0xbb80, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f,
+ 0xa438, 0x5fb4, 0xa438, 0xb920, 0xa438, 0xcd36, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x7fb4, 0xa438, 0x9920,
+ 0xa438, 0x9b80, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f,
+ 0xa438, 0x6065, 0xa438, 0x5f94, 0xa438, 0xffe8, 0xa438, 0xb820,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x7fa5,
+ 0xa438, 0x9820, 0xa438, 0x800a, 0xa438, 0x8120, 0xa438, 0x1000,
+ 0xa438, 0x1d47, 0xa438, 0xa108, 0xa438, 0x1000, 0xa438, 0x1cef,
+ 0xa438, 0x8108, 0xa438, 0x1000, 0xa438, 0x1d50, 0xa438, 0xd704,
+ 0xa438, 0x60bd, 0xa438, 0xd707, 0xa438, 0x413f, 0xa438, 0x4100,
+ 0xa438, 0xf004, 0xa438, 0x0cfd, 0xa438, 0x0201, 0xa438, 0xf005,
+ 0xa438, 0x0cfc, 0xa438, 0x02bc, 0xa438, 0xf002, 0xa438, 0xa2fc,
+ 0xa438, 0xa304, 0xa438, 0x8880, 0xa438, 0x0cc0, 0xa438, 0x0440,
+ 0xa438, 0xcd37, 0xa438, 0xd704, 0xa438, 0x407d, 0xa438, 0x405b,
+ 0xa438, 0xf006, 0xa438, 0xd704, 0xa438, 0x60fd, 0xa438, 0xd707,
+ 0xa438, 0x40bf, 0xa438, 0x4080, 0xa438, 0x8310, 0xa438, 0x1000,
+ 0xa438, 0x1d15, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8c07,
+ 0xa438, 0x0cc0, 0xa438, 0x0b00, 0xa438, 0xd704, 0xa438, 0x40bd,
+ 0xa438, 0x8b0f, 0xa438, 0x8c38, 0xa438, 0x8c3f, 0xa438, 0xf005,
+ 0xa438, 0x0c0f, 0xa438, 0x0b07, 0xa438, 0xac38, 0xa438, 0xac3f,
+ 0xa438, 0x0c38, 0xa438, 0x0d10, 0xa438, 0x0c38, 0xa438, 0x0d10,
+ 0xa438, 0x9503, 0xa438, 0xa810, 0xa438, 0xa00a, 0xa438, 0xa120,
+ 0xa438, 0xd704, 0xa438, 0x607d, 0xa438, 0xa4a0, 0xa438, 0xa604,
+ 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x83d0, 0xa438, 0x33a9,
+ 0xa438, 0x83cd, 0xa438, 0xd17a, 0xa438, 0xd048, 0xa438, 0xf006,
+ 0xa438, 0xd17a, 0xa438, 0xd048, 0xa438, 0xf003, 0xa438, 0xd17a,
+ 0xa438, 0xd048, 0xa438, 0xd704, 0xa438, 0x413d, 0xa438, 0xa00a,
+ 0xa438, 0xa120, 0xa438, 0xd704, 0xa438, 0x407b, 0xa438, 0x8310,
+ 0xa438, 0xf002, 0xa438, 0xa310, 0xa438, 0xa403, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd700,
+ 0xa438, 0x409a, 0xa438, 0xd706, 0xa438, 0x4048, 0xa438, 0xf014,
+ 0xa438, 0xd704, 0xa438, 0x6055, 0xa438, 0xfff5, 0xa438, 0x1000,
+ 0xa438, 0x1d47, 0xa438, 0x800a, 0xa438, 0x8120, 0xa438, 0x8310,
+ 0xa438, 0xa380, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000,
+ 0xa438, 0x1d2b, 0xa438, 0xd705, 0xa438, 0x5f77, 0xa438, 0x8380,
+ 0xa438, 0x1000, 0xa438, 0x1d50, 0xa438, 0xffdd, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x8b0f, 0xa438, 0x8c38, 0xa438, 0x8d38,
+ 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x8409,
+ 0xa438, 0x33a9, 0xa438, 0x8406, 0xa438, 0xd13d, 0xa438, 0xd04b,
+ 0xa438, 0xf006, 0xa438, 0xd17a, 0xa438, 0xd04a, 0xa438, 0xf003,
+ 0xa438, 0xd189, 0xa438, 0xd04c, 0xa438, 0xd704, 0xa438, 0x413d,
+ 0xa438, 0xa00a, 0xa438, 0xa120, 0xa438, 0xd704, 0xa438, 0x407b,
+ 0xa438, 0x8310, 0xa438, 0xf002, 0xa438, 0xa310, 0xa438, 0xa403,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b,
+ 0xa438, 0xd700, 0xa438, 0x409a, 0xa438, 0xd706, 0xa438, 0x4048,
+ 0xa438, 0xf014, 0xa438, 0xd704, 0xa438, 0x6055, 0xa438, 0xfff5,
+ 0xa438, 0x1000, 0xa438, 0x1d47, 0xa438, 0x800a, 0xa438, 0x8120,
+ 0xa438, 0x8310, 0xa438, 0xa380, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd705, 0xa438, 0x5f77,
+ 0xa438, 0x8380, 0xa438, 0x1000, 0xa438, 0x1d50, 0xa438, 0xffdd,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x0c07, 0xa438, 0x0d01,
+ 0xa438, 0x0c03, 0xa438, 0x0b01, 0xa438, 0x0c07, 0xa438, 0x0d01,
+ 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x60cf, 0xa438, 0x60f1,
+ 0xa438, 0x6113, 0xa438, 0x6135, 0xa438, 0x6157, 0xa438, 0xf00b,
+ 0xa438, 0xce08, 0xa438, 0xf00a, 0xa438, 0xce08, 0xa438, 0xf008,
+ 0xa438, 0xce08, 0xa438, 0xf006, 0xa438, 0xce08, 0xa438, 0xf004,
+ 0xa438, 0xce08, 0xa438, 0xf002, 0xa438, 0xce08, 0xa438, 0x1000,
+ 0xa438, 0x1ce7, 0xa438, 0xa180, 0xa438, 0xcd38, 0xa438, 0xd700,
+ 0xa438, 0x37c9, 0xa438, 0x8465, 0xa438, 0x33a9, 0xa438, 0x845d,
+ 0xa438, 0xd702, 0xa438, 0x4098, 0xa438, 0xd17a, 0xa438, 0xd04a,
+ 0xa438, 0xf013, 0xa438, 0xd100, 0xa438, 0xd049, 0xa438, 0xf010,
+ 0xa438, 0xd702, 0xa438, 0x4098, 0xa438, 0xd1b7, 0xa438, 0xd049,
+ 0xa438, 0xf00b, 0xa438, 0xd100, 0xa438, 0xd048, 0xa438, 0xf008,
+ 0xa438, 0xd702, 0xa438, 0x4098, 0xa438, 0xd17a, 0xa438, 0xd04b,
+ 0xa438, 0xf003, 0xa438, 0xd199, 0xa438, 0xd04a, 0xa438, 0xd13b,
+ 0xa438, 0xd055, 0xa438, 0xd704, 0xa438, 0x413d, 0xa438, 0xa00a,
+ 0xa438, 0xa1a0, 0xa438, 0xd704, 0xa438, 0x407b, 0xa438, 0x8310,
+ 0xa438, 0xf002, 0xa438, 0xa310, 0xa438, 0xa403, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd700,
+ 0xa438, 0x405b, 0xa438, 0xf014, 0xa438, 0xd704, 0xa438, 0x6055,
+ 0xa438, 0xfff7, 0xa438, 0x1000, 0xa438, 0x1d47, 0xa438, 0x800a,
+ 0xa438, 0x81a0, 0xa438, 0x8310, 0xa438, 0xa380, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd705,
+ 0xa438, 0x5f77, 0xa438, 0x8380, 0xa438, 0x1000, 0xa438, 0x1d50,
+ 0xa438, 0xffdf, 0xa438, 0xa302, 0xa438, 0xd704, 0xa438, 0x415d,
+ 0xa438, 0xa00a, 0xa438, 0xa1a0, 0xa438, 0xd704, 0xa438, 0x407b,
+ 0xa438, 0x8310, 0xa438, 0xf002, 0xa438, 0xa310, 0xa438, 0xa302,
+ 0xa438, 0xa403, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000,
+ 0xa438, 0x1d2b, 0xa438, 0xd700, 0xa438, 0x409a, 0xa438, 0xd706,
+ 0xa438, 0x4048, 0xa438, 0xf014, 0xa438, 0xd704, 0xa438, 0x6055,
+ 0xa438, 0xfff5, 0xa438, 0x1000, 0xa438, 0x1d47, 0xa438, 0x800a,
+ 0xa438, 0x81a0, 0xa438, 0x8312, 0xa438, 0xa380, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd705,
+ 0xa438, 0x5f77, 0xa438, 0x8380, 0xa438, 0x1000, 0xa438, 0x1d50,
+ 0xa438, 0xffdc, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x0c0f,
+ 0xa438, 0x0b02, 0xa438, 0x0c38, 0xa438, 0x0c10, 0xa438, 0x0c3f,
+ 0xa438, 0x0c12, 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x37c9,
+ 0xa438, 0x84d8, 0xa438, 0x33a9, 0xa438, 0x84d0, 0xa438, 0xd702,
+ 0xa438, 0x4098, 0xa438, 0xd199, 0xa438, 0xd04a, 0xa438, 0xf013,
+ 0xa438, 0xd100, 0xa438, 0xd04a, 0xa438, 0xf010, 0xa438, 0xd702,
+ 0xa438, 0x4098, 0xa438, 0xd17a, 0xa438, 0xd04a, 0xa438, 0xf00b,
+ 0xa438, 0xd100, 0xa438, 0xd048, 0xa438, 0xf008, 0xa438, 0xd702,
+ 0xa438, 0x4098, 0xa438, 0xd199, 0xa438, 0xd04b, 0xa438, 0xf003,
+ 0xa438, 0xd16b, 0xa438, 0xd04b, 0xa438, 0xd704, 0xa438, 0x415d,
+ 0xa438, 0xa00a, 0xa438, 0xa1a0, 0xa438, 0xd704, 0xa438, 0x407b,
+ 0xa438, 0x8310, 0xa438, 0xf002, 0xa438, 0xa310, 0xa438, 0xa302,
+ 0xa438, 0xa403, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000,
+ 0xa438, 0x1d2b, 0xa438, 0xd700, 0xa438, 0x40ba, 0xa438, 0xd706,
+ 0xa438, 0x406a, 0xa438, 0x8403, 0xa438, 0xf014, 0xa438, 0xd704,
+ 0xa438, 0x6055, 0xa438, 0xfff4, 0xa438, 0x1000, 0xa438, 0x1d47,
+ 0xa438, 0x800a, 0xa438, 0x81a0, 0xa438, 0x8312, 0xa438, 0xa380,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b,
+ 0xa438, 0xd705, 0xa438, 0x5f77, 0xa438, 0x8380, 0xa438, 0x1000,
+ 0xa438, 0x1d50, 0xa438, 0xffdb, 0xa438, 0x81a0, 0xa438, 0x8310,
+ 0xa438, 0xa302, 0xa438, 0xa00a, 0xa438, 0xa480, 0xa438, 0x8420,
+ 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x8517, 0xa438, 0x60e4,
+ 0xa438, 0xd700, 0xa438, 0x40a7, 0xa438, 0xd704, 0xa438, 0x407d,
+ 0xa438, 0x8604, 0xa438, 0xf002, 0xa438, 0xa604, 0xa438, 0xd700,
+ 0xa438, 0x60c7, 0xa438, 0xa602, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0xa702, 0xa438, 0x9503, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0xa340, 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x60cf,
+ 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135, 0xa438, 0x6157,
+ 0xa438, 0xf00b, 0xa438, 0xce03, 0xa438, 0xf00a, 0xa438, 0xce03,
+ 0xa438, 0xf008, 0xa438, 0xce03, 0xa438, 0xf006, 0xa438, 0xce03,
+ 0xa438, 0xf004, 0xa438, 0xce03, 0xa438, 0xf002, 0xa438, 0xce03,
+ 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0x0c07, 0xa438, 0x0c01, 0xa438, 0x0c3f, 0xa438, 0x0d08,
+ 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x646d, 0xa438, 0x37c9,
+ 0xa438, 0x8558, 0xa438, 0x33a9, 0xa438, 0x854e, 0xa438, 0xd700,
+ 0xa438, 0x40c7, 0xa438, 0xd702, 0xa438, 0x6098, 0xa438, 0xd100,
+ 0xa438, 0xd048, 0xa438, 0xf01a, 0xa438, 0xd17a, 0xa438, 0xd049,
+ 0xa438, 0xf017, 0xa438, 0xd700, 0xa438, 0x40c7, 0xa438, 0xd702,
+ 0xa438, 0x6098, 0xa438, 0xd100, 0xa438, 0xd049, 0xa438, 0xf010,
+ 0xa438, 0xd17a, 0xa438, 0xd04c, 0xa438, 0xf00d, 0xa438, 0xd700,
+ 0xa438, 0x40c7, 0xa438, 0xd702, 0xa438, 0x6098, 0xa438, 0xd17a,
+ 0xa438, 0xd04a, 0xa438, 0xf006, 0xa438, 0xd17a, 0xa438, 0xd04a,
+ 0xa438, 0xf003, 0xa438, 0xd17a, 0xa438, 0xd048, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd700,
+ 0xa438, 0x5f7a, 0xa438, 0xd706, 0xa438, 0x5f29, 0xa438, 0xd700,
+ 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135,
+ 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce06, 0xa438, 0xf00a,
+ 0xa438, 0xce06, 0xa438, 0xf008, 0xa438, 0xce06, 0xa438, 0xf006,
+ 0xa438, 0xce06, 0xa438, 0xf004, 0xa438, 0xce06, 0xa438, 0xf002,
+ 0xa438, 0xce06, 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x0c0f, 0xa438, 0x0b01, 0xa438, 0x0c3f,
+ 0xa438, 0x0c08, 0xa438, 0x9503, 0xa438, 0xa120, 0xa438, 0xd700,
+ 0xa438, 0x2969, 0xa438, 0x859c, 0xa438, 0x6224, 0xa438, 0xd700,
+ 0xa438, 0x4147, 0xa438, 0xd704, 0xa438, 0x409d, 0xa438, 0xd704,
+ 0xa438, 0x613b, 0xa438, 0xf00a, 0xa438, 0xd707, 0xa438, 0x411f,
+ 0xa438, 0x40e0, 0xa438, 0xf004, 0xa438, 0xd707, 0xa438, 0x409f,
+ 0xa438, 0x4062, 0xa438, 0x8310, 0xa438, 0xf002, 0xa438, 0xa310,
+ 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x85a7, 0xa438, 0x60e4,
+ 0xa438, 0xd700, 0xa438, 0x40a7, 0xa438, 0xd704, 0xa438, 0x407d,
+ 0xa438, 0xa202, 0xa438, 0xf002, 0xa438, 0x8202, 0xa438, 0xa420,
+ 0xa438, 0xcd3b, 0xa438, 0xd700, 0xa438, 0x65ad, 0xa438, 0x43c7,
+ 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x85c2, 0xa438, 0x33a9,
+ 0xa438, 0x85ba, 0xa438, 0xd702, 0xa438, 0x4098, 0xa438, 0xd199,
+ 0xa438, 0xd04c, 0xa438, 0xf024, 0xa438, 0xd13d, 0xa438, 0xd04a,
+ 0xa438, 0xf021, 0xa438, 0xd702, 0xa438, 0x4098, 0xa438, 0xd1c6,
+ 0xa438, 0xd04c, 0xa438, 0xf01c, 0xa438, 0xd15c, 0xa438, 0xd04a,
+ 0xa438, 0xf019, 0xa438, 0xd702, 0xa438, 0x4098, 0xa438, 0xd199,
+ 0xa438, 0xd04c, 0xa438, 0xf014, 0xa438, 0xd17a, 0xa438, 0xd04c,
+ 0xa438, 0xf011, 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x85d5,
+ 0xa438, 0x33a9, 0xa438, 0x85d2, 0xa438, 0xd1e5, 0xa438, 0xd04c,
+ 0xa438, 0xf009, 0xa438, 0xd191, 0xa438, 0xd04d, 0xa438, 0xf006,
+ 0xa438, 0xd17a, 0xa438, 0xd04d, 0xa438, 0xf003, 0xa438, 0xd16b,
+ 0xa438, 0xd04c, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000,
+ 0xa438, 0x1d2b, 0xa438, 0xd700, 0xa438, 0x5f7a, 0xa438, 0xd706,
+ 0xa438, 0x5f2c, 0xa438, 0xd700, 0xa438, 0x40e7, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x0c07, 0xa438, 0x0d01, 0xa438, 0x9503,
+ 0xa438, 0xf006, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x0c07,
+ 0xa438, 0x0d02, 0xa438, 0x9503, 0xa438, 0xcd3c, 0xa438, 0xd700,
+ 0xa438, 0x644d, 0xa438, 0x43c7, 0xa438, 0xd700, 0xa438, 0x37c9,
+ 0xa438, 0x8608, 0xa438, 0x33a9, 0xa438, 0x8600, 0xa438, 0xd702,
+ 0xa438, 0x4098, 0xa438, 0xd17a, 0xa438, 0xd04a, 0xa438, 0xf019,
+ 0xa438, 0xd17a, 0xa438, 0xd048, 0xa438, 0xf016, 0xa438, 0xd702,
+ 0xa438, 0x4098, 0xa438, 0xd17a, 0xa438, 0xd04b, 0xa438, 0xf011,
+ 0xa438, 0xd17a, 0xa438, 0xd048, 0xa438, 0xf00e, 0xa438, 0xd702,
+ 0xa438, 0x4098, 0xa438, 0xd17a, 0xa438, 0xd04a, 0xa438, 0xf009,
+ 0xa438, 0xd17a, 0xa438, 0xd049, 0xa438, 0xf006, 0xa438, 0xd17a,
+ 0xa438, 0xd04b, 0xa438, 0xf003, 0xa438, 0xd17a, 0xa438, 0xd048,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b,
+ 0xa438, 0xd700, 0xa438, 0x5f7a, 0xa438, 0xd706, 0xa438, 0x5f2d,
+ 0xa438, 0xd700, 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113,
+ 0xa438, 0x6135, 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce08,
+ 0xa438, 0xf00a, 0xa438, 0xce08, 0xa438, 0xf008, 0xa438, 0xce08,
+ 0xa438, 0xf006, 0xa438, 0xce08, 0xa438, 0xf004, 0xa438, 0xce08,
+ 0xa438, 0xf002, 0xa438, 0xce08, 0xa438, 0x1000, 0xa438, 0x1ce7,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x0c0f, 0xa438, 0x0b02,
+ 0xa438, 0x0c38, 0xa438, 0x0c10, 0xa438, 0x9503, 0xa438, 0xa180,
+ 0xa438, 0xcd3d, 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x865f,
+ 0xa438, 0x37c9, 0xa438, 0x8655, 0xa438, 0x33a9, 0xa438, 0x864b,
+ 0xa438, 0xd700, 0xa438, 0x40c7, 0xa438, 0xd702, 0xa438, 0x6098,
+ 0xa438, 0xd11f, 0xa438, 0xd04a, 0xa438, 0xf01a, 0xa438, 0xd199,
+ 0xa438, 0xd04b, 0xa438, 0xf017, 0xa438, 0xd700, 0xa438, 0x40c7,
+ 0xa438, 0xd702, 0xa438, 0x6098, 0xa438, 0xd11f, 0xa438, 0xd04a,
+ 0xa438, 0xf010, 0xa438, 0xd199, 0xa438, 0xd04b, 0xa438, 0xf00d,
+ 0xa438, 0xd700, 0xa438, 0x40c7, 0xa438, 0xd702, 0xa438, 0x6098,
+ 0xa438, 0xd17a, 0xa438, 0xd04c, 0xa438, 0xf006, 0xa438, 0xd199,
+ 0xa438, 0xd04c, 0xa438, 0xf003, 0xa438, 0xd17a, 0xa438, 0xd04b,
+ 0xa438, 0x1800, 0xa438, 0x0e04, 0xa438, 0xd700, 0xa438, 0x37c9,
+ 0xa438, 0x8678, 0xa438, 0x33a9, 0xa438, 0x8670, 0xa438, 0xd705,
+ 0xa438, 0x4084, 0xa438, 0xd1f4, 0xa438, 0xd048, 0xa438, 0xf013,
+ 0xa438, 0xd1b7, 0xa438, 0xd04b, 0xa438, 0xf010, 0xa438, 0xd705,
+ 0xa438, 0x4084, 0xa438, 0xd1f4, 0xa438, 0xd048, 0xa438, 0xf00b,
+ 0xa438, 0xd1b7, 0xa438, 0xd04b, 0xa438, 0xf008, 0xa438, 0xd705,
+ 0xa438, 0x4084, 0xa438, 0xd1f4, 0xa438, 0xd048, 0xa438, 0xf003,
+ 0xa438, 0xd1b7, 0xa438, 0xd04b, 0xa438, 0x1800, 0xa438, 0x14cc,
+ 0xa438, 0xd700, 0xa438, 0x2b59, 0xa438, 0x8685, 0xa438, 0xf003,
+ 0xa438, 0x1800, 0xa438, 0x118f, 0xa438, 0x6060, 0xa438, 0x1800,
+ 0xa438, 0x1167, 0xa438, 0xd700, 0xa438, 0x60c7, 0xa438, 0xd704,
+ 0xa438, 0x609f, 0xa438, 0xd705, 0xa438, 0x4043, 0xa438, 0xf003,
+ 0xa438, 0x1800, 0xa438, 0x1150, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0x8702, 0xa438, 0x8011, 0xa438, 0x9503, 0xa438, 0x800a,
+ 0xa438, 0x81a0, 0xa438, 0x8302, 0xa438, 0x8480, 0xa438, 0x8686,
+ 0xa438, 0xcde0, 0xa438, 0xd1ff, 0xa438, 0xd049, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0xd705,
+ 0xa438, 0x417e, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa011,
+ 0xa438, 0x9503, 0xa438, 0xd1c8, 0xa438, 0xd045, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0xa702, 0xa438, 0x9503, 0xa438, 0xa00a,
+ 0xa438, 0xa1a0, 0xa438, 0xa480, 0xa438, 0xa686, 0xa438, 0xd705,
+ 0xa438, 0x605e, 0xa438, 0xa302, 0xa438, 0x9503, 0xa438, 0xd700,
+ 0xa438, 0x37c9, 0xa438, 0x86c9, 0xa438, 0x33a9, 0xa438, 0x86c5,
+ 0xa438, 0xd178, 0xa438, 0xd04b, 0xa438, 0x1800, 0xa438, 0x115d,
+ 0xa438, 0xd1c8, 0xa438, 0xd04b, 0xa438, 0x1800, 0xa438, 0x115d,
+ 0xa438, 0xd1e6, 0xa438, 0xd04b, 0xa438, 0x1800, 0xa438, 0x115d,
+ 0xa438, 0xd71f, 0xa438, 0x6080, 0xa438, 0xd704, 0xa438, 0x1800,
+ 0xa438, 0x1bc0, 0xa438, 0x1800, 0xa438, 0x1bc4, 0xa438, 0x4134,
+ 0xa438, 0xd115, 0xa438, 0xd04f, 0xa438, 0x1000, 0xa438, 0x1d0b,
+ 0xa438, 0x1000, 0xa438, 0x893a, 0xa438, 0x1800, 0xa438, 0x01f2,
+ 0xa438, 0x1000, 0xa438, 0x1d0b, 0xa438, 0x1000, 0xa438, 0x893a,
+ 0xa438, 0x1800, 0xa438, 0x01f9, 0xa438, 0x2969, 0xa438, 0x86e9,
+ 0xa438, 0xd700, 0xa438, 0x606b, 0xa438, 0xd701, 0xa438, 0x60b4,
+ 0xa438, 0x1000, 0xa438, 0x893a, 0xa438, 0x1800, 0xa438, 0x0551,
+ 0xa438, 0xd196, 0xa438, 0xd04d, 0xa438, 0x1000, 0xa438, 0x893a,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x5fba,
+ 0xa438, 0x8802, 0xa438, 0xcd22, 0xa438, 0xd17a, 0xa438, 0xd05a,
+ 0xa438, 0xa501, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd701,
+ 0xa438, 0x5fbd, 0xa438, 0x8501, 0xa438, 0xa502, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd702, 0xa438, 0x5fbe, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x8380, 0xa438, 0x9503, 0xa438, 0xd403,
+ 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0x8502, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x8a80, 0xa438, 0x9503, 0xa438, 0xd40c,
+ 0xa438, 0x1000, 0xa438, 0x1cc8, 0xa438, 0xd707, 0xa438, 0x428f,
+ 0xa438, 0xd700, 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113,
+ 0xa438, 0x6135, 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce06,
+ 0xa438, 0xf01d, 0xa438, 0xce06, 0xa438, 0xf01b, 0xa438, 0xce06,
+ 0xa438, 0xf019, 0xa438, 0xce06, 0xa438, 0xf017, 0xa438, 0xce06,
+ 0xa438, 0xf015, 0xa438, 0xce06, 0xa438, 0xf013, 0xa438, 0xd700,
+ 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135,
+ 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce02, 0xa438, 0xf00a,
+ 0xa438, 0xce02, 0xa438, 0xf008, 0xa438, 0xce01, 0xa438, 0xf006,
+ 0xa438, 0xce01, 0xa438, 0xf004, 0xa438, 0xce01, 0xa438, 0xf002,
+ 0xa438, 0xce01, 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0xa340,
+ 0xa438, 0x1000, 0xa438, 0x1d47, 0xa438, 0xa110, 0xa438, 0x1000,
+ 0xa438, 0x1cef, 0xa438, 0x8110, 0xa438, 0x1000, 0xa438, 0x1d50,
+ 0xa438, 0xa304, 0xa438, 0xa440, 0xa438, 0xa8c0, 0xa438, 0xd707,
+ 0xa438, 0x40cf, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8d07,
+ 0xa438, 0x9503, 0xa438, 0xa00a, 0xa438, 0xa120, 0xa438, 0xa310,
+ 0xa438, 0x0ca0, 0xa438, 0x0480, 0xa438, 0xd700, 0xa438, 0x2969,
+ 0xa438, 0x05b7, 0xa438, 0x60a4, 0xa438, 0xd704, 0xa438, 0x407d,
+ 0xa438, 0xa308, 0xa438, 0xf002, 0xa438, 0x8308, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x0c60, 0xa438, 0x0340, 0xa438, 0x9503,
+ 0xa438, 0xcd23, 0xa438, 0xd162, 0xa438, 0xd048, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0x8840,
+ 0xa438, 0xd1c4, 0xa438, 0xd045, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0xd706, 0xa438, 0x6327,
+ 0xa438, 0xd700, 0xa438, 0x5f3b, 0xa438, 0x88c0, 0xa438, 0x800a,
+ 0xa438, 0x8120, 0xa438, 0x8358, 0xa438, 0x8308, 0xa438, 0x84a0,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8360, 0xa438, 0x9503,
+ 0xa438, 0xd707, 0xa438, 0x2f7d, 0xa438, 0x86f7, 0xa438, 0xd17a,
+ 0xa438, 0xd05a, 0xa438, 0xa501, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd701, 0xa438, 0x5fbd, 0xa438, 0x8501, 0xa438, 0xff8b,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x5fb4,
+ 0xa438, 0xb920, 0xa438, 0xcd24, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd71f, 0xa438, 0x7fb4, 0xa438, 0x9920, 0xa438, 0x9a20,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x6065,
+ 0xa438, 0x5f94, 0xa438, 0xffd9, 0xa438, 0xb820, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0xd71f, 0xa438, 0x7fa5, 0xa438, 0x9820,
+ 0xa438, 0x800a, 0xa438, 0x8120, 0xa438, 0x1000, 0xa438, 0x1d47,
+ 0xa438, 0xa108, 0xa438, 0x1000, 0xa438, 0x1cef, 0xa438, 0x8108,
+ 0xa438, 0x1000, 0xa438, 0x1d50, 0xa438, 0xd700, 0xa438, 0x2969,
+ 0xa438, 0x87b8, 0xa438, 0x6144, 0xa438, 0xd704, 0xa438, 0x60bd,
+ 0xa438, 0xd707, 0xa438, 0x417f, 0xa438, 0x4140, 0xa438, 0xf006,
+ 0xa438, 0x82fc, 0xa438, 0xa201, 0xa438, 0xf007, 0xa438, 0xa2fc,
+ 0xa438, 0xf005, 0xa438, 0x0cfc, 0xa438, 0x02bc, 0xa438, 0xf002,
+ 0xa438, 0xa2fc, 0xa438, 0xa304, 0xa438, 0x8880, 0xa438, 0x0cc0,
+ 0xa438, 0x0440, 0xa438, 0xcd25, 0xa438, 0xd700, 0xa438, 0x2969,
+ 0xa438, 0x87d7, 0xa438, 0x6224, 0xa438, 0xd704, 0xa438, 0x605d,
+ 0xa438, 0xf004, 0xa438, 0xd704, 0xa438, 0x613b, 0xa438, 0xf00b,
+ 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x87d7, 0xa438, 0x60eb,
+ 0xa438, 0xd707, 0xa438, 0x40bf, 0xa438, 0x4080, 0xa438, 0x8310,
+ 0xa438, 0x1000, 0xa438, 0x1d15, 0xa438, 0xd700, 0xa438, 0x60cf,
+ 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135, 0xa438, 0x6157,
+ 0xa438, 0xf00b, 0xa438, 0xce06, 0xa438, 0xf00a, 0xa438, 0xce06,
+ 0xa438, 0xf008, 0xa438, 0xce06, 0xa438, 0xf006, 0xa438, 0xce06,
+ 0xa438, 0xf004, 0xa438, 0xce06, 0xa438, 0xf002, 0xa438, 0xce06,
+ 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0x8c07, 0xa438, 0x0c07, 0xa438, 0x0d03, 0xa438, 0xd700,
+ 0xa438, 0x2969, 0xa438, 0x87f9, 0xa438, 0x60c4, 0xa438, 0xd704,
+ 0xa438, 0x409d, 0xa438, 0x8b0f, 0xa438, 0x8c38, 0xa438, 0xf003,
+ 0xa438, 0xab07, 0xa438, 0xac38, 0xa438, 0x0c07, 0xa438, 0x0d03,
+ 0xa438, 0x9503, 0xa438, 0xa810, 0xa438, 0xa00a, 0xa438, 0xa120,
+ 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x8807, 0xa438, 0x6064,
+ 0xa438, 0xd704, 0xa438, 0x607d, 0xa438, 0xa4a0, 0xa438, 0xa605,
+ 0xa438, 0xd17a, 0xa438, 0xd049, 0xa438, 0xd700, 0xa438, 0x2969,
+ 0xa438, 0x8819, 0xa438, 0x6164, 0xa438, 0xd704, 0xa438, 0x413d,
+ 0xa438, 0xa00a, 0xa438, 0xa120, 0xa438, 0xd704, 0xa438, 0x407b,
+ 0xa438, 0x8310, 0xa438, 0xf002, 0xa438, 0xa310, 0xa438, 0xa403,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b,
+ 0xa438, 0xd700, 0xa438, 0x409a, 0xa438, 0xd706, 0xa438, 0x4046,
+ 0xa438, 0xf014, 0xa438, 0xd704, 0xa438, 0x6055, 0xa438, 0xfff5,
+ 0xa438, 0x1000, 0xa438, 0x1d47, 0xa438, 0x800a, 0xa438, 0x8120,
+ 0xa438, 0x8310, 0xa438, 0xa380, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd705, 0xa438, 0x5f77,
+ 0xa438, 0x8380, 0xa438, 0x1000, 0xa438, 0x1d50, 0xa438, 0xffdd,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8b0f, 0xa438, 0x8c38,
+ 0xa438, 0x8d38, 0xa438, 0x9503, 0xa438, 0xcd26, 0xa438, 0xd704,
+ 0xa438, 0x63d1, 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x8858,
+ 0xa438, 0x37c9, 0xa438, 0x8855, 0xa438, 0x33a9, 0xa438, 0x884d,
+ 0xa438, 0xd705, 0xa438, 0x6084, 0xa438, 0xd18a, 0xa438, 0xd04b,
+ 0xa438, 0xf014, 0xa438, 0xd14c, 0xa438, 0xd04b, 0xa438, 0xf011,
+ 0xa438, 0xd705, 0xa438, 0x6084, 0xa438, 0xd17a, 0xa438, 0xd04b,
+ 0xa438, 0xf00c, 0xa438, 0xd15c, 0xa438, 0xd04b, 0xa438, 0xf009,
+ 0xa438, 0xd1c6, 0xa438, 0xd04b, 0xa438, 0xf006, 0xa438, 0xd1b7,
+ 0xa438, 0xd04a, 0xa438, 0xf003, 0xa438, 0xd1c4, 0xa438, 0xd046,
+ 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x886b, 0xa438, 0x6164,
+ 0xa438, 0xd704, 0xa438, 0x413d, 0xa438, 0xa00a, 0xa438, 0xa120,
+ 0xa438, 0xd704, 0xa438, 0x407b, 0xa438, 0x8310, 0xa438, 0xf002,
+ 0xa438, 0xa310, 0xa438, 0xa403, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd700, 0xa438, 0x409a,
+ 0xa438, 0xd706, 0xa438, 0x4048, 0xa438, 0xf014, 0xa438, 0xd704,
+ 0xa438, 0x6055, 0xa438, 0xfff5, 0xa438, 0x1000, 0xa438, 0x1d47,
+ 0xa438, 0x800a, 0xa438, 0x8120, 0xa438, 0x8310, 0xa438, 0xa380,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b,
+ 0xa438, 0xd705, 0xa438, 0x5f77, 0xa438, 0x8380, 0xa438, 0x1000,
+ 0xa438, 0x1d50, 0xa438, 0xffdd, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0x0c07, 0xa438, 0x0d01, 0xa438, 0x9503, 0xa438, 0xd700,
+ 0xa438, 0x60cf, 0xa438, 0x60f1, 0xa438, 0x6113, 0xa438, 0x6135,
+ 0xa438, 0x6157, 0xa438, 0xf00b, 0xa438, 0xce08, 0xa438, 0xf00a,
+ 0xa438, 0xce08, 0xa438, 0xf008, 0xa438, 0xce08, 0xa438, 0xf006,
+ 0xa438, 0xce08, 0xa438, 0xf004, 0xa438, 0xce08, 0xa438, 0xf002,
+ 0xa438, 0xce08, 0xa438, 0x1000, 0xa438, 0x1ce7, 0xa438, 0xa180,
+ 0xa438, 0xcd27, 0xa438, 0xd704, 0xa438, 0x6331, 0xa438, 0xd700,
+ 0xa438, 0x37c9, 0xa438, 0x88b9, 0xa438, 0x33a9, 0xa438, 0x88b1,
+ 0xa438, 0xd705, 0xa438, 0x6084, 0xa438, 0xd17a, 0xa438, 0xd04a,
+ 0xa438, 0xf011, 0xa438, 0xd13d, 0xa438, 0xd04a, 0xa438, 0xf00e,
+ 0xa438, 0xd705, 0xa438, 0x6084, 0xa438, 0xd1b7, 0xa438, 0xd049,
+ 0xa438, 0xf009, 0xa438, 0xd17a, 0xa438, 0xd049, 0xa438, 0xf006,
+ 0xa438, 0xd17a, 0xa438, 0xd04a, 0xa438, 0xf003, 0xa438, 0xd128,
+ 0xa438, 0xd044, 0xa438, 0xd13b, 0xa438, 0xd055, 0xa438, 0xd700,
+ 0xa438, 0x2969, 0xa438, 0x88ce, 0xa438, 0x6164, 0xa438, 0xd704,
+ 0xa438, 0x413d, 0xa438, 0xa00a, 0xa438, 0xa1a0, 0xa438, 0xd704,
+ 0xa438, 0x407b, 0xa438, 0x8310, 0xa438, 0xf002, 0xa438, 0xa310,
+ 0xa438, 0xa403, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000,
+ 0xa438, 0x1d2b, 0xa438, 0xd700, 0xa438, 0x405b, 0xa438, 0xf014,
+ 0xa438, 0xd704, 0xa438, 0x6055, 0xa438, 0xfff7, 0xa438, 0x1000,
+ 0xa438, 0x1d47, 0xa438, 0x800a, 0xa438, 0x81a0, 0xa438, 0x8310,
+ 0xa438, 0xa380, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000,
+ 0xa438, 0x1d2b, 0xa438, 0xd705, 0xa438, 0x5f77, 0xa438, 0x8380,
+ 0xa438, 0x1000, 0xa438, 0x1d50, 0xa438, 0xffdf, 0xa438, 0xa302,
+ 0xa438, 0xd700, 0xa438, 0x2969, 0xa438, 0x0740, 0xa438, 0x6184,
+ 0xa438, 0xd704, 0xa438, 0x415d, 0xa438, 0xa00a, 0xa438, 0xa1a0,
+ 0xa438, 0xd704, 0xa438, 0x407b, 0xa438, 0x8310, 0xa438, 0xf002,
+ 0xa438, 0xa310, 0xa438, 0xa302, 0xa438, 0xa403, 0xa438, 0x1000,
+ 0xa438, 0x1cd2, 0xa438, 0x1000, 0xa438, 0x1d2b, 0xa438, 0xd700,
+ 0xa438, 0x409a, 0xa438, 0xd706, 0xa438, 0x4048, 0xa438, 0xf014,
+ 0xa438, 0xd704, 0xa438, 0x6055, 0xa438, 0xfff5, 0xa438, 0x1000,
+ 0xa438, 0x1d47, 0xa438, 0x800a, 0xa438, 0x81a0, 0xa438, 0x8312,
+ 0xa438, 0xa380, 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0x1000,
+ 0xa438, 0x1d2b, 0xa438, 0xd705, 0xa438, 0x5f77, 0xa438, 0x8380,
+ 0xa438, 0x1000, 0xa438, 0x1d50, 0xa438, 0xffdc, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x0c0f, 0xa438, 0x0b02, 0xa438, 0x0c38,
+ 0xa438, 0x0c10, 0xa438, 0x9503, 0xa438, 0xcd28, 0xa438, 0xd704,
+ 0xa438, 0x6331, 0xa438, 0xd700, 0xa438, 0x37c9, 0xa438, 0x8933,
+ 0xa438, 0x33a9, 0xa438, 0x892b, 0xa438, 0xd705, 0xa438, 0x6084,
+ 0xa438, 0xd199, 0xa438, 0xd04a, 0xa438, 0xf011, 0xa438, 0xd13d,
+ 0xa438, 0xd04a, 0xa438, 0xf00e, 0xa438, 0xd705, 0xa438, 0x6084,
+ 0xa438, 0xd17a, 0xa438, 0xd04a, 0xa438, 0xf009, 0xa438, 0xd13d,
+ 0xa438, 0xd04a, 0xa438, 0xf006, 0xa438, 0xd199, 0xa438, 0xd04a,
+ 0xa438, 0xf003, 0xa438, 0xd128, 0xa438, 0xd044, 0xa438, 0x1800,
+ 0xa438, 0x0776, 0xa438, 0xd208, 0xa438, 0x0c09, 0xa438, 0x1301,
+ 0xa438, 0x1000, 0xa438, 0x1cd2, 0xa438, 0xd701, 0xa438, 0x5fa3,
+ 0xa438, 0xb302, 0xa438, 0xd200, 0xa438, 0x0800, 0xa438, 0xd705,
+ 0xa438, 0x6064, 0xa438, 0x1800, 0xa438, 0x140a, 0xa438, 0x8810,
+ 0xa438, 0xd199, 0xa438, 0xd04b, 0xa438, 0x1000, 0xa438, 0x1cd2,
+ 0xa438, 0xd700, 0xa438, 0x5fba, 0xa438, 0x1800, 0xa438, 0x140a,
+ 0xa438, 0x8910, 0xa438, 0xd704, 0xa438, 0x61a8, 0xa438, 0x8480,
+ 0xa438, 0x8604, 0xa438, 0x8302, 0xa438, 0x81a0, 0xa438, 0xd703,
+ 0xa438, 0x4112, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa990,
+ 0xa438, 0x9503, 0xa438, 0xb904, 0xa438, 0xf002, 0xa438, 0x0000,
+ 0xa438, 0x0800, 0xa436, 0xA10E, 0xa438, 0x1de8, 0xa436, 0xA10C,
+ 0xa438, 0x1352, 0xa436, 0xA10A, 0xa438, 0x0545, 0xa436, 0xA108,
+ 0xa438, 0x01ed, 0xa436, 0xA106, 0xa438, 0x1bbf, 0xa436, 0xA104,
+ 0xa438, 0x114b, 0xa436, 0xA102, 0xa438, 0x14bf, 0xa436, 0xA100,
+ 0xa438, 0x07ce, 0xa436, 0xA110, 0xa438, 0x00ff, 0xa436, 0xA016,
+ 0xa438, 0x0020, 0xa436, 0xA012, 0xa438, 0x1ff8, 0xa436, 0xA014,
0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa436, 0xA164, 0xa438, 0x07fc,
- 0xa436, 0xA166, 0xa438, 0x143d, 0xa436, 0xA168, 0xa438, 0x3fff,
- 0xa436, 0xA16A, 0xa438, 0x3fff, 0xa436, 0xA16C, 0xa438, 0x3fff,
- 0xa436, 0xA16E, 0xa438, 0x3fff, 0xa436, 0xA170, 0xa438, 0x3fff,
- 0xa436, 0xA172, 0xa438, 0x3fff, 0xa436, 0xA162, 0xa438, 0x0003,
- 0xa436, 0xb87c, 0xa438, 0x8994, 0xa436, 0xb87e, 0xa438, 0xaf89,
- 0xa438, 0xacaf, 0xa438, 0x89e4, 0xa438, 0xaf89, 0xa438, 0xecaf,
- 0xa438, 0x8a04, 0xa438, 0xaf8a, 0xa438, 0x2eaf, 0xa438, 0x8a4a,
- 0xa438, 0xaf8d, 0xa438, 0x31af, 0xa438, 0x8dc6, 0xa438, 0x1f55,
- 0xa438, 0xe18f, 0xa438, 0xe3a1, 0xa438, 0x0007, 0xa438, 0xee86,
+ 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
+ 0xa436, 0xA164, 0xa438, 0x143d, 0xa436, 0xA166, 0xa438, 0x14d7,
+ 0xa436, 0xA168, 0xa438, 0x3fff, 0xa436, 0xA16A, 0xa438, 0x3fff,
+ 0xa436, 0xA16C, 0xa438, 0x3fff, 0xa436, 0xA16E, 0xa438, 0x3fff,
+ 0xa436, 0xA170, 0xa438, 0x3fff, 0xa436, 0xA172, 0xa438, 0x3fff,
+ 0xa436, 0xA162, 0xa438, 0x0003, 0xa436, 0xb87c, 0xa438, 0x8994,
+ 0xa436, 0xb87e, 0xa438, 0xaf89, 0xa438, 0xacaf, 0xa438, 0x89e8,
+ 0xa438, 0xaf89, 0xa438, 0xf0af, 0xa438, 0x8a08, 0xa438, 0xaf8a,
+ 0xa438, 0x32af, 0xa438, 0x8a4e, 0xa438, 0xaf8d, 0xa438, 0x44af,
+ 0xa438, 0x8de9, 0xa438, 0x1f55, 0xa438, 0xe18f, 0xa438, 0xe3a1,
+ 0xa438, 0x000b, 0xa438, 0xee8f, 0xa438, 0xd700, 0xa438, 0xee86,
0xa438, 0xe900, 0xa438, 0xaf4f, 0xa438, 0x9ead, 0xa438, 0x281b,
0xa438, 0xe18f, 0xa438, 0xfcef, 0xa438, 0x71bf, 0xa438, 0x74f6,
0xa438, 0x027e, 0xa438, 0xd2ef, 0xa438, 0x641c, 0xa438, 0x670d,
0xa438, 0x67ef, 0xa438, 0x461f, 0xa438, 0x00bf, 0xa438, 0x74f6,
0xa438, 0x027e, 0xa438, 0xdee1, 0xa438, 0x8fe3, 0xa438, 0x0d11,
- 0xa438, 0xe58f, 0xa438, 0xe313, 0xa438, 0xaeca, 0xa438, 0x028d,
- 0xa438, 0xd1d3, 0xa438, 0x01af, 0xa438, 0x40d1, 0xa438, 0xbf7a,
+ 0xa438, 0xe58f, 0xa438, 0xe313, 0xa438, 0xaec6, 0xa438, 0x028d,
+ 0xa438, 0xfbd3, 0xa438, 0x01af, 0xa438, 0x40d1, 0xa438, 0xbf7a,
0xa438, 0x6102, 0xa438, 0x7d44, 0xa438, 0xa100, 0xa438, 0x09e0,
0xa438, 0x8ffa, 0xa438, 0xe18f, 0xa438, 0xfbaf, 0xa438, 0x683d,
0xa438, 0x027f, 0xa438, 0xa9af, 0xa438, 0x682c, 0xa438, 0xbf8e,
- 0xa438, 0x4102, 0xa438, 0x7d44, 0xa438, 0xe58f, 0xa438, 0xecbf,
+ 0xa438, 0x6b02, 0xa438, 0x7d44, 0xa438, 0xe58f, 0xa438, 0xecbf,
0xa438, 0x74cc, 0xa438, 0x027d, 0xa438, 0x44e3, 0xa438, 0x8fed,
0xa438, 0x0d31, 0xa438, 0xf63f, 0xa438, 0x0d11, 0xa438, 0xf62f,
- 0xa438, 0x1b13, 0xa438, 0xad2f, 0xa438, 0x06bf, 0xa438, 0x8e41,
+ 0xa438, 0x1b13, 0xa438, 0xad2f, 0xa438, 0x06bf, 0xa438, 0x8e6b,
0xa438, 0x027c, 0xa438, 0xf9d1, 0xa438, 0x01af, 0xa438, 0x5974,
0xa438, 0xee88, 0xa438, 0x8600, 0xa438, 0xe08f, 0xa438, 0xebad,
- 0xa438, 0x200b, 0xa438, 0xe18f, 0xa438, 0xecbf, 0xa438, 0x8e41,
+ 0xa438, 0x200b, 0xa438, 0xe18f, 0xa438, 0xecbf, 0xa438, 0x8e6b,
0xa438, 0x027d, 0xa438, 0x25ae, 0xa438, 0x04ee, 0xa438, 0x8feb,
0xa438, 0x01af, 0xa438, 0x5945, 0xa438, 0xad28, 0xa438, 0x2ce0,
- 0xa438, 0x8fea, 0xa438, 0xa000, 0xa438, 0x0502, 0xa438, 0x8af0,
- 0xa438, 0xae1e, 0xa438, 0xa001, 0xa438, 0x0502, 0xa438, 0x8b9f,
- 0xa438, 0xae16, 0xa438, 0xa002, 0xa438, 0x0502, 0xa438, 0x8c0f,
- 0xa438, 0xae0e, 0xa438, 0xa003, 0xa438, 0x0502, 0xa438, 0x8c95,
- 0xa438, 0xae06, 0xa438, 0xa004, 0xa438, 0x0302, 0xa438, 0x8d08,
- 0xa438, 0xaf63, 0xa438, 0x8902, 0xa438, 0x8a7f, 0xa438, 0xaf63,
+ 0xa438, 0x8fea, 0xa438, 0xa000, 0xa438, 0x0502, 0xa438, 0x8af4,
+ 0xa438, 0xae1e, 0xa438, 0xa001, 0xa438, 0x0502, 0xa438, 0x8ba3,
+ 0xa438, 0xae16, 0xa438, 0xa002, 0xa438, 0x0502, 0xa438, 0x8c13,
+ 0xa438, 0xae0e, 0xa438, 0xa003, 0xa438, 0x0502, 0xa438, 0x8c9f,
+ 0xa438, 0xae06, 0xa438, 0xa004, 0xa438, 0x0302, 0xa438, 0x8d1b,
+ 0xa438, 0xaf63, 0xa438, 0x8902, 0xa438, 0x8a83, 0xa438, 0xaf63,
0xa438, 0x81f8, 0xa438, 0xef49, 0xa438, 0xf8e0, 0xa438, 0x8015,
0xa438, 0xad21, 0xa438, 0x19bf, 0xa438, 0x7bd8, 0xa438, 0x027c,
0xa438, 0xf9bf, 0xa438, 0x7bf3, 0xa438, 0x027d, 0xa438, 0x44bf,
@@ -222,16 +816,16 @@ static const u16 phy_mcu_ram_code_8127a_1[] = {
0xa438, 0xee8f, 0xa438, 0xea00, 0xa438, 0xe080, 0xa438, 0x16ad,
0xa438, 0x233d, 0xa438, 0xbf7b, 0xa438, 0xf302, 0xa438, 0x7d44,
0xa438, 0xbf7a, 0xa438, 0x9402, 0xa438, 0x7cf9, 0xa438, 0xbf8e,
- 0xa438, 0x4402, 0xa438, 0x7cf9, 0xa438, 0xbf7a, 0xa438, 0xa602,
+ 0xa438, 0x6e02, 0xa438, 0x7cf9, 0xa438, 0xbf7a, 0xa438, 0xa602,
0xa438, 0x7cf9, 0xa438, 0xbf7a, 0xa438, 0xa302, 0xa438, 0x7cf9,
0xa438, 0xbf7a, 0xa438, 0xa902, 0xa438, 0x7cf9, 0xa438, 0xbf7a,
- 0xa438, 0xac02, 0xa438, 0x7cf9, 0xa438, 0xbf8e, 0xa438, 0x4702,
- 0xa438, 0x7cf9, 0xa438, 0xbf8e, 0xa438, 0x4a02, 0xa438, 0x7cf9,
+ 0xa438, 0xac02, 0xa438, 0x7cf9, 0xa438, 0xbf8e, 0xa438, 0x7102,
+ 0xa438, 0x7cf9, 0xa438, 0xbf8e, 0xa438, 0x7402, 0xa438, 0x7cf9,
0xa438, 0x0263, 0xa438, 0x8eee, 0xa438, 0x8fea, 0xa438, 0x00bf,
0xa438, 0x7c02, 0xa438, 0x027c, 0xa438, 0xf9fc, 0xa438, 0xef94,
0xa438, 0xfc04, 0xa438, 0xf8f9, 0xa438, 0xfbef, 0xa438, 0x79fb,
0xa438, 0xe080, 0xa438, 0x15ac, 0xa438, 0x2103, 0xa438, 0xaf8b,
- 0xa438, 0x70ee, 0xa438, 0x8888, 0xa438, 0x00ee, 0xa438, 0x888a,
+ 0xa438, 0x74ee, 0xa438, 0x8888, 0xa438, 0x00ee, 0xa438, 0x888a,
0xa438, 0x00ee, 0xa438, 0x888b, 0xa438, 0x00bf, 0xa438, 0x7bd8,
0xa438, 0x027d, 0xa438, 0x02bf, 0xa438, 0x6000, 0xa438, 0xd788,
0xa438, 0x881f, 0xa438, 0x44d4, 0xa438, 0x000c, 0xa438, 0x0273,
@@ -247,7 +841,7 @@ static const u16 phy_mcu_ram_code_8127a_1[] = {
0xa438, 0x0004, 0xa438, 0xf302, 0xa438, 0x63cd, 0xa438, 0xee8f,
0xa438, 0xea01, 0xa438, 0xe080, 0xa438, 0x16ad, 0xa438, 0x2319,
0xa438, 0xee88, 0xa438, 0x8800, 0xa438, 0xee88, 0xa438, 0x8a00,
- 0xa438, 0xee88, 0xa438, 0x8b00, 0xa438, 0xbf8e, 0xa438, 0x4402,
+ 0xa438, 0xee88, 0xa438, 0x8b00, 0xa438, 0xbf8e, 0xa438, 0x6e02,
0xa438, 0x7d02, 0xa438, 0x0263, 0xa438, 0xcdee, 0xa438, 0x8fea,
0xa438, 0x0102, 0xa438, 0x70de, 0xa438, 0xbf7c, 0xa438, 0x0202,
0xa438, 0x7d02, 0xa438, 0xffef, 0xa438, 0x97ff, 0xa438, 0xfdfc,
@@ -261,293 +855,298 @@ static const u16 phy_mcu_ram_code_8127a_1[] = {
0xa438, 0x8016, 0xa438, 0xad23, 0xa438, 0x1602, 0xa438, 0x7c86,
0xa438, 0xef47, 0xa438, 0xe48f, 0xa438, 0xe9e5, 0xa438, 0x8fe8,
0xa438, 0xee8f, 0xa438, 0xea02, 0xa438, 0xae0b, 0xa438, 0x028c,
- 0xa438, 0x2eae, 0xa438, 0x0602, 0xa438, 0x8bfe, 0xa438, 0x0270,
+ 0xa438, 0x32ae, 0xa438, 0x0602, 0xa438, 0x8c02, 0xa438, 0x0270,
0xa438, 0xdefe, 0xa438, 0xef96, 0xa438, 0xfefd, 0xa438, 0xfc04,
0xa438, 0xf8e1, 0xa438, 0x8888, 0xa438, 0x11e5, 0xa438, 0x8888,
0xa438, 0xad2a, 0xa438, 0x04ee, 0xa438, 0x8888, 0xa438, 0x00fc,
0xa438, 0x04f8, 0xa438, 0xfafb, 0xa438, 0xe08f, 0xa438, 0xe9e1,
0xa438, 0x8fe8, 0xa438, 0xef64, 0xa438, 0x1f00, 0xa438, 0xe18f,
0xa438, 0xe6ef, 0xa438, 0x7402, 0xa438, 0x7ca1, 0xa438, 0xad50,
- 0xa438, 0x0302, 0xa438, 0x8c2e, 0xa438, 0xfffe, 0xa438, 0xfc04,
- 0xa438, 0xf8fa, 0xa438, 0xef69, 0xa438, 0xfbbf, 0xa438, 0x7bf3,
- 0xa438, 0x027d, 0xa438, 0x44ac, 0xa438, 0x284c, 0xa438, 0x0264,
- 0xa438, 0x1cbf, 0xa438, 0x8e47, 0xa438, 0x027d, 0xa438, 0x02bf,
- 0xa438, 0x8e4a, 0xa438, 0x027d, 0xa438, 0x02d1, 0xa438, 0x43b1,
- 0xa438, 0xfebf, 0xa438, 0x7aa6, 0xa438, 0x027c, 0xa438, 0xf9bf,
- 0xa438, 0x7aa3, 0xa438, 0x027c, 0xa438, 0xf9bf, 0xa438, 0x7aa9,
- 0xa438, 0x027c, 0xa438, 0xf9bf, 0xa438, 0x7aac, 0xa438, 0x027d,
- 0xa438, 0x02d1, 0xa438, 0x80e0, 0xa438, 0x8888, 0xa438, 0x100e,
- 0xa438, 0x11b0, 0xa438, 0xfcbf, 0xa438, 0x7a94, 0xa438, 0x027d,
- 0xa438, 0x2502, 0xa438, 0x7c86, 0xa438, 0xef47, 0xa438, 0xe48f,
- 0xa438, 0xe9e5, 0xa438, 0x8fe8, 0xa438, 0xee8f, 0xa438, 0xea03,
- 0xa438, 0xae07, 0xa438, 0xee8f, 0xa438, 0xea01, 0xa438, 0x0270,
- 0xa438, 0xdeff, 0xa438, 0xef96, 0xa438, 0xfefc, 0xa438, 0x04f8,
- 0xa438, 0xf9fa, 0xa438, 0xfbef, 0xa438, 0x79fb, 0xa438, 0xbf7a,
- 0xa438, 0x9402, 0xa438, 0x7d44, 0xa438, 0xef21, 0xa438, 0xbf7a,
- 0xa438, 0xb802, 0xa438, 0x7d44, 0xa438, 0x1f21, 0xa438, 0x9e19,
- 0xa438, 0xe08f, 0xa438, 0xe9e1, 0xa438, 0x8fe8, 0xa438, 0xef64,
- 0xa438, 0x1f00, 0xa438, 0xe18f, 0xa438, 0xe4ef, 0xa438, 0x7402,
- 0xa438, 0x7ca1, 0xa438, 0xad50, 0xa438, 0x3dee, 0xa438, 0x8fe7,
- 0xa438, 0x01bf, 0xa438, 0x7a94, 0xa438, 0x027c, 0xa438, 0xf9bf,
+ 0xa438, 0x0302, 0xa438, 0x8c32, 0xa438, 0xfffe, 0xa438, 0xfc04,
+ 0xa438, 0xf8fa, 0xa438, 0xef69, 0xa438, 0xfbe0, 0xa438, 0x8fd6,
+ 0xa438, 0xac20, 0xa438, 0x55bf, 0xa438, 0x7bf3, 0xa438, 0x027d,
+ 0xa438, 0x44ac, 0xa438, 0x284c, 0xa438, 0x0264, 0xa438, 0x1cbf,
+ 0xa438, 0x8e71, 0xa438, 0x027d, 0xa438, 0x02bf, 0xa438, 0x8e74,
+ 0xa438, 0x027d, 0xa438, 0x02d1, 0xa438, 0x43b1, 0xa438, 0xfebf,
0xa438, 0x7aa6, 0xa438, 0x027c, 0xa438, 0xf9bf, 0xa438, 0x7aa3,
0xa438, 0x027c, 0xa438, 0xf9bf, 0xa438, 0x7aa9, 0xa438, 0x027c,
- 0xa438, 0xf9bf, 0xa438, 0x7aac, 0xa438, 0x027d, 0xa438, 0x02bf,
- 0xa438, 0x8e47, 0xa438, 0x027c, 0xa438, 0xf9bf, 0xa438, 0x8e4a,
- 0xa438, 0x027c, 0xa438, 0xf902, 0xa438, 0x7c86, 0xa438, 0xef47,
- 0xa438, 0xe48f, 0xa438, 0xe9e5, 0xa438, 0x8fe8, 0xa438, 0xee8f,
- 0xa438, 0xea04, 0xa438, 0xffef, 0xa438, 0x97ff, 0xa438, 0xfefd,
- 0xa438, 0xfc04, 0xa438, 0xf8fa, 0xa438, 0xfbe0, 0xa438, 0x8fe9,
- 0xa438, 0xe18f, 0xa438, 0xe8ef, 0xa438, 0x641f, 0xa438, 0x00e1,
- 0xa438, 0x8fe5, 0xa438, 0xef74, 0xa438, 0x027c, 0xa438, 0xa1ad,
- 0xa438, 0x500d, 0xa438, 0x0263, 0xa438, 0x8e02, 0xa438, 0x8bfe,
+ 0xa438, 0xf9bf, 0xa438, 0x7aac, 0xa438, 0x027d, 0xa438, 0x02d1,
+ 0xa438, 0x80e0, 0xa438, 0x8888, 0xa438, 0x100e, 0xa438, 0x11b0,
+ 0xa438, 0xfcbf, 0xa438, 0x7a94, 0xa438, 0x027d, 0xa438, 0x2502,
+ 0xa438, 0x7c86, 0xa438, 0xef47, 0xa438, 0xe48f, 0xa438, 0xe9e5,
+ 0xa438, 0x8fe8, 0xa438, 0xee8f, 0xa438, 0xea03, 0xa438, 0xae07,
0xa438, 0xee8f, 0xa438, 0xea01, 0xa438, 0x0270, 0xa438, 0xdeff,
- 0xa438, 0xfefc, 0xa438, 0x04e3, 0xa438, 0x8fd8, 0xa438, 0xe787,
- 0xa438, 0x75e4, 0xa438, 0x8fe1, 0xa438, 0xe58f, 0xa438, 0xe2bf,
- 0xa438, 0x8fd9, 0xa438, 0xef32, 0xa438, 0x0c31, 0xa438, 0x1a93,
- 0xa438, 0xdc19, 0xa438, 0xdd02, 0xa438, 0x7fa9, 0xa438, 0xac2a,
- 0xa438, 0x18e0, 0xa438, 0x8fe1, 0xa438, 0xe18f, 0xa438, 0xe2ef,
- 0xa438, 0x74e1, 0xa438, 0x8775, 0xa438, 0x1f00, 0xa438, 0xef64,
- 0xa438, 0xe18f, 0xa438, 0xd8e5, 0xa438, 0x8775, 0xa438, 0xaf4d,
- 0xa438, 0x72bf, 0xa438, 0x7b3c, 0xa438, 0xef32, 0xa438, 0x4b03,
- 0xa438, 0x1a93, 0xa438, 0x027d, 0xa438, 0x44ef, 0xa438, 0x64e1,
- 0xa438, 0x8fff, 0xa438, 0x1f00, 0xa438, 0xef74, 0xa438, 0x1b67,
- 0xa438, 0xac4f, 0xa438, 0xcee0, 0xa438, 0x8ffd, 0xa438, 0xe18f,
- 0xa438, 0xfeef, 0xa438, 0x64e0, 0xa438, 0x8fe1, 0xa438, 0xe18f,
- 0xa438, 0xe2ef, 0xa438, 0x7402, 0xa438, 0x7c53, 0xa438, 0xac50,
- 0xa438, 0x02ae, 0xa438, 0xb6e1, 0xa438, 0x8775, 0xa438, 0x1f00,
- 0xa438, 0xef64, 0xa438, 0xe18f, 0xa438, 0xfcef, 0xa438, 0x711c,
- 0xa438, 0x670d, 0xa438, 0x67ef, 0xa438, 0x46e5, 0xa438, 0x8775,
- 0xa438, 0xef32, 0xa438, 0xd101, 0xa438, 0xa300, 0xa438, 0x02ae,
- 0xa438, 0x050c, 0xa438, 0x1183, 0xa438, 0xaef6, 0xa438, 0xe08f,
- 0xa438, 0xe31e, 0xa438, 0x10e5, 0xa438, 0x8fe3, 0xa438, 0xae89,
- 0xa438, 0xe287, 0xa438, 0x75e6, 0xa438, 0x8fd8, 0xa438, 0x1f22,
- 0xa438, 0xaf4d, 0xa438, 0x42f8, 0xa438, 0xf9ef, 0xa438, 0x59fa,
- 0xa438, 0xfbbf, 0xa438, 0x8fee, 0xa438, 0x027f, 0xa438, 0xa90d,
- 0xa438, 0x1149, 0xa438, 0x041a, 0xa438, 0x91d7, 0xa438, 0x8df3,
- 0xa438, 0xd68e, 0xa438, 0x2302, 0xa438, 0x72aa, 0xa438, 0xfffe,
- 0xa438, 0xef95, 0xa438, 0xfdfc, 0xa438, 0x0400, 0xa438, 0x7591,
- 0xa438, 0x0275, 0xa438, 0x4404, 0xa438, 0x758e, 0xa438, 0x2675,
- 0xa438, 0x4100, 0xa438, 0x8e26, 0xa438, 0x028e, 0xa438, 0x2304,
- 0xa438, 0x759d, 0xa438, 0x2675, 0xa438, 0x4700, 0xa438, 0x8e32,
- 0xa438, 0x028e, 0xa438, 0x2f04, 0xa438, 0x8e2c, 0xa438, 0x268e,
- 0xa438, 0x2900, 0xa438, 0x8e3e, 0xa438, 0x028e, 0xa438, 0x3b04,
- 0xa438, 0x8e38, 0xa438, 0x268e, 0xa438, 0x35fe, 0xa438, 0xad96,
- 0xa438, 0xdcad, 0xa438, 0x96ba, 0xa438, 0xad96, 0xa438, 0x98ad,
- 0xa438, 0x9676, 0xa438, 0xad98, 0xa438, 0x54ad, 0xa438, 0x9876,
- 0xa438, 0xae38, 0xa438, 0x54ae, 0xa438, 0x38fe, 0xa438, 0xae3a,
- 0xa438, 0xdcae, 0xa438, 0x3abb, 0xa438, 0xbf14, 0xa438, 0x99bd,
- 0xa438, 0xe0cc, 0xa438, 0xbdc8, 0xa438, 0xddbd, 0xa438, 0xc800,
- 0xa436, 0xb85e, 0xa438, 0x4f9a, 0xa436, 0xb860, 0xa438, 0x40cf,
- 0xa436, 0xb862, 0xa438, 0x6829, 0xa436, 0xb864, 0xa438, 0x5972,
- 0xa436, 0xb886, 0xa438, 0x5941, 0xa436, 0xb888, 0xa438, 0x636b,
- 0xa436, 0xb88a, 0xa438, 0x4d6b, 0xa436, 0xb88c, 0xa438, 0x4d40,
- 0xa436, 0xb838, 0xa438, 0x00ff, 0xb820, 0x0010, 0xa436, 0x8608,
- 0xa438, 0xaf86, 0xa438, 0xdaaf, 0xa438, 0x894c, 0xa438, 0xaf8a,
- 0xa438, 0xf8af, 0xa438, 0x8bf3, 0xa438, 0xaf8b, 0xa438, 0xf3af,
+ 0xa438, 0xef96, 0xa438, 0xfefc, 0xa438, 0x04f8, 0xa438, 0xf9fa,
+ 0xa438, 0xfbef, 0xa438, 0x79fb, 0xa438, 0xbf7b, 0xa438, 0xf302,
+ 0xa438, 0x7d44, 0xa438, 0xac28, 0xa438, 0x2bbf, 0xa438, 0x7a94,
+ 0xa438, 0x027d, 0xa438, 0x44ef, 0xa438, 0x21bf, 0xa438, 0x7ab8,
+ 0xa438, 0x027d, 0xa438, 0x441f, 0xa438, 0x219e, 0xa438, 0x19e0,
+ 0xa438, 0x8fe9, 0xa438, 0xe18f, 0xa438, 0xe8ef, 0xa438, 0x641f,
+ 0xa438, 0x00e1, 0xa438, 0x8fe4, 0xa438, 0xef74, 0xa438, 0x027c,
+ 0xa438, 0xa1ad, 0xa438, 0x503d, 0xa438, 0xee8f, 0xa438, 0xe701,
+ 0xa438, 0xbf7a, 0xa438, 0x9402, 0xa438, 0x7cf9, 0xa438, 0xbf7a,
+ 0xa438, 0xa602, 0xa438, 0x7cf9, 0xa438, 0xbf7a, 0xa438, 0xa302,
+ 0xa438, 0x7cf9, 0xa438, 0xbf7a, 0xa438, 0xa902, 0xa438, 0x7cf9,
+ 0xa438, 0xbf7a, 0xa438, 0xac02, 0xa438, 0x7d02, 0xa438, 0xbf8e,
+ 0xa438, 0x7102, 0xa438, 0x7cf9, 0xa438, 0xbf8e, 0xa438, 0x7402,
+ 0xa438, 0x7cf9, 0xa438, 0x027c, 0xa438, 0x86ef, 0xa438, 0x47e4,
+ 0xa438, 0x8fe9, 0xa438, 0xe58f, 0xa438, 0xe8ee, 0xa438, 0x8fea,
+ 0xa438, 0x04ff, 0xa438, 0xef97, 0xa438, 0xfffe, 0xa438, 0xfdfc,
+ 0xa438, 0x04f8, 0xa438, 0xfafb, 0xa438, 0xe08f, 0xa438, 0xe9e1,
+ 0xa438, 0x8fe8, 0xa438, 0xef64, 0xa438, 0x1f00, 0xa438, 0xe18f,
+ 0xa438, 0xe5ef, 0xa438, 0x7402, 0xa438, 0x7ca1, 0xa438, 0xad50,
+ 0xa438, 0x0d02, 0xa438, 0x638e, 0xa438, 0x028c, 0xa438, 0x02ee,
+ 0xa438, 0x8fea, 0xa438, 0x0102, 0xa438, 0x70de, 0xa438, 0xfffe,
+ 0xa438, 0xfc04, 0xa438, 0xe38f, 0xa438, 0xd7a3, 0xa438, 0x000a,
+ 0xa438, 0xe387, 0xa438, 0x75e7, 0xa438, 0x8fd8, 0xa438, 0xee8f,
+ 0xa438, 0xd701, 0xa438, 0xe38f, 0xa438, 0xd8e7, 0xa438, 0x8775,
+ 0xa438, 0xe48f, 0xa438, 0xe1e5, 0xa438, 0x8fe2, 0xa438, 0xbf8f,
+ 0xa438, 0xd9ef, 0xa438, 0x320c, 0xa438, 0x311a, 0xa438, 0x93dc,
+ 0xa438, 0x19dd, 0xa438, 0x027f, 0xa438, 0xa9ac, 0xa438, 0x2a18,
+ 0xa438, 0xe08f, 0xa438, 0xe1e1, 0xa438, 0x8fe2, 0xa438, 0xef74,
+ 0xa438, 0xe187, 0xa438, 0x751f, 0xa438, 0x00ef, 0xa438, 0x64e1,
+ 0xa438, 0x8fd8, 0xa438, 0xe587, 0xa438, 0x75af, 0xa438, 0x4d72,
+ 0xa438, 0xbf7b, 0xa438, 0x3cef, 0xa438, 0x324b, 0xa438, 0x031a,
+ 0xa438, 0x9302, 0xa438, 0x7d44, 0xa438, 0xef64, 0xa438, 0xe18f,
+ 0xa438, 0xff1f, 0xa438, 0x00ef, 0xa438, 0x741b, 0xa438, 0x67ac,
+ 0xa438, 0x4fce, 0xa438, 0xe08f, 0xa438, 0xfde1, 0xa438, 0x8ffe,
+ 0xa438, 0xef64, 0xa438, 0xe08f, 0xa438, 0xe1e1, 0xa438, 0x8fe2,
+ 0xa438, 0xef74, 0xa438, 0x027c, 0xa438, 0x53ac, 0xa438, 0x5002,
+ 0xa438, 0xaeb6, 0xa438, 0xe187, 0xa438, 0x751f, 0xa438, 0x00ef,
+ 0xa438, 0x64e1, 0xa438, 0x8ffc, 0xa438, 0xef71, 0xa438, 0x1c67,
+ 0xa438, 0x0d67, 0xa438, 0xef46, 0xa438, 0xe587, 0xa438, 0x75ef,
+ 0xa438, 0x32d1, 0xa438, 0x01a3, 0xa438, 0x0002, 0xa438, 0xae05,
+ 0xa438, 0x0c11, 0xa438, 0x83ae, 0xa438, 0xf6e0, 0xa438, 0x8fe3,
+ 0xa438, 0x1e10, 0xa438, 0xe58f, 0xa438, 0xe3ae, 0xa438, 0x89bf,
+ 0xa438, 0x7bf3, 0xa438, 0x027d, 0xa438, 0x44e5, 0xa438, 0x8fd6,
+ 0xa438, 0xad28, 0xa438, 0x03af, 0xa438, 0x606b, 0xa438, 0xaf60,
+ 0xa438, 0xa0f8, 0xa438, 0xf9ef, 0xa438, 0x59fa, 0xa438, 0xfbbf,
+ 0xa438, 0x8fee, 0xa438, 0x027f, 0xa438, 0xa90d, 0xa438, 0x1149,
+ 0xa438, 0x041a, 0xa438, 0x91d7, 0xa438, 0x8e1d, 0xa438, 0xd68e,
+ 0xa438, 0x4d02, 0xa438, 0x72aa, 0xa438, 0xfffe, 0xa438, 0xef95,
+ 0xa438, 0xfdfc, 0xa438, 0x0400, 0xa438, 0x7591, 0xa438, 0x0275,
+ 0xa438, 0x4404, 0xa438, 0x758e, 0xa438, 0x2675, 0xa438, 0x4100,
+ 0xa438, 0x8e50, 0xa438, 0x028e, 0xa438, 0x4d04, 0xa438, 0x759d,
+ 0xa438, 0x2675, 0xa438, 0x4700, 0xa438, 0x8e5c, 0xa438, 0x028e,
+ 0xa438, 0x5904, 0xa438, 0x8e56, 0xa438, 0x268e, 0xa438, 0x5300,
+ 0xa438, 0x8e68, 0xa438, 0x028e, 0xa438, 0x6504, 0xa438, 0x8e62,
+ 0xa438, 0x268e, 0xa438, 0x5ffe, 0xa438, 0xad96, 0xa438, 0xdcad,
+ 0xa438, 0x96ba, 0xa438, 0xad96, 0xa438, 0x98ad, 0xa438, 0x9676,
+ 0xa438, 0xad98, 0xa438, 0x54ad, 0xa438, 0x9876, 0xa438, 0xae38,
+ 0xa438, 0x54ae, 0xa438, 0x38fe, 0xa438, 0xae3a, 0xa438, 0xdcae,
+ 0xa438, 0x3abb, 0xa438, 0xbf14, 0xa438, 0x99bd, 0xa438, 0xe0cc,
+ 0xa438, 0xbdc8, 0xa438, 0xddbd, 0xa438, 0xc800, 0xa436, 0xb85e,
+ 0xa438, 0x4f9a, 0xa436, 0xb860, 0xa438, 0x40cf, 0xa436, 0xb862,
+ 0xa438, 0x6829, 0xa436, 0xb864, 0xa438, 0x5972, 0xa436, 0xb886,
+ 0xa438, 0x5941, 0xa436, 0xb888, 0xa438, 0x636b, 0xa436, 0xb88a,
+ 0xa438, 0x4d6b, 0xa436, 0xb88c, 0xa438, 0x6062, 0xa436, 0xb838,
+ 0xa438, 0x00ff, 0xb820, 0x0010, 0xa436, 0x8608, 0xa438, 0xaf86,
+ 0xa438, 0xdaaf, 0xa438, 0x894c, 0xa438, 0xaf8a, 0xa438, 0xf8af,
0xa438, 0x8bf3, 0xa438, 0xaf8b, 0xa438, 0xf3af, 0xa438, 0x8bf3,
- 0xa438, 0x006f, 0xa438, 0x4a03, 0xa438, 0x6f47, 0xa438, 0x266f,
- 0xa438, 0x5900, 0xa438, 0x6f4d, 0xa438, 0x016f, 0xa438, 0x5004,
- 0xa438, 0x6f56, 0xa438, 0x056f, 0xa438, 0x5f06, 0xa438, 0x6f5c,
- 0xa438, 0x2774, 0xa438, 0x7800, 0xa438, 0x6f68, 0xa438, 0x246f,
- 0xa438, 0x6b20, 0xa438, 0x6f6e, 0xa438, 0x206f, 0xa438, 0x7410,
- 0xa438, 0x7469, 0xa438, 0x1074, 0xa438, 0x6c10, 0xa438, 0x746f,
- 0xa438, 0x1074, 0xa438, 0x7225, 0xa438, 0x8bfc, 0xa438, 0x008c,
- 0xa438, 0x0802, 0xa438, 0x8c02, 0xa438, 0x038b, 0xa438, 0xff04,
- 0xa438, 0x6eed, 0xa438, 0x278c, 0xa438, 0x0520, 0xa438, 0x74da,
- 0xa438, 0x2074, 0xa438, 0xdd20, 0xa438, 0x74e0, 0xa438, 0x0074,
- 0xa438, 0xe300, 0xa438, 0x6ef3, 0xa438, 0x006e, 0xa438, 0xf600,
- 0xa438, 0x6ef9, 0xa438, 0x006e, 0xa438, 0xfc00, 0xa438, 0x6eff,
- 0xa438, 0x006f, 0xa438, 0x0200, 0xa438, 0x6f05, 0xa438, 0x026f,
- 0xa438, 0x0802, 0xa438, 0x6f0b, 0xa438, 0x026f, 0xa438, 0x0e02,
- 0xa438, 0x6f11, 0xa438, 0x026f, 0xa438, 0x1402, 0xa438, 0x6f17,
- 0xa438, 0x226f, 0xa438, 0x1a00, 0xa438, 0x723e, 0xa438, 0x016e,
- 0xa438, 0xed24, 0xa438, 0x6f50, 0xa438, 0x0072, 0xa438, 0x4701,
- 0xa438, 0x724a, 0xa438, 0x0272, 0xa438, 0x4d23, 0xa438, 0x7250,
- 0xa438, 0x1074, 0xa438, 0x6910, 0xa438, 0x746c, 0xa438, 0x1074,
- 0xa438, 0x6f00, 0xa438, 0x7472, 0xa438, 0x158c, 0xa438, 0x0b15,
- 0xa438, 0x8c0e, 0xa438, 0x158c, 0xa438, 0x1105, 0xa438, 0x8c14,
- 0xa438, 0x006f, 0xa438, 0x4a03, 0xa438, 0x6f47, 0xa438, 0x266f,
- 0xa438, 0x5900, 0xa438, 0x731f, 0xa438, 0x0273, 0xa438, 0x2203,
- 0xa438, 0x8c08, 0xa438, 0xee84, 0xa438, 0x7100, 0xa438, 0x0286,
- 0xa438, 0xece0, 0xa438, 0x8043, 0xa438, 0xf626, 0xa438, 0xe480,
- 0xa438, 0x43af, 0xa438, 0x6611, 0xa438, 0xf8e0, 0xa438, 0x8012,
- 0xa438, 0xac26, 0xa438, 0x03af, 0xa438, 0x86ff, 0xa438, 0x0287,
- 0xa438, 0x0102, 0xa438, 0x8906, 0xa438, 0x0289, 0xa438, 0x29fc,
- 0xa438, 0x04f8, 0xa438, 0xf9ef, 0xa438, 0x59f9, 0xa438, 0xfaee,
- 0xa438, 0x8476, 0xa438, 0x00d6, 0xa438, 0x008f, 0xa438, 0x0266,
- 0xa438, 0x53ef, 0xa438, 0x643e, 0xa438, 0x1200, 0xa438, 0xac4f,
- 0xa438, 0x08e4, 0xa438, 0x8fe7, 0xa438, 0xe58f, 0xa438, 0xe8ae,
- 0xa438, 0x06e0, 0xa438, 0x8fe7, 0xa438, 0xe18f, 0xa438, 0xe8ee,
- 0xa438, 0x8476, 0xa438, 0x01d6, 0xa438, 0x00c0, 0xa438, 0x0266,
- 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x00d6, 0xa438, 0x0090,
- 0xa438, 0x0266, 0xa438, 0x53ef, 0xa438, 0x643e, 0xa438, 0x1200,
- 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8fe9, 0xa438, 0xe58f,
- 0xa438, 0xeaae, 0xa438, 0x06e0, 0xa438, 0x8fe9, 0xa438, 0xe18f,
- 0xa438, 0xeaee, 0xa438, 0x8476, 0xa438, 0x01d6, 0xa438, 0x00c1,
- 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x00d6,
- 0xa438, 0x0091, 0xa438, 0x0266, 0xa438, 0x53ef, 0xa438, 0x643e,
- 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8feb,
- 0xa438, 0xe58f, 0xa438, 0xecae, 0xa438, 0x06e0, 0xa438, 0x8feb,
- 0xa438, 0xe18f, 0xa438, 0xecee, 0xa438, 0x8476, 0xa438, 0x01d6,
- 0xa438, 0x00c2, 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476,
- 0xa438, 0x01d6, 0xa438, 0x008f, 0xa438, 0x0266, 0xa438, 0x53ef,
+ 0xa438, 0xaf8b, 0xa438, 0xf3af, 0xa438, 0x8bf3, 0xa438, 0x006f,
+ 0xa438, 0x4a03, 0xa438, 0x6f47, 0xa438, 0x266f, 0xa438, 0x5900,
+ 0xa438, 0x6f4d, 0xa438, 0x016f, 0xa438, 0x5004, 0xa438, 0x6f56,
+ 0xa438, 0x056f, 0xa438, 0x5f06, 0xa438, 0x6f5c, 0xa438, 0x2774,
+ 0xa438, 0x7800, 0xa438, 0x6f68, 0xa438, 0x246f, 0xa438, 0x6b20,
+ 0xa438, 0x6f6e, 0xa438, 0x206f, 0xa438, 0x7410, 0xa438, 0x7469,
+ 0xa438, 0x1074, 0xa438, 0x6c10, 0xa438, 0x746f, 0xa438, 0x1074,
+ 0xa438, 0x7225, 0xa438, 0x8bfc, 0xa438, 0x008c, 0xa438, 0x0802,
+ 0xa438, 0x8c02, 0xa438, 0x038b, 0xa438, 0xff04, 0xa438, 0x6eed,
+ 0xa438, 0x278c, 0xa438, 0x0520, 0xa438, 0x74da, 0xa438, 0x2074,
+ 0xa438, 0xdd20, 0xa438, 0x74e0, 0xa438, 0x0074, 0xa438, 0xe300,
+ 0xa438, 0x6ef3, 0xa438, 0x006e, 0xa438, 0xf600, 0xa438, 0x6ef9,
+ 0xa438, 0x006e, 0xa438, 0xfc00, 0xa438, 0x6eff, 0xa438, 0x006f,
+ 0xa438, 0x0200, 0xa438, 0x6f05, 0xa438, 0x026f, 0xa438, 0x0802,
+ 0xa438, 0x6f0b, 0xa438, 0x026f, 0xa438, 0x0e02, 0xa438, 0x6f11,
+ 0xa438, 0x026f, 0xa438, 0x1402, 0xa438, 0x6f17, 0xa438, 0x226f,
+ 0xa438, 0x1a00, 0xa438, 0x723e, 0xa438, 0x016e, 0xa438, 0xed24,
+ 0xa438, 0x6f50, 0xa438, 0x0072, 0xa438, 0x4701, 0xa438, 0x724a,
+ 0xa438, 0x0272, 0xa438, 0x4d23, 0xa438, 0x7250, 0xa438, 0x1074,
+ 0xa438, 0x6910, 0xa438, 0x746c, 0xa438, 0x1074, 0xa438, 0x6f00,
+ 0xa438, 0x7472, 0xa438, 0x158c, 0xa438, 0x0b15, 0xa438, 0x8c0e,
+ 0xa438, 0x158c, 0xa438, 0x1105, 0xa438, 0x8c14, 0xa438, 0x006f,
+ 0xa438, 0x4a03, 0xa438, 0x6f47, 0xa438, 0x266f, 0xa438, 0x5900,
+ 0xa438, 0x731f, 0xa438, 0x0273, 0xa438, 0x2203, 0xa438, 0x8c08,
+ 0xa438, 0xee84, 0xa438, 0x7100, 0xa438, 0x0286, 0xa438, 0xece0,
+ 0xa438, 0x8043, 0xa438, 0xf626, 0xa438, 0xe480, 0xa438, 0x43af,
+ 0xa438, 0x6611, 0xa438, 0xf8e0, 0xa438, 0x8012, 0xa438, 0xac26,
+ 0xa438, 0x03af, 0xa438, 0x86ff, 0xa438, 0x0287, 0xa438, 0x0102,
+ 0xa438, 0x8906, 0xa438, 0x0289, 0xa438, 0x29fc, 0xa438, 0x04f8,
+ 0xa438, 0xf9ef, 0xa438, 0x59f9, 0xa438, 0xfaee, 0xa438, 0x8476,
+ 0xa438, 0x00d6, 0xa438, 0x008f, 0xa438, 0x0266, 0xa438, 0x53ef,
0xa438, 0x643e, 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4,
- 0xa438, 0x8fed, 0xa438, 0xe58f, 0xa438, 0xeeae, 0xa438, 0x06e0,
- 0xa438, 0x8fed, 0xa438, 0xe18f, 0xa438, 0xeeee, 0xa438, 0x8476,
- 0xa438, 0x02d6, 0xa438, 0x00c0, 0xa438, 0x0266, 0xa438, 0x71ee,
- 0xa438, 0x8476, 0xa438, 0x01d6, 0xa438, 0x0090, 0xa438, 0x0266,
+ 0xa438, 0x8fe7, 0xa438, 0xe58f, 0xa438, 0xe8ae, 0xa438, 0x06e0,
+ 0xa438, 0x8fe7, 0xa438, 0xe18f, 0xa438, 0xe8ee, 0xa438, 0x8476,
+ 0xa438, 0x01d6, 0xa438, 0x00c0, 0xa438, 0x0266, 0xa438, 0x71ee,
+ 0xa438, 0x8476, 0xa438, 0x00d6, 0xa438, 0x0090, 0xa438, 0x0266,
0xa438, 0x53ef, 0xa438, 0x643e, 0xa438, 0x1200, 0xa438, 0xac4f,
- 0xa438, 0x08e4, 0xa438, 0x8fef, 0xa438, 0xe58f, 0xa438, 0xf0ae,
- 0xa438, 0x06e0, 0xa438, 0x8fef, 0xa438, 0xe18f, 0xa438, 0xf0ee,
- 0xa438, 0x8476, 0xa438, 0x02d6, 0xa438, 0x00c1, 0xa438, 0x0266,
- 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x01d6, 0xa438, 0x0091,
+ 0xa438, 0x08e4, 0xa438, 0x8fe9, 0xa438, 0xe58f, 0xa438, 0xeaae,
+ 0xa438, 0x06e0, 0xa438, 0x8fe9, 0xa438, 0xe18f, 0xa438, 0xeaee,
+ 0xa438, 0x8476, 0xa438, 0x01d6, 0xa438, 0x00c1, 0xa438, 0x0266,
+ 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x00d6, 0xa438, 0x0091,
0xa438, 0x0266, 0xa438, 0x53ef, 0xa438, 0x643e, 0xa438, 0x1200,
- 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8ff1, 0xa438, 0xe58f,
- 0xa438, 0xf2ae, 0xa438, 0x06e0, 0xa438, 0x8ff1, 0xa438, 0xe18f,
- 0xa438, 0xf2ee, 0xa438, 0x8476, 0xa438, 0x02d6, 0xa438, 0x00c2,
- 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x02d6,
+ 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8feb, 0xa438, 0xe58f,
+ 0xa438, 0xecae, 0xa438, 0x06e0, 0xa438, 0x8feb, 0xa438, 0xe18f,
+ 0xa438, 0xecee, 0xa438, 0x8476, 0xa438, 0x01d6, 0xa438, 0x00c2,
+ 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x01d6,
0xa438, 0x008f, 0xa438, 0x0266, 0xa438, 0x53ef, 0xa438, 0x643e,
- 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8ff3,
- 0xa438, 0xe58f, 0xa438, 0xf4ae, 0xa438, 0x06e0, 0xa438, 0x8ff3,
- 0xa438, 0xe18f, 0xa438, 0xf4ee, 0xa438, 0x8476, 0xa438, 0x04d6,
+ 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8fed,
+ 0xa438, 0xe58f, 0xa438, 0xeeae, 0xa438, 0x06e0, 0xa438, 0x8fed,
+ 0xa438, 0xe18f, 0xa438, 0xeeee, 0xa438, 0x8476, 0xa438, 0x02d6,
0xa438, 0x00c0, 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476,
- 0xa438, 0x02d6, 0xa438, 0x0090, 0xa438, 0x0266, 0xa438, 0x53ef,
+ 0xa438, 0x01d6, 0xa438, 0x0090, 0xa438, 0x0266, 0xa438, 0x53ef,
0xa438, 0x643e, 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4,
- 0xa438, 0x8ff5, 0xa438, 0xe58f, 0xa438, 0xf6ae, 0xa438, 0x06e0,
- 0xa438, 0x8ff5, 0xa438, 0xe18f, 0xa438, 0xf6ee, 0xa438, 0x8476,
- 0xa438, 0x04d6, 0xa438, 0x00c1, 0xa438, 0x0266, 0xa438, 0x71ee,
- 0xa438, 0x8476, 0xa438, 0x02d6, 0xa438, 0x0091, 0xa438, 0x0266,
+ 0xa438, 0x8fef, 0xa438, 0xe58f, 0xa438, 0xf0ae, 0xa438, 0x06e0,
+ 0xa438, 0x8fef, 0xa438, 0xe18f, 0xa438, 0xf0ee, 0xa438, 0x8476,
+ 0xa438, 0x02d6, 0xa438, 0x00c1, 0xa438, 0x0266, 0xa438, 0x71ee,
+ 0xa438, 0x8476, 0xa438, 0x01d6, 0xa438, 0x0091, 0xa438, 0x0266,
0xa438, 0x53ef, 0xa438, 0x643e, 0xa438, 0x1200, 0xa438, 0xac4f,
- 0xa438, 0x08e4, 0xa438, 0x8ff7, 0xa438, 0xe58f, 0xa438, 0xf8ae,
- 0xa438, 0x06e0, 0xa438, 0x8ff7, 0xa438, 0xe18f, 0xa438, 0xf8ee,
- 0xa438, 0x8476, 0xa438, 0x04d6, 0xa438, 0x00c2, 0xa438, 0x0266,
- 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x03d6, 0xa438, 0x008f,
+ 0xa438, 0x08e4, 0xa438, 0x8ff1, 0xa438, 0xe58f, 0xa438, 0xf2ae,
+ 0xa438, 0x06e0, 0xa438, 0x8ff1, 0xa438, 0xe18f, 0xa438, 0xf2ee,
+ 0xa438, 0x8476, 0xa438, 0x02d6, 0xa438, 0x00c2, 0xa438, 0x0266,
+ 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x02d6, 0xa438, 0x008f,
0xa438, 0x0266, 0xa438, 0x53ef, 0xa438, 0x643e, 0xa438, 0x1200,
- 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8ff9, 0xa438, 0xe58f,
- 0xa438, 0xfaae, 0xa438, 0x06e0, 0xa438, 0x8ff9, 0xa438, 0xe18f,
- 0xa438, 0xfaee, 0xa438, 0x8476, 0xa438, 0x08d6, 0xa438, 0x00c0,
- 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x03d6,
+ 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8ff3, 0xa438, 0xe58f,
+ 0xa438, 0xf4ae, 0xa438, 0x06e0, 0xa438, 0x8ff3, 0xa438, 0xe18f,
+ 0xa438, 0xf4ee, 0xa438, 0x8476, 0xa438, 0x04d6, 0xa438, 0x00c0,
+ 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x02d6,
0xa438, 0x0090, 0xa438, 0x0266, 0xa438, 0x53ef, 0xa438, 0x643e,
- 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8ffb,
- 0xa438, 0xe58f, 0xa438, 0xfcae, 0xa438, 0x06e0, 0xa438, 0x8ffb,
- 0xa438, 0xe18f, 0xa438, 0xfcee, 0xa438, 0x8476, 0xa438, 0x08d6,
+ 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8ff5,
+ 0xa438, 0xe58f, 0xa438, 0xf6ae, 0xa438, 0x06e0, 0xa438, 0x8ff5,
+ 0xa438, 0xe18f, 0xa438, 0xf6ee, 0xa438, 0x8476, 0xa438, 0x04d6,
0xa438, 0x00c1, 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476,
- 0xa438, 0x03d6, 0xa438, 0x0091, 0xa438, 0x0266, 0xa438, 0x53ef,
+ 0xa438, 0x02d6, 0xa438, 0x0091, 0xa438, 0x0266, 0xa438, 0x53ef,
0xa438, 0x643e, 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4,
- 0xa438, 0x8ffd, 0xa438, 0xe58f, 0xa438, 0xfeae, 0xa438, 0x06e0,
- 0xa438, 0x8ffd, 0xa438, 0xe18f, 0xa438, 0xfeee, 0xa438, 0x8476,
- 0xa438, 0x08d6, 0xa438, 0x00c2, 0xa438, 0x0266, 0xa438, 0x71fe,
- 0xa438, 0xfdef, 0xa438, 0x95fd, 0xa438, 0xfc04, 0xa438, 0xf8f9,
- 0xa438, 0xfad4, 0xa438, 0x0400, 0xa438, 0xd600, 0xa438, 0x0dd3,
- 0xa438, 0x0fe7, 0xa438, 0x8476, 0xa438, 0x0266, 0xa438, 0x71d4,
- 0xa438, 0x1400, 0xa438, 0xd600, 0xa438, 0x0dd3, 0xa438, 0x0fe7,
- 0xa438, 0x8476, 0xa438, 0x0266, 0xa438, 0x71fe, 0xa438, 0xfdfc,
- 0xa438, 0x04f8, 0xa438, 0xf9fa, 0xa438, 0xd410, 0xa438, 0x00d6,
- 0xa438, 0x000d, 0xa438, 0xd30f, 0xa438, 0xe784, 0xa438, 0x7602,
- 0xa438, 0x6671, 0xa438, 0xd400, 0xa438, 0x00d6, 0xa438, 0x000d,
+ 0xa438, 0x8ff7, 0xa438, 0xe58f, 0xa438, 0xf8ae, 0xa438, 0x06e0,
+ 0xa438, 0x8ff7, 0xa438, 0xe18f, 0xa438, 0xf8ee, 0xa438, 0x8476,
+ 0xa438, 0x04d6, 0xa438, 0x00c2, 0xa438, 0x0266, 0xa438, 0x71ee,
+ 0xa438, 0x8476, 0xa438, 0x03d6, 0xa438, 0x008f, 0xa438, 0x0266,
+ 0xa438, 0x53ef, 0xa438, 0x643e, 0xa438, 0x1200, 0xa438, 0xac4f,
+ 0xa438, 0x08e4, 0xa438, 0x8ff9, 0xa438, 0xe58f, 0xa438, 0xfaae,
+ 0xa438, 0x06e0, 0xa438, 0x8ff9, 0xa438, 0xe18f, 0xa438, 0xfaee,
+ 0xa438, 0x8476, 0xa438, 0x08d6, 0xa438, 0x00c0, 0xa438, 0x0266,
+ 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x03d6, 0xa438, 0x0090,
+ 0xa438, 0x0266, 0xa438, 0x53ef, 0xa438, 0x643e, 0xa438, 0x1200,
+ 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8ffb, 0xa438, 0xe58f,
+ 0xa438, 0xfcae, 0xa438, 0x06e0, 0xa438, 0x8ffb, 0xa438, 0xe18f,
+ 0xa438, 0xfcee, 0xa438, 0x8476, 0xa438, 0x08d6, 0xa438, 0x00c1,
+ 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x8476, 0xa438, 0x03d6,
+ 0xa438, 0x0091, 0xa438, 0x0266, 0xa438, 0x53ef, 0xa438, 0x643e,
+ 0xa438, 0x1200, 0xa438, 0xac4f, 0xa438, 0x08e4, 0xa438, 0x8ffd,
+ 0xa438, 0xe58f, 0xa438, 0xfeae, 0xa438, 0x06e0, 0xa438, 0x8ffd,
+ 0xa438, 0xe18f, 0xa438, 0xfeee, 0xa438, 0x8476, 0xa438, 0x08d6,
+ 0xa438, 0x00c2, 0xa438, 0x0266, 0xa438, 0x71fe, 0xa438, 0xfdef,
+ 0xa438, 0x95fd, 0xa438, 0xfc04, 0xa438, 0xf8f9, 0xa438, 0xfad4,
+ 0xa438, 0x0400, 0xa438, 0xd600, 0xa438, 0x0dd3, 0xa438, 0x0fe7,
+ 0xa438, 0x8476, 0xa438, 0x0266, 0xa438, 0x71d4, 0xa438, 0x1400,
+ 0xa438, 0xd600, 0xa438, 0x0dd3, 0xa438, 0x0fe7, 0xa438, 0x8476,
+ 0xa438, 0x0266, 0xa438, 0x71fe, 0xa438, 0xfdfc, 0xa438, 0x04f8,
+ 0xa438, 0xf9fa, 0xa438, 0xd410, 0xa438, 0x00d6, 0xa438, 0x000d,
0xa438, 0xd30f, 0xa438, 0xe784, 0xa438, 0x7602, 0xa438, 0x6671,
- 0xa438, 0xfefd, 0xa438, 0xfc04, 0xa438, 0xe080, 0xa438, 0x4fac,
- 0xa438, 0x2317, 0xa438, 0xe080, 0xa438, 0x44ad, 0xa438, 0x231a,
- 0xa438, 0x0289, 0xa438, 0x75e0, 0xa438, 0x8044, 0xa438, 0xac23,
- 0xa438, 0x11bf, 0xa438, 0x6ecf, 0xa438, 0x0276, 0xa438, 0x74ae,
- 0xa438, 0x0902, 0xa438, 0x8adb, 0xa438, 0x021f, 0xa438, 0xe702,
- 0xa438, 0x1fbb, 0xa438, 0xaf1f, 0xa438, 0x95f8, 0xa438, 0xf9ef,
- 0xa438, 0x59f9, 0xa438, 0xfafb, 0xa438, 0xe080, 0xa438, 0x12ac,
- 0xa438, 0x2303, 0xa438, 0xaf8a, 0xa438, 0xd0d4, 0xa438, 0x0120,
- 0xa438, 0xd600, 0xa438, 0x10d2, 0xa438, 0x0fe6, 0xa438, 0x8476,
- 0xa438, 0x0266, 0xa438, 0x71ee, 0xa438, 0x846f, 0xa438, 0x00d4,
- 0xa438, 0x000f, 0xa438, 0xbf72, 0xa438, 0x9e02, 0xa438, 0x7697,
- 0xa438, 0x0275, 0xa438, 0xbeef, 0xa438, 0x47e4, 0xa438, 0x8474,
- 0xa438, 0xe584, 0xa438, 0x75bf, 0xa438, 0x729b, 0xa438, 0x0276,
- 0xa438, 0xb6e5, 0xa438, 0x846f, 0xa438, 0xef31, 0xa438, 0xbf6e,
+ 0xa438, 0xd400, 0xa438, 0x00d6, 0xa438, 0x000d, 0xa438, 0xd30f,
+ 0xa438, 0xe784, 0xa438, 0x7602, 0xa438, 0x6671, 0xa438, 0xfefd,
+ 0xa438, 0xfc04, 0xa438, 0xe080, 0xa438, 0x4fac, 0xa438, 0x2317,
+ 0xa438, 0xe080, 0xa438, 0x44ad, 0xa438, 0x231a, 0xa438, 0x0289,
+ 0xa438, 0x75e0, 0xa438, 0x8044, 0xa438, 0xac23, 0xa438, 0x11bf,
+ 0xa438, 0x6ecf, 0xa438, 0x0276, 0xa438, 0x74ae, 0xa438, 0x0902,
+ 0xa438, 0x8adb, 0xa438, 0x021f, 0xa438, 0xe702, 0xa438, 0x1fbb,
+ 0xa438, 0xaf1f, 0xa438, 0x95f8, 0xa438, 0xf9ef, 0xa438, 0x59f9,
+ 0xa438, 0xfafb, 0xa438, 0xe080, 0xa438, 0x12ac, 0xa438, 0x2303,
+ 0xa438, 0xaf8a, 0xa438, 0xd0d4, 0xa438, 0x0120, 0xa438, 0xd600,
+ 0xa438, 0x10d2, 0xa438, 0x0fe6, 0xa438, 0x8476, 0xa438, 0x0266,
+ 0xa438, 0x71ee, 0xa438, 0x846f, 0xa438, 0x00d4, 0xa438, 0x000f,
+ 0xa438, 0xbf72, 0xa438, 0x9e02, 0xa438, 0x7697, 0xa438, 0x0275,
+ 0xa438, 0xbeef, 0xa438, 0x47e4, 0xa438, 0x8474, 0xa438, 0xe584,
+ 0xa438, 0x75bf, 0xa438, 0x729b, 0xa438, 0x0276, 0xa438, 0xb6e5,
+ 0xa438, 0x846f, 0xa438, 0xef31, 0xa438, 0xbf6e, 0xa438, 0x0602,
+ 0xa438, 0x76b6, 0xa438, 0xef64, 0xa438, 0xbf6e, 0xa438, 0x0902,
+ 0xa438, 0x76b6, 0xa438, 0x1e64, 0xa438, 0xbf6e, 0xa438, 0x0f02,
+ 0xa438, 0x76b6, 0xa438, 0x1e64, 0xa438, 0xac40, 0xa438, 0x05a3,
+ 0xa438, 0x0f0c, 0xa438, 0xae26, 0xa438, 0xa303, 0xa438, 0x02ae,
+ 0xa438, 0x21a3, 0xa438, 0x0c02, 0xa438, 0xae1c, 0xa438, 0xe084,
+ 0xa438, 0x74e1, 0xa438, 0x8475, 0xa438, 0xef64, 0xa438, 0xd000,
+ 0xa438, 0xd196, 0xa438, 0xef74, 0xa438, 0x0275, 0xa438, 0xd9ad,
+ 0xa438, 0x50b7, 0xa438, 0xe083, 0xa438, 0xecf7, 0xa438, 0x23e4,
+ 0xa438, 0x83ec, 0xa438, 0xbf72, 0xa438, 0x9e02, 0xa438, 0x766b,
+ 0xa438, 0x0287, 0xa438, 0x0102, 0xa438, 0x8906, 0xa438, 0xee83,
+ 0xa438, 0xe800, 0xa438, 0xbf72, 0xa438, 0x6b02, 0xa438, 0x766b,
+ 0xa438, 0xbf72, 0xa438, 0x6e02, 0xa438, 0x766b, 0xa438, 0xbf72,
+ 0xa438, 0x7102, 0xa438, 0x766b, 0xa438, 0xbf72, 0xa438, 0x7402,
+ 0xa438, 0x766b, 0xa438, 0xbf72, 0xa438, 0x7702, 0xa438, 0x766b,
+ 0xa438, 0xbf72, 0xa438, 0x7a02, 0xa438, 0x766b, 0xa438, 0xd400,
+ 0xa438, 0x0fbf, 0xa438, 0x7295, 0xa438, 0x0276, 0xa438, 0x97d7,
+ 0xa438, 0x0400, 0xa438, 0xbf6e, 0xa438, 0x0602, 0xa438, 0x76b6,
+ 0xa438, 0xef64, 0xa438, 0xbf6e, 0xa438, 0x0902, 0xa438, 0x76b6,
+ 0xa438, 0x1e64, 0xa438, 0xbf6e, 0xa438, 0x0f02, 0xa438, 0x76b6,
+ 0xa438, 0x1e64, 0xa438, 0xac40, 0xa438, 0x0fbf, 0xa438, 0x7298,
+ 0xa438, 0x0276, 0xa438, 0xb6e5, 0xa438, 0x83e8, 0xa438, 0xa10f,
+ 0xa438, 0x28af, 0xa438, 0x8a95, 0xa438, 0xbf8b, 0xa438, 0xf302,
+ 0xa438, 0x76b6, 0xa438, 0xac28, 0xa438, 0x02ae, 0xa438, 0x0bbf,
+ 0xa438, 0x8bf9, 0xa438, 0x0276, 0xa438, 0xb6e5, 0xa438, 0x83e8,
+ 0xa438, 0xae09, 0xa438, 0xbf8b, 0xa438, 0xf602, 0xa438, 0x76b6,
+ 0xa438, 0xe583, 0xa438, 0xe8a1, 0xa438, 0x0303, 0xa438, 0xaf8a,
+ 0xa438, 0x95b7, 0xa438, 0xafe2, 0xa438, 0x83ec, 0xa438, 0xf735,
+ 0xa438, 0xe683, 0xa438, 0xecbf, 0xa438, 0x7295, 0xa438, 0x0276,
+ 0xa438, 0x6bbf, 0xa438, 0x726b, 0xa438, 0x0276, 0xa438, 0x74bf,
+ 0xa438, 0x726e, 0xa438, 0x0276, 0xa438, 0x74bf, 0xa438, 0x7271,
+ 0xa438, 0x0276, 0xa438, 0x74bf, 0xa438, 0x7274, 0xa438, 0x0276,
+ 0xa438, 0x74bf, 0xa438, 0x7277, 0xa438, 0x0276, 0xa438, 0x74bf,
+ 0xa438, 0x727a, 0xa438, 0x0276, 0xa438, 0x7402, 0xa438, 0x8929,
+ 0xa438, 0xd401, 0xa438, 0x28d6, 0xa438, 0x0010, 0xa438, 0xd20f,
+ 0xa438, 0xe684, 0xa438, 0x7602, 0xa438, 0x6671, 0xa438, 0x021f,
+ 0xa438, 0xbbff, 0xa438, 0xfefd, 0xa438, 0xef95, 0xa438, 0xfdfc,
+ 0xa438, 0x04f8, 0xa438, 0xf9ef, 0xa438, 0x59f9, 0xa438, 0xe080,
+ 0xa438, 0x12ad, 0xa438, 0x230c, 0xa438, 0xbf72, 0xa438, 0x9e02,
+ 0xa438, 0x766b, 0xa438, 0xbf72, 0xa438, 0x9502, 0xa438, 0x766b,
+ 0xa438, 0xfdef, 0xa438, 0x95fd, 0xa438, 0xfc04, 0xa438, 0xbf6e,
0xa438, 0x0602, 0xa438, 0x76b6, 0xa438, 0xef64, 0xa438, 0xbf6e,
0xa438, 0x0902, 0xa438, 0x76b6, 0xa438, 0x1e64, 0xa438, 0xbf6e,
0xa438, 0x0f02, 0xa438, 0x76b6, 0xa438, 0x1e64, 0xa438, 0xac40,
- 0xa438, 0x05a3, 0xa438, 0x0f0c, 0xa438, 0xae26, 0xa438, 0xa303,
- 0xa438, 0x02ae, 0xa438, 0x21a3, 0xa438, 0x0c02, 0xa438, 0xae1c,
- 0xa438, 0xe084, 0xa438, 0x74e1, 0xa438, 0x8475, 0xa438, 0xef64,
- 0xa438, 0xd000, 0xa438, 0xd196, 0xa438, 0xef74, 0xa438, 0x0275,
- 0xa438, 0xd9ad, 0xa438, 0x50b7, 0xa438, 0xe083, 0xa438, 0xecf7,
- 0xa438, 0x23e4, 0xa438, 0x83ec, 0xa438, 0xbf72, 0xa438, 0x9e02,
- 0xa438, 0x766b, 0xa438, 0x0287, 0xa438, 0x0102, 0xa438, 0x8906,
- 0xa438, 0xee83, 0xa438, 0xe800, 0xa438, 0xbf72, 0xa438, 0x6b02,
- 0xa438, 0x766b, 0xa438, 0xbf72, 0xa438, 0x6e02, 0xa438, 0x766b,
- 0xa438, 0xbf72, 0xa438, 0x7102, 0xa438, 0x766b, 0xa438, 0xbf72,
- 0xa438, 0x7402, 0xa438, 0x766b, 0xa438, 0xbf72, 0xa438, 0x7702,
- 0xa438, 0x766b, 0xa438, 0xbf72, 0xa438, 0x7a02, 0xa438, 0x766b,
- 0xa438, 0xd400, 0xa438, 0x0fbf, 0xa438, 0x7295, 0xa438, 0x0276,
- 0xa438, 0x97d7, 0xa438, 0x0400, 0xa438, 0xbf6e, 0xa438, 0x0602,
- 0xa438, 0x76b6, 0xa438, 0xef64, 0xa438, 0xbf6e, 0xa438, 0x0902,
- 0xa438, 0x76b6, 0xa438, 0x1e64, 0xa438, 0xbf6e, 0xa438, 0x0f02,
- 0xa438, 0x76b6, 0xa438, 0x1e64, 0xa438, 0xac40, 0xa438, 0x0fbf,
- 0xa438, 0x7298, 0xa438, 0x0276, 0xa438, 0xb6e5, 0xa438, 0x83e8,
- 0xa438, 0xa10f, 0xa438, 0x28af, 0xa438, 0x8a95, 0xa438, 0xbf8b,
- 0xa438, 0xf302, 0xa438, 0x76b6, 0xa438, 0xac28, 0xa438, 0x02ae,
- 0xa438, 0x0bbf, 0xa438, 0x8bf9, 0xa438, 0x0276, 0xa438, 0xb6e5,
- 0xa438, 0x83e8, 0xa438, 0xae09, 0xa438, 0xbf8b, 0xa438, 0xf602,
- 0xa438, 0x76b6, 0xa438, 0xe583, 0xa438, 0xe8a1, 0xa438, 0x0303,
- 0xa438, 0xaf8a, 0xa438, 0x95b7, 0xa438, 0xafe2, 0xa438, 0x83ec,
- 0xa438, 0xf735, 0xa438, 0xe683, 0xa438, 0xecbf, 0xa438, 0x7295,
- 0xa438, 0x0276, 0xa438, 0x6bbf, 0xa438, 0x726b, 0xa438, 0x0276,
- 0xa438, 0x74bf, 0xa438, 0x726e, 0xa438, 0x0276, 0xa438, 0x74bf,
- 0xa438, 0x7271, 0xa438, 0x0276, 0xa438, 0x74bf, 0xa438, 0x7274,
- 0xa438, 0x0276, 0xa438, 0x74bf, 0xa438, 0x7277, 0xa438, 0x0276,
- 0xa438, 0x74bf, 0xa438, 0x727a, 0xa438, 0x0276, 0xa438, 0x7402,
- 0xa438, 0x8929, 0xa438, 0xd401, 0xa438, 0x28d6, 0xa438, 0x0010,
- 0xa438, 0xd20f, 0xa438, 0xe684, 0xa438, 0x7602, 0xa438, 0x6671,
- 0xa438, 0x021f, 0xa438, 0xbbff, 0xa438, 0xfefd, 0xa438, 0xef95,
- 0xa438, 0xfdfc, 0xa438, 0x04f8, 0xa438, 0xf9ef, 0xa438, 0x59f9,
- 0xa438, 0xe080, 0xa438, 0x12ad, 0xa438, 0x230c, 0xa438, 0xbf72,
- 0xa438, 0x9e02, 0xa438, 0x766b, 0xa438, 0xbf72, 0xa438, 0x9502,
- 0xa438, 0x766b, 0xa438, 0xfdef, 0xa438, 0x95fd, 0xa438, 0xfc04,
- 0xa438, 0xbf6e, 0xa438, 0x0602, 0xa438, 0x76b6, 0xa438, 0xef64,
- 0xa438, 0xbf6e, 0xa438, 0x0902, 0xa438, 0x76b6, 0xa438, 0x1e64,
- 0xa438, 0xbf6e, 0xa438, 0x0f02, 0xa438, 0x76b6, 0xa438, 0x1e64,
- 0xa438, 0xac40, 0xa438, 0x0ebf, 0xa438, 0x7298, 0xa438, 0x0276,
- 0xa438, 0xb6e5, 0xa438, 0x8478, 0xa438, 0xa10f, 0xa438, 0x26ae,
- 0xa438, 0x47bf, 0xa438, 0x8bf3, 0xa438, 0x0276, 0xa438, 0xb6ac,
- 0xa438, 0x2802, 0xa438, 0xae0b, 0xa438, 0xbf8b, 0xa438, 0xf902,
- 0xa438, 0x76b6, 0xa438, 0xe584, 0xa438, 0x78ae, 0xa438, 0x09bf,
- 0xa438, 0x8bf6, 0xa438, 0x0276, 0xa438, 0xb6e5, 0xa438, 0x8478,
- 0xa438, 0xa103, 0xa438, 0x02ae, 0xa438, 0x23e0, 0xa438, 0x8474,
- 0xa438, 0xe184, 0xa438, 0x75ef, 0xa438, 0x64e0, 0xa438, 0x83fc,
- 0xa438, 0xe183, 0xa438, 0xfdef, 0xa438, 0x7402, 0xa438, 0x75d9,
- 0xa438, 0xad50, 0xa438, 0x0ae0, 0xa438, 0x83ec, 0xa438, 0xf721,
- 0xa438, 0xe483, 0xa438, 0xecae, 0xa438, 0x03af, 0xa438, 0x68e4,
- 0xa438, 0xbf72, 0xa438, 0x9502, 0xa438, 0x766b, 0xa438, 0xe083,
- 0xa438, 0xebad, 0xa438, 0x2170, 0xa438, 0xbf73, 0xa438, 0x7f02,
- 0xa438, 0x766b, 0xa438, 0xd700, 0xa438, 0x64bf, 0xa438, 0x73c4,
- 0xa438, 0x0276, 0xa438, 0xb6a4, 0xa438, 0x0000, 0xa438, 0x02ae,
- 0xa438, 0x0d87, 0xa438, 0xa700, 0xa438, 0x00ef, 0xa438, 0xe183,
- 0xa438, 0xecf7, 0xa438, 0x2ae5, 0xa438, 0x83ec, 0xa438, 0xbf73,
- 0xa438, 0xbe02, 0xa438, 0x766b, 0xa438, 0xbf73, 0xa438, 0xb802,
- 0xa438, 0x766b, 0xa438, 0xbf73, 0xa438, 0xc102, 0xa438, 0x766b,
- 0xa438, 0xbf73, 0xa438, 0xbb02, 0xa438, 0x766b, 0xa438, 0xe084,
- 0xa438, 0x9ee1, 0xa438, 0x849f, 0xa438, 0xbf72, 0xa438, 0x7d02,
- 0xa438, 0x7697, 0xa438, 0xbf72, 0xa438, 0x8002, 0xa438, 0x7697,
- 0xa438, 0xbf72, 0xa438, 0x8302, 0xa438, 0x7697, 0xa438, 0xbf72,
- 0xa438, 0x8602, 0xa438, 0x7697, 0xa438, 0xbf72, 0xa438, 0x8902,
- 0xa438, 0x7674, 0xa438, 0xbf72, 0xa438, 0x8c02, 0xa438, 0x7674,
- 0xa438, 0xbf72, 0xa438, 0x8f02, 0xa438, 0x7674, 0xa438, 0xbf72,
- 0xa438, 0x9202, 0xa438, 0x7674, 0xa438, 0xee84, 0xa438, 0x7700,
- 0xa438, 0xe080, 0xa438, 0x44f6, 0xa438, 0x21e4, 0xa438, 0x8044,
- 0xa438, 0xaf68, 0xa438, 0xe411, 0xa438, 0xd1a4, 0xa438, 0x10bc,
- 0xa438, 0x7432, 0xa438, 0xbc74, 0xa438, 0xbbbf, 0xa438, 0x14cc,
- 0xa438, 0xbfaa, 0xa438, 0x00bf, 0xa438, 0x9055, 0xa438, 0xbf06,
- 0xa438, 0x10bf, 0xa438, 0xb876, 0xa438, 0xbe02, 0xa438, 0x54be,
- 0xa438, 0x0232, 0xa438, 0xbe02, 0xa438, 0x10be, 0xa438, 0x0200,
- 0xa436, 0x8fe7, 0xa438, 0x1200, 0xa436, 0x8fe9, 0xa438, 0x1200,
- 0xa436, 0x8feb, 0xa438, 0x1200, 0xa436, 0x8fed, 0xa438, 0x1200,
- 0xa436, 0x8fef, 0xa438, 0x1200, 0xa436, 0x8ff1, 0xa438, 0x1200,
- 0xa436, 0x8ff3, 0xa438, 0x1200, 0xa436, 0x8ff5, 0xa438, 0x1200,
- 0xa436, 0x8ff7, 0xa438, 0x1200, 0xa436, 0x8ff9, 0xa438, 0x1200,
- 0xa436, 0x8ffb, 0xa438, 0x1200, 0xa436, 0x8ffd, 0xa438, 0x1200,
- 0xa436, 0xb818, 0xa438, 0x6602, 0xa436, 0xb81a, 0xa438, 0x1f75,
- 0xa436, 0xb81c, 0xa438, 0x67eb, 0xa436, 0xb81e, 0xa438, 0xffff,
- 0xa436, 0xb850, 0xa438, 0xffff, 0xa436, 0xb852, 0xa438, 0xffff,
- 0xa436, 0xb878, 0xa438, 0xffff, 0xa436, 0xb884, 0xa438, 0xffff,
- 0xa436, 0xb832, 0xa438, 0x0007, 0xB82E, 0x0000, 0xa436, 0x8023,
- 0xa438, 0x0000, 0xB820, 0x0000, 0xFFFF, 0xFFFF
+ 0xa438, 0x0ebf, 0xa438, 0x7298, 0xa438, 0x0276, 0xa438, 0xb6e5,
+ 0xa438, 0x8478, 0xa438, 0xa10f, 0xa438, 0x26ae, 0xa438, 0x47bf,
+ 0xa438, 0x8bf3, 0xa438, 0x0276, 0xa438, 0xb6ac, 0xa438, 0x2802,
+ 0xa438, 0xae0b, 0xa438, 0xbf8b, 0xa438, 0xf902, 0xa438, 0x76b6,
+ 0xa438, 0xe584, 0xa438, 0x78ae, 0xa438, 0x09bf, 0xa438, 0x8bf6,
+ 0xa438, 0x0276, 0xa438, 0xb6e5, 0xa438, 0x8478, 0xa438, 0xa103,
+ 0xa438, 0x02ae, 0xa438, 0x23e0, 0xa438, 0x8474, 0xa438, 0xe184,
+ 0xa438, 0x75ef, 0xa438, 0x64e0, 0xa438, 0x83fc, 0xa438, 0xe183,
+ 0xa438, 0xfdef, 0xa438, 0x7402, 0xa438, 0x75d9, 0xa438, 0xad50,
+ 0xa438, 0x0ae0, 0xa438, 0x83ec, 0xa438, 0xf721, 0xa438, 0xe483,
+ 0xa438, 0xecae, 0xa438, 0x03af, 0xa438, 0x68e4, 0xa438, 0xbf72,
+ 0xa438, 0x9502, 0xa438, 0x766b, 0xa438, 0xe083, 0xa438, 0xebad,
+ 0xa438, 0x2170, 0xa438, 0xbf73, 0xa438, 0x7f02, 0xa438, 0x766b,
+ 0xa438, 0xd700, 0xa438, 0x64bf, 0xa438, 0x73c4, 0xa438, 0x0276,
+ 0xa438, 0xb6a4, 0xa438, 0x0000, 0xa438, 0x02ae, 0xa438, 0x0d87,
+ 0xa438, 0xa700, 0xa438, 0x00ef, 0xa438, 0xe183, 0xa438, 0xecf7,
+ 0xa438, 0x2ae5, 0xa438, 0x83ec, 0xa438, 0xbf73, 0xa438, 0xbe02,
+ 0xa438, 0x766b, 0xa438, 0xbf73, 0xa438, 0xb802, 0xa438, 0x766b,
+ 0xa438, 0xbf73, 0xa438, 0xc102, 0xa438, 0x766b, 0xa438, 0xbf73,
+ 0xa438, 0xbb02, 0xa438, 0x766b, 0xa438, 0xe084, 0xa438, 0x9ee1,
+ 0xa438, 0x849f, 0xa438, 0xbf72, 0xa438, 0x7d02, 0xa438, 0x7697,
+ 0xa438, 0xbf72, 0xa438, 0x8002, 0xa438, 0x7697, 0xa438, 0xbf72,
+ 0xa438, 0x8302, 0xa438, 0x7697, 0xa438, 0xbf72, 0xa438, 0x8602,
+ 0xa438, 0x7697, 0xa438, 0xbf72, 0xa438, 0x8902, 0xa438, 0x7674,
+ 0xa438, 0xbf72, 0xa438, 0x8c02, 0xa438, 0x7674, 0xa438, 0xbf72,
+ 0xa438, 0x8f02, 0xa438, 0x7674, 0xa438, 0xbf72, 0xa438, 0x9202,
+ 0xa438, 0x7674, 0xa438, 0xee84, 0xa438, 0x7700, 0xa438, 0xe080,
+ 0xa438, 0x44f6, 0xa438, 0x21e4, 0xa438, 0x8044, 0xa438, 0xaf68,
+ 0xa438, 0xe411, 0xa438, 0xd1a4, 0xa438, 0x10bc, 0xa438, 0x7432,
+ 0xa438, 0xbc74, 0xa438, 0xbbbf, 0xa438, 0x14cc, 0xa438, 0xbfaa,
+ 0xa438, 0x00bf, 0xa438, 0x9055, 0xa438, 0xbf06, 0xa438, 0x10bf,
+ 0xa438, 0xb876, 0xa438, 0xbe02, 0xa438, 0x54be, 0xa438, 0x0232,
+ 0xa438, 0xbe02, 0xa438, 0x10be, 0xa438, 0x0200, 0xa436, 0x8fe7,
+ 0xa438, 0x1200, 0xa436, 0x8fe9, 0xa438, 0x1200, 0xa436, 0x8feb,
+ 0xa438, 0x1200, 0xa436, 0x8fed, 0xa438, 0x1200, 0xa436, 0x8fef,
+ 0xa438, 0x1200, 0xa436, 0x8ff1, 0xa438, 0x1200, 0xa436, 0x8ff3,
+ 0xa438, 0x1200, 0xa436, 0x8ff5, 0xa438, 0x1200, 0xa436, 0x8ff7,
+ 0xa438, 0x1200, 0xa436, 0x8ff9, 0xa438, 0x1200, 0xa436, 0x8ffb,
+ 0xa438, 0x1200, 0xa436, 0x8ffd, 0xa438, 0x1200, 0xa436, 0xb818,
+ 0xa438, 0x6602, 0xa436, 0xb81a, 0xa438, 0x1f75, 0xa436, 0xb81c,
+ 0xa438, 0x67eb, 0xa436, 0xb81e, 0xa438, 0xffff, 0xa436, 0xb850,
+ 0xa438, 0xffff, 0xa436, 0xb852, 0xa438, 0xffff, 0xa436, 0xb878,
+ 0xa438, 0xffff, 0xa436, 0xb884, 0xa438, 0xffff, 0xa436, 0xb832,
+ 0xa438, 0x0007, 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000,
+ 0xB820, 0x0000, 0xFFFF, 0xFFFF
};
static const u16 phy_mcu_ram_code_8127a_2[] = {
@@ -567,7 +1166,42 @@ static const u16 phy_mcu_ram_code_8127a_2[] = {
0xB890, 0x5060, 0xB890, 0xE0D0, 0xB890, 0xA000, 0xB890, 0x3030,
0xB890, 0x4070, 0xB890, 0xE0E0, 0xB890, 0xD080, 0xB890, 0xA010,
0xB890, 0xE040, 0xB890, 0x80B0, 0xB890, 0x50B0, 0xB890, 0x2090,
- 0xB820, 0x0000, 0xFFFF, 0xFFFF
+ 0xB88E, 0xC110, 0xB890, 0xE8F4, 0xB890, 0xF4F4, 0xB88E, 0xC14E,
+ 0xB890, 0x26EF, 0xB890, 0xEFEF, 0xB88E, 0xC374, 0xB890, 0x00FA,
+ 0xB890, 0x008C, 0xB890, 0x03D2, 0xB890, 0x0373, 0xB890, 0x03B9,
+ 0xB890, 0x0006, 0xB890, 0x0013, 0xB890, 0x03FE, 0xB890, 0x03DE,
+ 0xB890, 0x0008, 0xB890, 0x0008, 0xB890, 0x000D, 0xB890, 0x03F3,
+ 0xB890, 0x0010, 0xB890, 0x000A, 0xB890, 0x000E, 0xB890, 0x03F5,
+ 0xB890, 0x0001, 0xB890, 0x03FF, 0xB890, 0x0000, 0xB890, 0x0005,
+ 0xB890, 0x000A, 0xB890, 0x03F3, 0xB890, 0x0003, 0xB890, 0x03F1,
+ 0xB890, 0x0003, 0xB890, 0x000C, 0xB890, 0x000E, 0xB890, 0x03FA,
+ 0xB890, 0x0007, 0xB890, 0x0008, 0xB890, 0x0010, 0xB890, 0x03EE,
+ 0xB890, 0x000E, 0xB890, 0x03F6, 0xB890, 0x0007, 0xB890, 0x03FC,
+ 0xB890, 0x000B, 0xB890, 0x03FB, 0xB890, 0x000F, 0xB890, 0x03F6,
+ 0xB890, 0x0016, 0xB890, 0x03F9, 0xB890, 0x03FF, 0xB890, 0x03FF,
+ 0xB890, 0x0007, 0xB890, 0x03FD, 0xB890, 0x000D, 0xB890, 0x03FE,
+ 0xB890, 0x0003, 0xB890, 0x03F1, 0xB890, 0x000B, 0xB890, 0x0000,
+ 0xB890, 0x0012, 0xB890, 0x03FD, 0xB890, 0x03FC, 0xB890, 0x0004,
+ 0xB890, 0x000F, 0xB890, 0x03EF, 0xB890, 0x03F9, 0xB890, 0x000D,
+ 0xB890, 0x0002, 0xB890, 0x000C, 0xB890, 0x0003, 0xB890, 0x0069,
+ 0xB890, 0x0064, 0xB890, 0x004F, 0xB890, 0x001E, 0xB890, 0x03ED,
+ 0xB890, 0x03DC, 0xB890, 0x03BC, 0xB890, 0x03D1, 0xB890, 0x03C5,
+ 0xB890, 0x03E4, 0xB890, 0x03EA, 0xB890, 0x03FF, 0xB890, 0x03FA,
+ 0xB890, 0x0007, 0xB890, 0x03FF, 0xB890, 0x03E5, 0xB890, 0x03FA,
+ 0xB890, 0x03F1, 0xB890, 0x03F8, 0xB890, 0x03EF, 0xB890, 0x0007,
+ 0xB890, 0x0002, 0xB890, 0x0016, 0xB890, 0x0001, 0xB890, 0x000A,
+ 0xB890, 0x03F6, 0xB890, 0x0000, 0xB890, 0x03F7, 0xB890, 0x0004,
+ 0xB890, 0x0002, 0xB890, 0x0010, 0xB890, 0x0004, 0xB890, 0x03FD,
+ 0xB890, 0x03F2, 0xB890, 0x03EE, 0xB890, 0x03FA, 0xB890, 0x03F1,
+ 0xB890, 0x03FE, 0xB890, 0x03FB, 0xB890, 0x0008, 0xB890, 0x03EE,
+ 0xB890, 0x000F, 0xB890, 0x03F0, 0xB890, 0x000F, 0xB890, 0x03F3,
+ 0xB890, 0x0004, 0xB890, 0x03F3, 0xB890, 0x0003, 0xB890, 0x03F5,
+ 0xB890, 0x03FE, 0xB890, 0x03F5, 0xB890, 0x0008, 0xB890, 0x03F7,
+ 0xB890, 0x000A, 0xB890, 0x03F9, 0xB890, 0x0000, 0xB890, 0x03FB,
+ 0xB890, 0x000C, 0xB890, 0x03EC, 0xB890, 0x03FB, 0xB890, 0x03EE,
+ 0xB890, 0x000E, 0xB890, 0x03F5, 0xB890, 0x0007, 0xB88E, 0xC128,
+ 0xB890, 0xF0F0, 0xB890, 0xF0EB, 0xB88E, 0xC166, 0xB890, 0xEAEA,
+ 0xB890, 0xEA0E, 0xB820, 0x0000, 0xFFFF, 0xFFFF
};
static void
diff --git a/drivers/net/r8169/r8169_fiber.c b/drivers/net/r8169/r8169_fiber.c
index 9108fa6bba..caad868cf5 100644
--- a/drivers/net/r8169/r8169_fiber.c
+++ b/drivers/net/r8169/r8169_fiber.c
@@ -107,13 +107,19 @@ rtl8127_set_sds_phy_caps_1g_8127(struct rtl_hw *hw)
{
u16 val;
+ if (hw->fcpause == rtl_fc_full)
+ rtl8127_set_sds_phy_bit(hw, 0, 2, 4, BIT_8 | BIT_7);
+ else
+ rtl8127_clear_sds_phy_bit(hw, 0, 2, 4, BIT_8 | BIT_7);
+
rtl8127_set_sds_phy_bit(hw, 0, 1, 31, BIT_3);
rtl8127_clear_and_set_sds_phy_bit(hw, 0, 2, 0, BIT_13 | BIT_12 | BIT_6,
BIT_12 | BIT_6);
+ rtl8127_set_sds_phy_bit(hw, 0, 0, 4, BIT_2);
RTL_W16(hw, 0x233A, 0x8004);
val = RTL_R16(hw, 0x233E);
- val &= (BIT_13 | BIT_12 | BIT_1 | BIT_0);
+ val &= ~(BIT_13 | BIT_12 | BIT_1 | BIT_0);
val |= BIT_1;
RTL_W16(hw, 0x233E, val);
@@ -139,10 +145,15 @@ rtl8127_set_sds_phy_caps_10g_8127(struct rtl_hw *hw)
{
u16 val;
+ if (hw->fcpause == rtl_fc_full)
+ rtl8127_set_sds_phy_bit(hw, 0, 31, 11, BIT_3 | BIT_2);
+ else
+ rtl8127_clear_sds_phy_bit(hw, 0, 31, 11, BIT_3 | BIT_2);
+
RTL_W16(hw, 0x233A, 0x801A);
val = RTL_R16(hw, 0x233E);
- val &= (BIT_13 | BIT_12 | BIT_1 | BIT_0);
+ val &= ~(BIT_13 | BIT_12 | BIT_1 | BIT_0);
val |= BIT_12;
RTL_W16(hw, 0x233E, val);
diff --git a/drivers/net/r8169/r8169_hw.h b/drivers/net/r8169/r8169_hw.h
index e1fe238b85..c8705edad4 100644
--- a/drivers/net/r8169/r8169_hw.h
+++ b/drivers/net/r8169/r8169_hw.h
@@ -140,7 +140,7 @@ extern const struct rtl_hw_ops rtl8125cp_ops;
#define NIC_RAMCODE_VERSION_CFG_METHOD_69 (0x0023)
#define NIC_RAMCODE_VERSION_CFG_METHOD_70 (0x0033)
#define NIC_RAMCODE_VERSION_CFG_METHOD_71 (0x0060)
-#define NIC_RAMCODE_VERSION_CFG_METHOD_91 (0x0036)
+#define NIC_RAMCODE_VERSION_CFG_METHOD_91 (0x0051)
#define RTL_MAC_MCU_PAGE_SIZE 256
#define RTL_DEFAULT_MTU 1500
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 05/12] net/r8169: adjust jumbo frame size limit for non-1G cards
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (3 preceding siblings ...)
2026-02-09 8:54 ` [PATCH v1 04/12] net/r8169: update hardware configurations for 8127 Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:54 ` [PATCH v1 06/12] net/r8169: remove support for CFG_METHOD_69 Howard Wang
` (8 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
For 8125A, set the max size to (16K - 1).
For other non-1G cards, set the max size to 16K.
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/r8169_compat.h | 1 +
drivers/net/r8169/r8169_ethdev.c | 23 ++++++++++++++++++++++-
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/drivers/net/r8169/r8169_compat.h b/drivers/net/r8169/r8169_compat.h
index d2d928cdd7..673a1ca274 100644
--- a/drivers/net/r8169/r8169_compat.h
+++ b/drivers/net/r8169/r8169_compat.h
@@ -617,6 +617,7 @@ enum RTL_chipset_name {
*/
#define RTL_ETH_OVERHEAD (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN + VLAN_TAG_SIZE)
#define JUMBO_FRAME_9K (9 * 1024 - RTE_ETHER_HDR_LEN - RTE_VLAN_HLEN - RTE_ETHER_CRC_LEN)
+#define JUMBO_FRAME_16K (16 * 1024 - RTE_ETHER_HDR_LEN - RTE_VLAN_HLEN - RTE_ETHER_CRC_LEN)
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL << (n)) - 1))
diff --git a/drivers/net/r8169/r8169_ethdev.c b/drivers/net/r8169/r8169_ethdev.c
index f620154bf0..8e46ce09a1 100644
--- a/drivers/net/r8169/r8169_ethdev.c
+++ b/drivers/net/r8169/r8169_ethdev.c
@@ -412,9 +412,30 @@ rtl_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
struct rtl_hw *hw = &adapter->hw;
dev_info->min_rx_bufsize = 1024;
- dev_info->max_rx_pktlen = JUMBO_FRAME_9K;
dev_info->max_mac_addrs = 1;
+ switch (hw->mcfg) {
+ case CFG_METHOD_48:
+ case CFG_METHOD_49:
+ dev_info->max_rx_pktlen = JUMBO_FRAME_16K - 1;
+ break;
+ case CFG_METHOD_50:
+ case CFG_METHOD_51:
+ case CFG_METHOD_54:
+ case CFG_METHOD_55:
+ case CFG_METHOD_56:
+ case CFG_METHOD_57:
+ case CFG_METHOD_58:
+ case CFG_METHOD_70:
+ case CFG_METHOD_71:
+ case CFG_METHOD_91:
+ dev_info->max_rx_pktlen = JUMBO_FRAME_16K;
+ break;
+ default:
+ dev_info->max_rx_pktlen = JUMBO_FRAME_9K;
+ break;
+ }
+
if (hw->mcfg >= CFG_METHOD_69) {
dev_info->max_rx_queues = 4;
dev_info->max_tx_queues = 2;
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 06/12] net/r8169: remove support for CFG_METHOD_69
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (4 preceding siblings ...)
2026-02-09 8:54 ` [PATCH v1 05/12] net/r8169: adjust jumbo frame size limit for non-1G cards Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:54 ` [PATCH v1 07/12] net/r8169: update hardware configurations for 8126 Howard Wang
` (7 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
CFG_METHOD_69(RLE0949) is a test chip and it will not on the market.
So remove it to simplify code.
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/base/rtl8126a.c | 22 +-
drivers/net/r8169/base/rtl8126a_mcu.c | 613 +-------------------------
drivers/net/r8169/base/rtl8126a_mcu.h | 2 -
drivers/net/r8169/r8169_ethdev.c | 4 +-
drivers/net/r8169/r8169_hw.c | 25 +-
drivers/net/r8169/r8169_hw.h | 1 -
drivers/net/r8169/r8169_phy.c | 3 -
drivers/net/r8169/r8169_rxtx.c | 1 -
8 files changed, 7 insertions(+), 664 deletions(-)
diff --git a/drivers/net/r8169/base/rtl8126a.c b/drivers/net/r8169/base/rtl8126a.c
index 58b1cc2664..e3f68c1292 100644
--- a/drivers/net/r8169/base/rtl8126a.c
+++ b/drivers/net/r8169/base/rtl8126a.c
@@ -7,16 +7,12 @@
#include "../r8169_phy.h"
#include "rtl8126a_mcu.h"
-/* For RTL8126A, CFG_METHOD_69,70,71 */
+/* For RTL8126A, CFG_METHOD_70,71 */
static void
hw_init_rxcfg_8126a(struct rtl_hw *hw)
{
switch (hw->mcfg) {
- case CFG_METHOD_69:
- RTL_W32(hw, RxConfig, Rx_Fetch_Number_20 | RxCfg_pause_slot_en |
- (RX_DMA_BURST_512 << RxCfgDMAShift));
- break;
case CFG_METHOD_70:
case CFG_METHOD_71:
RTL_W32(hw, RxConfig, Rx_Fetch_Number_20 | Rx_Close_Multiple |
@@ -29,7 +25,6 @@ static void
hw_ephy_config_8126a(struct rtl_hw *hw)
{
switch (hw->mcfg) {
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
/* nothing to do */
@@ -37,12 +32,6 @@ hw_ephy_config_8126a(struct rtl_hw *hw)
}
}
-static void
-rtl_hw_phy_config_8126a_1(struct rtl_hw *hw)
-{
- rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_11);
-}
-
static void
rtl_hw_phy_config_8126a_2(struct rtl_hw *hw)
{
@@ -473,9 +462,6 @@ static void
hw_phy_config_8126a(struct rtl_hw *hw)
{
switch (hw->mcfg) {
- case CFG_METHOD_69:
- rtl_hw_phy_config_8126a_1(hw);
- break;
case CFG_METHOD_70:
rtl_hw_phy_config_8126a_2(hw);
break;
@@ -497,9 +483,6 @@ hw_mac_mcu_config_8126a(struct rtl_hw *hw)
hw->hw_mcu_patch_code_ver = rtl_get_hw_mcu_patch_code_ver(hw);
switch (hw->mcfg) {
- case CFG_METHOD_69:
- rtl_set_mac_mcu_8126a_1(hw);
- break;
case CFG_METHOD_70:
rtl_set_mac_mcu_8126a_2(hw);
break;
@@ -513,9 +496,6 @@ static void
hw_phy_mcu_config_8126a(struct rtl_hw *hw)
{
switch (hw->mcfg) {
- case CFG_METHOD_69:
- rtl_set_phy_mcu_8126a_1(hw);
- break;
case CFG_METHOD_70:
rtl_set_phy_mcu_8126a_2(hw);
break;
diff --git a/drivers/net/r8169/base/rtl8126a_mcu.c b/drivers/net/r8169/base/rtl8126a_mcu.c
index 759e2df7cf..89ad5f6deb 100644
--- a/drivers/net/r8169/base/rtl8126a_mcu.c
+++ b/drivers/net/r8169/base/rtl8126a_mcu.c
@@ -7,34 +7,10 @@
#include "../r8169_phy.h"
#include "rtl8126a_mcu.h"
-/* For RTL8126A, CFG_METHOD_69,70,71 */
+/* For RTL8126A, CFG_METHOD_70,71 */
/* ------------------------------------MAC 8126A------------------------------------- */
-void
-rtl_set_mac_mcu_8126a_1(struct rtl_hw *hw)
-{
- static const u16 mcu_patch_code_8126a_1[] = {
- 0xE010, 0xE019, 0xE01B, 0xE01D, 0xE01F, 0xE021, 0xE023, 0xE025, 0xE027,
- 0xE029, 0xE02B, 0xE02D, 0xE02F, 0xE031, 0xE033, 0xE035, 0x48C0, 0x9C66,
- 0x7446, 0x4840, 0x48C1, 0x48C2, 0x9C46, 0xC402, 0xBC00, 0x0AD6, 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, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602,
- 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000
- };
-
- rtl_write_mac_mcu_ram_code(hw, mcu_patch_code_8126a_1,
- ARRAY_SIZE(mcu_patch_code_8126a_1));
-
- rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
-
- rtl_mac_ocp_write(hw, 0xFC28, 0x0AAA);
-
- rtl_mac_ocp_write(hw, 0xFC48, 0x0001);
-}
-
void
rtl_set_mac_mcu_8126a_2(struct rtl_hw *hw)
{
@@ -125,550 +101,6 @@ rtl_set_mac_mcu_8126a_3(struct rtl_hw *hw)
/* ------------------------------------PHY 8126A------------------------------------- */
-static const u16 phy_mcu_ram_code_8126a_1_1[] = {
- 0xa436, 0x8023, 0xa438, 0x4900, 0xa436, 0xB82E, 0xa438, 0x0001,
- 0xBFBA, 0xE000, 0xBF1A, 0xC1B9, 0xBFA8, 0x10F0, 0xBFB0, 0x0210,
- 0xBFB4, 0xE7E4, 0xb820, 0x0090, 0xa436, 0xA016, 0xa438, 0x0000,
- 0xa436, 0xA012, 0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800,
- 0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x8062, 0xa438, 0x1800,
- 0xa438, 0x8069, 0xa438, 0x1800, 0xa438, 0x80e2, 0xa438, 0x1800,
- 0xa438, 0x80eb, 0xa438, 0x1800, 0xa438, 0x80f5, 0xa438, 0x1800,
- 0xa438, 0x811b, 0xa438, 0x1800, 0xa438, 0x8120, 0xa438, 0xd500,
- 0xa438, 0xd049, 0xa438, 0xd1b9, 0xa438, 0xa208, 0xa438, 0x8208,
- 0xa438, 0xd503, 0xa438, 0xa104, 0xa438, 0x0c07, 0xa438, 0x0902,
- 0xa438, 0xd500, 0xa438, 0xbc10, 0xa438, 0xc484, 0xa438, 0xd503,
- 0xa438, 0xcc02, 0xa438, 0xcd0d, 0xa438, 0xaf01, 0xa438, 0xd500,
- 0xa438, 0xd703, 0xa438, 0x4531, 0xa438, 0xbd08, 0xa438, 0x1000,
- 0xa438, 0x16bb, 0xa438, 0xd75e, 0xa438, 0x5fb3, 0xa438, 0xd503,
- 0xa438, 0xd04d, 0xa438, 0xd1c7, 0xa438, 0x0cf0, 0xa438, 0x0e10,
- 0xa438, 0xd704, 0xa438, 0x5ffc, 0xa438, 0xd04d, 0xa438, 0xd1c7,
- 0xa438, 0x0cf0, 0xa438, 0x0e20, 0xa438, 0xd704, 0xa438, 0x5ffc,
- 0xa438, 0xd04d, 0xa438, 0xd1c7, 0xa438, 0x0cf0, 0xa438, 0x0e40,
- 0xa438, 0xd704, 0xa438, 0x5ffc, 0xa438, 0xd04d, 0xa438, 0xd1c7,
- 0xa438, 0x0cf0, 0xa438, 0x0e80, 0xa438, 0xd704, 0xa438, 0x5ffc,
- 0xa438, 0xd07b, 0xa438, 0xd1c5, 0xa438, 0x8ef0, 0xa438, 0xd704,
- 0xa438, 0x5ffc, 0xa438, 0x9d08, 0xa438, 0x1000, 0xa438, 0x16bb,
- 0xa438, 0xd75e, 0xa438, 0x7fb3, 0xa438, 0x1000, 0xa438, 0x16bb,
- 0xa438, 0xd75e, 0xa438, 0x5fad, 0xa438, 0x1000, 0xa438, 0x181f,
- 0xa438, 0xd703, 0xa438, 0x3181, 0xa438, 0x8059, 0xa438, 0x60ad,
- 0xa438, 0x1000, 0xa438, 0x16bb, 0xa438, 0xd703, 0xa438, 0x5fbb,
- 0xa438, 0x1000, 0xa438, 0x16bb, 0xa438, 0xd719, 0xa438, 0x7fa8,
- 0xa438, 0xd500, 0xa438, 0xd049, 0xa438, 0xd1b9, 0xa438, 0x1800,
- 0xa438, 0x0f0b, 0xa438, 0xd500, 0xa438, 0xd07b, 0xa438, 0xd1b5,
- 0xa438, 0xd0f6, 0xa438, 0xd1c5, 0xa438, 0x1800, 0xa438, 0x1049,
- 0xa438, 0xd707, 0xa438, 0x4121, 0xa438, 0xd706, 0xa438, 0x40fa,
- 0xa438, 0xd099, 0xa438, 0xd1c6, 0xa438, 0x1000, 0xa438, 0x16bb,
- 0xa438, 0xd704, 0xa438, 0x5fbc, 0xa438, 0xbc80, 0xa438, 0xc489,
- 0xa438, 0xd503, 0xa438, 0xcc08, 0xa438, 0xcd46, 0xa438, 0xaf01,
- 0xa438, 0xd500, 0xa438, 0x1000, 0xa438, 0x0903, 0xa438, 0x1000,
- 0xa438, 0x16bb, 0xa438, 0xd75e, 0xa438, 0x5f6d, 0xa438, 0x1000,
- 0xa438, 0x181f, 0xa438, 0xd504, 0xa438, 0xa210, 0xa438, 0xd500,
- 0xa438, 0x1000, 0xa438, 0x16bb, 0xa438, 0xd719, 0xa438, 0x5fbc,
- 0xa438, 0xd504, 0xa438, 0x8210, 0xa438, 0xd503, 0xa438, 0xc6d0,
- 0xa438, 0xa521, 0xa438, 0xcd49, 0xa438, 0xaf01, 0xa438, 0xd504,
- 0xa438, 0xa220, 0xa438, 0xd500, 0xa438, 0x1000, 0xa438, 0x16bb,
- 0xa438, 0xd75e, 0xa438, 0x5fad, 0xa438, 0x1000, 0xa438, 0x181f,
- 0xa438, 0xd503, 0xa438, 0xa704, 0xa438, 0x0c07, 0xa438, 0x0904,
- 0xa438, 0xd504, 0xa438, 0xa102, 0xa438, 0xd500, 0xa438, 0x1000,
- 0xa438, 0x16bb, 0xa438, 0xd718, 0xa438, 0x5fab, 0xa438, 0xd503,
- 0xa438, 0xc6f0, 0xa438, 0xa521, 0xa438, 0xd505, 0xa438, 0xa404,
- 0xa438, 0xd500, 0xa438, 0xd701, 0xa438, 0x6085, 0xa438, 0xd504,
- 0xa438, 0xc9f1, 0xa438, 0xf003, 0xa438, 0xd504, 0xa438, 0xc9f0,
- 0xa438, 0xd503, 0xa438, 0xcd4a, 0xa438, 0xaf01, 0xa438, 0xd500,
- 0xa438, 0xd504, 0xa438, 0xa802, 0xa438, 0xd500, 0xa438, 0x1000,
- 0xa438, 0x16bb, 0xa438, 0xd707, 0xa438, 0x5fb1, 0xa438, 0xd707,
- 0xa438, 0x5f10, 0xa438, 0xd505, 0xa438, 0xa402, 0xa438, 0xd503,
- 0xa438, 0xd707, 0xa438, 0x41a1, 0xa438, 0xd706, 0xa438, 0x60ba,
- 0xa438, 0x60fc, 0xa438, 0x0c07, 0xa438, 0x0204, 0xa438, 0xf009,
- 0xa438, 0x0c07, 0xa438, 0x0202, 0xa438, 0xf006, 0xa438, 0x0c07,
- 0xa438, 0x0206, 0xa438, 0xf003, 0xa438, 0x0c07, 0xa438, 0x0202,
- 0xa438, 0xd500, 0xa438, 0xd703, 0xa438, 0x3181, 0xa438, 0x80e0,
- 0xa438, 0x616d, 0xa438, 0xd701, 0xa438, 0x6065, 0xa438, 0x1800,
- 0xa438, 0x1229, 0xa438, 0x1000, 0xa438, 0x16bb, 0xa438, 0xd707,
- 0xa438, 0x6061, 0xa438, 0xd704, 0xa438, 0x5f7c, 0xa438, 0x1800,
- 0xa438, 0x124a, 0xa438, 0xd504, 0xa438, 0x8c0f, 0xa438, 0xd505,
- 0xa438, 0xa20e, 0xa438, 0xd500, 0xa438, 0x1000, 0xa438, 0x1871,
- 0xa438, 0x1800, 0xa438, 0x1899, 0xa438, 0xd70b, 0xa438, 0x60b0,
- 0xa438, 0xd05a, 0xa438, 0xd19a, 0xa438, 0x1800, 0xa438, 0x1aef,
- 0xa438, 0xd0ef, 0xa438, 0xd19a, 0xa438, 0x1800, 0xa438, 0x1aef,
- 0xa438, 0x1000, 0xa438, 0x1d09, 0xa438, 0xd708, 0xa438, 0x3399,
- 0xa438, 0x1b63, 0xa438, 0xd709, 0xa438, 0x5f5d, 0xa438, 0xd70b,
- 0xa438, 0x6130, 0xa438, 0xd70d, 0xa438, 0x6163, 0xa438, 0xd709,
- 0xa438, 0x430b, 0xa438, 0xd71e, 0xa438, 0x62c2, 0xa438, 0xb401,
- 0xa438, 0xf014, 0xa438, 0xc901, 0xa438, 0x1000, 0xa438, 0x810e,
- 0xa438, 0xf010, 0xa438, 0xc902, 0xa438, 0x1000, 0xa438, 0x810e,
- 0xa438, 0xf00c, 0xa438, 0xce04, 0xa438, 0xcf01, 0xa438, 0xd70a,
- 0xa438, 0x5fe2, 0xa438, 0xce04, 0xa438, 0xcf02, 0xa438, 0xc900,
- 0xa438, 0xd70a, 0xa438, 0x4057, 0xa438, 0xb401, 0xa438, 0x0800,
- 0xa438, 0x1800, 0xa438, 0x1b5d, 0xa438, 0xa480, 0xa438, 0xa2b0,
- 0xa438, 0xa806, 0xa438, 0x1800, 0xa438, 0x225c, 0xa438, 0xa7e8,
- 0xa438, 0xac08, 0xa438, 0x1800, 0xa438, 0x1a4e, 0xa436, 0xA026,
- 0xa438, 0x1a4d, 0xa436, 0xA024, 0xa438, 0x225a, 0xa436, 0xA022,
- 0xa438, 0x1b53, 0xa436, 0xA020, 0xa438, 0x1aed, 0xa436, 0xA006,
- 0xa438, 0x1892, 0xa436, 0xA004, 0xa438, 0x11a4, 0xa436, 0xA002,
- 0xa438, 0x103c, 0xa436, 0xA000, 0xa438, 0x0ea6, 0xa436, 0xA008,
- 0xa438, 0xff00, 0xa436, 0xA016, 0xa438, 0x0000, 0xa436, 0xA012,
- 0xa438, 0x0ff8, 0xa436, 0xA014, 0xa438, 0x0000, 0xa438, 0xD098,
- 0xa438, 0xc483, 0xa438, 0xc483, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa436, 0xA152, 0xa438, 0x3fff,
- 0xa436, 0xA154, 0xa438, 0x0413, 0xa436, 0xA156, 0xa438, 0x1A32,
- 0xa436, 0xA158, 0xa438, 0x1CC0, 0xa436, 0xA15A, 0xa438, 0x3fff,
- 0xa436, 0xA15C, 0xa438, 0x3fff, 0xa436, 0xA15E, 0xa438, 0x3fff,
- 0xa436, 0xA160, 0xa438, 0x3fff, 0xa436, 0xA150, 0xa438, 0x000E,
- 0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012, 0xa438, 0x0000,
- 0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010, 0xa438, 0x1800,
- 0xa438, 0x8021, 0xa438, 0x1800, 0xa438, 0x8037, 0xa438, 0x1800,
- 0xa438, 0x803f, 0xa438, 0x1800, 0xa438, 0x8084, 0xa438, 0x1800,
- 0xa438, 0x80c5, 0xa438, 0x1800, 0xa438, 0x80cc, 0xa438, 0x1800,
- 0xa438, 0x80d5, 0xa438, 0xa00a, 0xa438, 0xa280, 0xa438, 0xa404,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x1800, 0xa438, 0x099b, 0xa438, 0x1000, 0xa438, 0x1021,
- 0xa438, 0xd700, 0xa438, 0x5fab, 0xa438, 0xa208, 0xa438, 0x8204,
- 0xa438, 0xcb38, 0xa438, 0xaa40, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x1800, 0xa438, 0x0b2a,
- 0xa438, 0x82a0, 0xa438, 0x8404, 0xa438, 0xa110, 0xa438, 0xd706,
- 0xa438, 0x4041, 0xa438, 0xa180, 0xa438, 0x1800, 0xa438, 0x0e7f,
- 0xa438, 0x8190, 0xa438, 0xcb93, 0xa438, 0x1000, 0xa438, 0x0ef4,
- 0xa438, 0xd704, 0xa438, 0x7fb8, 0xa438, 0xa008, 0xa438, 0xd706,
- 0xa438, 0x4040, 0xa438, 0xa002, 0xa438, 0xd705, 0xa438, 0x4079,
- 0xa438, 0x1000, 0xa438, 0x10ad, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0x85f0, 0xa438, 0x9503, 0xa438, 0xd705, 0xa438, 0x40d9,
- 0xa438, 0xd70c, 0xa438, 0x6083, 0xa438, 0x0c1f, 0xa438, 0x0d09,
- 0xa438, 0xf003, 0xa438, 0x0c1f, 0xa438, 0x0d0a, 0xa438, 0x0cc0,
- 0xa438, 0x0d80, 0xa438, 0x1000, 0xa438, 0x104f, 0xa438, 0x1000,
- 0xa438, 0x0ef4, 0xa438, 0x8020, 0xa438, 0xd705, 0xa438, 0x40d9,
- 0xa438, 0xd704, 0xa438, 0x609f, 0xa438, 0xd70c, 0xa438, 0x6043,
- 0xa438, 0x8504, 0xa438, 0xcb94, 0xa438, 0x1000, 0xa438, 0x0ef4,
- 0xa438, 0xd706, 0xa438, 0x7fa2, 0xa438, 0x800a, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0x0cf0, 0xa438, 0x05a0, 0xa438, 0x9503,
- 0xa438, 0xd705, 0xa438, 0x40b9, 0xa438, 0x0c1f, 0xa438, 0x0d00,
- 0xa438, 0x8dc0, 0xa438, 0xf005, 0xa438, 0xa190, 0xa438, 0x0c1f,
- 0xa438, 0x0d17, 0xa438, 0x8dc0, 0xa438, 0x1000, 0xa438, 0x104f,
- 0xa438, 0xd705, 0xa438, 0x39cc, 0xa438, 0x0c7d, 0xa438, 0x1800,
- 0xa438, 0x0e67, 0xa438, 0xcb96, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0xab05, 0xa438, 0xac04, 0xa438, 0xac08, 0xa438, 0x9503,
- 0xa438, 0x0c1f, 0xa438, 0x0d00, 0xa438, 0x8dc0, 0xa438, 0x1000,
- 0xa438, 0x104f, 0xa438, 0x1000, 0xa438, 0x1021, 0xa438, 0xd706,
- 0xa438, 0x2215, 0xa438, 0x8099, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0xae02, 0xa438, 0x9503, 0xa438, 0xd706, 0xa438, 0x6451,
- 0xa438, 0xd71f, 0xa438, 0x2e70, 0xa438, 0x0f00, 0xa438, 0xd706,
- 0xa438, 0x3290, 0xa438, 0x80be, 0xa438, 0xd704, 0xa438, 0x2e70,
- 0xa438, 0x8090, 0xa438, 0xd706, 0xa438, 0x339c, 0xa438, 0x8090,
- 0xa438, 0x8718, 0xa438, 0x8910, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0xc500, 0xa438, 0x9503, 0xa438, 0x0c1f, 0xa438, 0x0d17,
- 0xa438, 0x8dc0, 0xa438, 0x1000, 0xa438, 0x104f, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0x8c04, 0xa438, 0x9503, 0xa438, 0xa00a,
- 0xa438, 0xa190, 0xa438, 0xa280, 0xa438, 0xa404, 0xa438, 0x1800,
- 0xa438, 0x0f35, 0xa438, 0x1800, 0xa438, 0x0f07, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0x8c08, 0xa438, 0x8c04, 0xa438, 0x9503,
- 0xa438, 0x1800, 0xa438, 0x0f02, 0xa438, 0x1000, 0xa438, 0x1021,
- 0xa438, 0xd700, 0xa438, 0x5fb4, 0xa438, 0xaa10, 0xa438, 0x1800,
- 0xa438, 0x0c6b, 0xa438, 0x82a0, 0xa438, 0x8406, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0xac04, 0xa438, 0x8602, 0xa438, 0x9503,
- 0xa438, 0x1800, 0xa438, 0x0e09, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x8308, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0xc555, 0xa438, 0x9503, 0xa438, 0xa728,
- 0xa438, 0x8440, 0xa438, 0x0c03, 0xa438, 0x0901, 0xa438, 0x8801,
- 0xa438, 0xd700, 0xa438, 0x4040, 0xa438, 0xa801, 0xa438, 0xd701,
- 0xa438, 0x4052, 0xa438, 0xa810, 0xa438, 0xd701, 0xa438, 0x4054,
- 0xa438, 0xa820, 0xa438, 0xd701, 0xa438, 0x4057, 0xa438, 0xa640,
- 0xa438, 0xd704, 0xa438, 0x4046, 0xa438, 0xa840, 0xa438, 0xd706,
- 0xa438, 0x40b5, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xae20,
- 0xa438, 0x9503, 0xa438, 0xd401, 0xa438, 0x1000, 0xa438, 0x0fcf,
- 0xa438, 0x1000, 0xa438, 0x0fda, 0xa438, 0x1000, 0xa438, 0x1008,
- 0xa438, 0x1000, 0xa438, 0x0fe3, 0xa438, 0xcc00, 0xa438, 0x80c0,
- 0xa438, 0x8103, 0xa438, 0x83e0, 0xa438, 0xd71e, 0xa438, 0x2318,
- 0xa438, 0x01ae, 0xa438, 0xd704, 0xa438, 0x40bc, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0x8302, 0xa438, 0x9503, 0xa438, 0xb801,
- 0xa438, 0xd706, 0xa438, 0x2b59, 0xa438, 0x07f8, 0xa438, 0xd700,
- 0xa438, 0x2109, 0xa438, 0x04ab, 0xa438, 0xa508, 0xa438, 0xcb15,
- 0xa438, 0xd70c, 0xa438, 0x430c, 0xa438, 0x1000, 0xa438, 0x10ca,
- 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa108, 0xa438, 0x9503,
- 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x0c1f, 0xa438, 0x0f13,
- 0xa438, 0x9503, 0xa438, 0x1000, 0xa438, 0x1021, 0xa438, 0xd70c,
- 0xa438, 0x5fb3, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f1f,
- 0xa438, 0x9503, 0xa438, 0x1000, 0xa438, 0x1021, 0xa438, 0xd70c,
- 0xa438, 0x7f33, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x0c0f,
- 0xa438, 0x0d00, 0xa438, 0x0c70, 0xa438, 0x0b00, 0xa438, 0xab08,
- 0xa438, 0x9503, 0xa438, 0xd704, 0xa438, 0x3cf1, 0xa438, 0x01f9,
- 0xa438, 0x0c1f, 0xa438, 0x0d11, 0xa438, 0xf003, 0xa438, 0x0c1f,
- 0xa438, 0x0d0d, 0xa438, 0x0cc0, 0xa438, 0x0d40, 0xa438, 0x1000,
- 0xa438, 0x104f, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xab80,
- 0xa438, 0x9503, 0xa438, 0x1000, 0xa438, 0x1021, 0xa438, 0xa940,
- 0xa438, 0xd700, 0xa438, 0x5f99, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0x8b80, 0xa438, 0x9503, 0xa438, 0x8940, 0xa438, 0xd700,
- 0xa438, 0x5bbf, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8b08,
- 0xa438, 0x9503, 0xa438, 0xba20, 0xa438, 0xd704, 0xa438, 0x4100,
- 0xa438, 0xd115, 0xa438, 0xd04f, 0xa438, 0xf001, 0xa438, 0x1000,
- 0xa438, 0x1021, 0xa438, 0xd700, 0xa438, 0x5fb4, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0x0c0f, 0xa438, 0x0d00, 0xa438, 0x0c70,
- 0xa438, 0x0b10, 0xa438, 0xab08, 0xa438, 0x9503, 0xa438, 0xd704,
- 0xa438, 0x3cf1, 0xa438, 0x8178, 0xa438, 0x0c1f, 0xa438, 0x0d11,
- 0xa438, 0xf003, 0xa438, 0x0c1f, 0xa438, 0x0d0d, 0xa438, 0x0cc0,
- 0xa438, 0x0d40, 0xa438, 0x1000, 0xa438, 0x104f, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0xab80, 0xa438, 0x9503, 0xa438, 0x1000,
- 0xa438, 0x1021, 0xa438, 0xd706, 0xa438, 0x5fad, 0xa438, 0xd407,
- 0xa438, 0x1000, 0xa438, 0x0fcf, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0x8b88, 0xa438, 0x9503, 0xa438, 0x1000, 0xa438, 0x1021,
- 0xa438, 0xd702, 0xa438, 0x7fa4, 0xa438, 0xd706, 0xa438, 0x61bf,
- 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x0c30, 0xa438, 0x0110,
- 0xa438, 0xa304, 0xa438, 0x9503, 0xa438, 0xd199, 0xa438, 0xd04b,
- 0xa438, 0x1000, 0xa438, 0x1021, 0xa438, 0xd700, 0xa438, 0x5fb4,
- 0xa438, 0xd704, 0xa438, 0x3cf1, 0xa438, 0x81a5, 0xa438, 0x0c1f,
- 0xa438, 0x0d02, 0xa438, 0xf003, 0xa438, 0x0c1f, 0xa438, 0x0d01,
- 0xa438, 0x0cc0, 0xa438, 0x0d40, 0xa438, 0xa420, 0xa438, 0x8720,
- 0xa438, 0x1000, 0xa438, 0x104f, 0xa438, 0x1000, 0xa438, 0x0fda,
- 0xa438, 0xd70c, 0xa438, 0x41ac, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0x8108, 0xa438, 0x9503, 0xa438, 0x0cc0, 0xa438, 0x0040,
- 0xa438, 0x0c03, 0xa438, 0x0102, 0xa438, 0x0ce0, 0xa438, 0x03e0,
- 0xa438, 0xccce, 0xa438, 0xf008, 0xa438, 0x0cc0, 0xa438, 0x0040,
- 0xa438, 0x0c03, 0xa438, 0x0100, 0xa438, 0x0ce0, 0xa438, 0x0380,
- 0xa438, 0xcc9c, 0xa438, 0x1000, 0xa438, 0x103f, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0xa640, 0xa438, 0x9503, 0xa438, 0xcb16,
- 0xa438, 0xd706, 0xa438, 0x6129, 0xa438, 0xd70c, 0xa438, 0x608c,
- 0xa438, 0xd17a, 0xa438, 0xd04a, 0xa438, 0xf006, 0xa438, 0xd17a,
- 0xa438, 0xd04b, 0xa438, 0xf003, 0xa438, 0xd13d, 0xa438, 0xd04b,
- 0xa438, 0x0c1f, 0xa438, 0x0f14, 0xa438, 0xcb17, 0xa438, 0x8fc0,
- 0xa438, 0x1000, 0xa438, 0x0fbd, 0xa438, 0xaf40, 0xa438, 0x1000,
- 0xa438, 0x0fbd, 0xa438, 0x0cc0, 0xa438, 0x0f80, 0xa438, 0x1000,
- 0xa438, 0x0fbd, 0xa438, 0xafc0, 0xa438, 0x1000, 0xa438, 0x0fbd,
- 0xa438, 0x1000, 0xa438, 0x1021, 0xa438, 0xd701, 0xa438, 0x652e,
- 0xa438, 0xd700, 0xa438, 0x5db4, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0x8640, 0xa438, 0xa702, 0xa438, 0x9503, 0xa438, 0xa720,
- 0xa438, 0x1000, 0xa438, 0x0fda, 0xa438, 0xa108, 0xa438, 0x1000,
- 0xa438, 0x0fec, 0xa438, 0x8108, 0xa438, 0x1000, 0xa438, 0x0fe3,
- 0xa438, 0xa202, 0xa438, 0xa308, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x8308, 0xa438, 0xcb18,
- 0xa438, 0x1000, 0xa438, 0x10c2, 0xa438, 0x1000, 0xa438, 0x1021,
- 0xa438, 0xd70c, 0xa438, 0x2c60, 0xa438, 0x02bd, 0xa438, 0xff58,
- 0xa438, 0x8f1f, 0xa438, 0x1000, 0xa438, 0x1021, 0xa438, 0xd701,
- 0xa438, 0x7f8e, 0xa438, 0x1000, 0xa438, 0x0fe3, 0xa438, 0xa130,
- 0xa438, 0xaa2f, 0xa438, 0xa2d5, 0xa438, 0xa407, 0xa438, 0xa720,
- 0xa438, 0x8310, 0xa438, 0xa308, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x8308, 0xa438, 0x1800,
- 0xa438, 0x02d2, 0xa436, 0xA10E, 0xa438, 0x017f, 0xa436, 0xA10C,
- 0xa438, 0x0e04, 0xa436, 0xA10A, 0xa438, 0x0c67, 0xa436, 0xA108,
- 0xa438, 0x0f13, 0xa436, 0xA106, 0xa438, 0x0eb1, 0xa436, 0xA104,
- 0xa438, 0x0e79, 0xa436, 0xA102, 0xa438, 0x0b23, 0xa436, 0xA100,
- 0xa438, 0x0908, 0xa436, 0xA110, 0xa438, 0x00ff, 0xa436, 0xb87c,
- 0xa438, 0x8ad8, 0xa436, 0xb87e, 0xa438, 0xaf8a, 0xa438, 0xf0af,
- 0xa438, 0x8af9, 0xa438, 0xaf8d, 0xa438, 0xdaaf, 0xa438, 0x8e1c,
- 0xa438, 0xaf8f, 0xa438, 0x03af, 0xa438, 0x8f06, 0xa438, 0xaf8f,
- 0xa438, 0x06af, 0xa438, 0x8f06, 0xa438, 0x0265, 0xa438, 0xa002,
- 0xa438, 0x8d78, 0xa438, 0xaf23, 0xa438, 0x47a1, 0xa438, 0x0d06,
- 0xa438, 0x028b, 0xa438, 0x05af, 0xa438, 0x225a, 0xa438, 0xaf22,
- 0xa438, 0x66f8, 0xa438, 0xe08a, 0xa438, 0x33a0, 0xa438, 0x0005,
- 0xa438, 0x028b, 0xa438, 0x21ae, 0xa438, 0x0ea0, 0xa438, 0x0105,
- 0xa438, 0x028b, 0xa438, 0xb3ae, 0xa438, 0x06a0, 0xa438, 0x0203,
- 0xa438, 0x028c, 0xa438, 0x9dfc, 0xa438, 0x04f8, 0xa438, 0xfbfa,
- 0xa438, 0xef69, 0xa438, 0xe080, 0xa438, 0x13ad, 0xa438, 0x267e,
- 0xa438, 0xd067, 0xa438, 0xe48a, 0xa438, 0x34e4, 0xa438, 0x8a36,
- 0xa438, 0xe48a, 0xa438, 0x38e4, 0xa438, 0x8a3a, 0xa438, 0xd0ae,
- 0xa438, 0xe48a, 0xa438, 0x35e4, 0xa438, 0x8a37, 0xa438, 0xe48a,
- 0xa438, 0x39e4, 0xa438, 0x8a3b, 0xa438, 0xd000, 0xa438, 0xe48a,
- 0xa438, 0x3ce4, 0xa438, 0x8a3d, 0xa438, 0xe48a, 0xa438, 0x3ee4,
- 0xa438, 0x8a3f, 0xa438, 0xe48a, 0xa438, 0x40e4, 0xa438, 0x8a41,
- 0xa438, 0xe48a, 0xa438, 0x42e4, 0xa438, 0x8a43, 0xa438, 0xe48a,
- 0xa438, 0x44d0, 0xa438, 0x02e4, 0xa438, 0x8a45, 0xa438, 0xd00a,
- 0xa438, 0xe48a, 0xa438, 0x46d0, 0xa438, 0x16e4, 0xa438, 0x8a47,
- 0xa438, 0xd01e, 0xa438, 0xe48a, 0xa438, 0x48d1, 0xa438, 0x02bf,
- 0xa438, 0x8dce, 0xa438, 0x026b, 0xa438, 0xd0d1, 0xa438, 0x0abf,
- 0xa438, 0x8dd1, 0xa438, 0x026b, 0xa438, 0xd0d1, 0xa438, 0x16bf,
- 0xa438, 0x8dd4, 0xa438, 0x026b, 0xa438, 0xd0d1, 0xa438, 0x1ebf,
- 0xa438, 0x8dd7, 0xa438, 0x026b, 0xa438, 0xd002, 0xa438, 0x73ab,
- 0xa438, 0xef47, 0xa438, 0xe585, 0xa438, 0x5de4, 0xa438, 0x855c,
- 0xa438, 0xee8a, 0xa438, 0x3301, 0xa438, 0xae03, 0xa438, 0x0224,
- 0xa438, 0x95ef, 0xa438, 0x96fe, 0xa438, 0xfffc, 0xa438, 0x04f8,
- 0xa438, 0xf9fa, 0xa438, 0xcefa, 0xa438, 0xef69, 0xa438, 0xfb02,
- 0xa438, 0x8dab, 0xa438, 0xad50, 0xa438, 0x2ee1, 0xa438, 0x8a44,
- 0xa438, 0xa104, 0xa438, 0x2bee, 0xa438, 0x8a33, 0xa438, 0x02e1,
- 0xa438, 0x8a45, 0xa438, 0xbf8d, 0xa438, 0xce02, 0xa438, 0x6bd0,
- 0xa438, 0xe18a, 0xa438, 0x46bf, 0xa438, 0x8dd1, 0xa438, 0x026b,
- 0xa438, 0xd0e1, 0xa438, 0x8a47, 0xa438, 0xbf8d, 0xa438, 0xd402,
- 0xa438, 0x6bd0, 0xa438, 0xe18a, 0xa438, 0x48bf, 0xa438, 0x8dd7,
- 0xa438, 0x026b, 0xa438, 0xd0af, 0xa438, 0x8c94, 0xa438, 0xd200,
- 0xa438, 0xbe00, 0xa438, 0x0002, 0xa438, 0x8ca5, 0xa438, 0x12a2,
- 0xa438, 0x04f6, 0xa438, 0xe18a, 0xa438, 0x44a1, 0xa438, 0x0020,
- 0xa438, 0xd129, 0xa438, 0xbf8d, 0xa438, 0xce02, 0xa438, 0x6bd0,
- 0xa438, 0xd121, 0xa438, 0xbf8d, 0xa438, 0xd102, 0xa438, 0x6bd0,
- 0xa438, 0xd125, 0xa438, 0xbf8d, 0xa438, 0xd402, 0xa438, 0x6bd0,
- 0xa438, 0xbf8d, 0xa438, 0xd702, 0xa438, 0x6bd0, 0xa438, 0xae44,
- 0xa438, 0xa101, 0xa438, 0x1ed1, 0xa438, 0x31bf, 0xa438, 0x8dce,
- 0xa438, 0x026b, 0xa438, 0xd0bf, 0xa438, 0x8dd1, 0xa438, 0x026b,
- 0xa438, 0xd0d1, 0xa438, 0x2dbf, 0xa438, 0x8dd4, 0xa438, 0x026b,
- 0xa438, 0xd0bf, 0xa438, 0x8dd7, 0xa438, 0x026b, 0xa438, 0xd0ae,
- 0xa438, 0x23a1, 0xa438, 0x0220, 0xa438, 0xd139, 0xa438, 0xbf8d,
- 0xa438, 0xce02, 0xa438, 0x6bd0, 0xa438, 0xbf8d, 0xa438, 0xd102,
- 0xa438, 0x6bd0, 0xa438, 0xd13d, 0xa438, 0xbf8d, 0xa438, 0xd402,
- 0xa438, 0x6bd0, 0xa438, 0xd135, 0xa438, 0xbf8d, 0xa438, 0xd702,
- 0xa438, 0x6bd0, 0xa438, 0xae00, 0xa438, 0xe18a, 0xa438, 0x4411,
- 0xa438, 0xe58a, 0xa438, 0x44d0, 0xa438, 0x00e4, 0xa438, 0x8a3c,
- 0xa438, 0xe48a, 0xa438, 0x3de4, 0xa438, 0x8a3e, 0xa438, 0xe48a,
- 0xa438, 0x3fe4, 0xa438, 0x8a40, 0xa438, 0xe48a, 0xa438, 0x41e4,
- 0xa438, 0x8a42, 0xa438, 0xe48a, 0xa438, 0x4302, 0xa438, 0x73ab,
- 0xa438, 0xef47, 0xa438, 0xe585, 0xa438, 0x5de4, 0xa438, 0x855c,
- 0xa438, 0xffef, 0xa438, 0x96fe, 0xa438, 0xc6fe, 0xa438, 0xfdfc,
- 0xa438, 0x0402, 0xa438, 0x2495, 0xa438, 0xee8a, 0xa438, 0x3300,
- 0xa438, 0x04f8, 0xa438, 0xf9fa, 0xa438, 0xfbef, 0xa438, 0x79fb,
- 0xa438, 0xcffb, 0xa438, 0xd300, 0xa438, 0xa200, 0xa438, 0x09bf,
- 0xa438, 0x8dc2, 0xa438, 0x026b, 0xa438, 0xefaf, 0xa438, 0x8cda,
- 0xa438, 0xa201, 0xa438, 0x09bf, 0xa438, 0x8dc5, 0xa438, 0x026b,
- 0xa438, 0xefaf, 0xa438, 0x8cda, 0xa438, 0xa202, 0xa438, 0x09bf,
- 0xa438, 0x8dc8, 0xa438, 0x026b, 0xa438, 0xefaf, 0xa438, 0x8cda,
- 0xa438, 0xbf8d, 0xa438, 0xcb02, 0xa438, 0x6bef, 0xa438, 0xef64,
- 0xa438, 0xbf8a, 0xa438, 0x3c1a, 0xa438, 0x921a, 0xa438, 0x92d8,
- 0xa438, 0x19d9, 0xa438, 0xef74, 0xa438, 0x0273, 0xa438, 0x93ef,
- 0xa438, 0x47bf, 0xa438, 0x8a3c, 0xa438, 0x1a92, 0xa438, 0x1a92,
- 0xa438, 0xdc19, 0xa438, 0xddd1, 0xa438, 0x0011, 0xa438, 0xa1ff,
- 0xa438, 0xfc13, 0xa438, 0xa310, 0xa438, 0xaf02, 0xa438, 0x8d0e,
- 0xa438, 0xffc7, 0xa438, 0xffef, 0xa438, 0x97ff, 0xa438, 0xfefd,
- 0xa438, 0xfc04, 0xa438, 0xf8fa, 0xa438, 0xfbef, 0xa438, 0x79fb,
- 0xa438, 0xcffb, 0xa438, 0xbf8a, 0xa438, 0x3c1a, 0xa438, 0x921a,
- 0xa438, 0x92d8, 0xa438, 0x19d9, 0xa438, 0xef64, 0xa438, 0xbf8a,
- 0xa438, 0x341a, 0xa438, 0x921a, 0xa438, 0x92d8, 0xa438, 0x19d9,
- 0xa438, 0xef74, 0xa438, 0x0273, 0xa438, 0x78a2, 0xa438, 0x0005,
- 0xa438, 0xbe8d, 0xa438, 0xceae, 0xa438, 0x13a2, 0xa438, 0x0105,
- 0xa438, 0xbe8d, 0xa438, 0xd1ae, 0xa438, 0x0ba2, 0xa438, 0x0205,
- 0xa438, 0xbe8d, 0xa438, 0xd4ae, 0xa438, 0x03be, 0xa438, 0x8dd7,
- 0xa438, 0xad50, 0xa438, 0x17bf, 0xa438, 0x8a45, 0xa438, 0x1a92,
- 0xa438, 0x0702, 0xa438, 0x6bef, 0xa438, 0x07dd, 0xa438, 0xef46,
- 0xa438, 0xbf8a, 0xa438, 0x341a, 0xa438, 0x921a, 0xa438, 0x92dc,
- 0xa438, 0x19dd, 0xa438, 0xffc7, 0xa438, 0xffef, 0xa438, 0x97ff,
- 0xa438, 0xfefc, 0xa438, 0x04ee, 0xa438, 0x8a33, 0xa438, 0x00ee,
- 0xa438, 0x8a32, 0xa438, 0x0404, 0xa438, 0xf8fa, 0xa438, 0xef69,
- 0xa438, 0xe080, 0xa438, 0x13ad, 0xa438, 0x2624, 0xa438, 0xd102,
- 0xa438, 0xbf8d, 0xa438, 0xce02, 0xa438, 0x6bd0, 0xa438, 0xd10a,
- 0xa438, 0xbf8d, 0xa438, 0xd102, 0xa438, 0x6bd0, 0xa438, 0xd116,
- 0xa438, 0xbf8d, 0xa438, 0xd402, 0xa438, 0x6bd0, 0xa438, 0xd11e,
- 0xa438, 0xbf8d, 0xa438, 0xd702, 0xa438, 0x6bd0, 0xa438, 0xee8a,
- 0xa438, 0x3300, 0xa438, 0xef96, 0xa438, 0xfefc, 0xa438, 0x04f8,
- 0xa438, 0xfae0, 0xa438, 0x855c, 0xa438, 0xe185, 0xa438, 0x5def,
- 0xa438, 0x64d0, 0xa438, 0x00e1, 0xa438, 0x8a32, 0xa438, 0xef74,
- 0xa438, 0x0273, 0xa438, 0xc6fe, 0xa438, 0xfc04, 0xa438, 0xf0b2,
- 0xa438, 0x02f0, 0xa438, 0xb282, 0xa438, 0xf0b3, 0xa438, 0x02f0,
- 0xa438, 0xb382, 0xa438, 0x50ac, 0xa438, 0xd450, 0xa438, 0xacd6,
- 0xa438, 0xb6ac, 0xa438, 0xd4b6, 0xa438, 0xacd6, 0xa438, 0xbf8e,
- 0xa438, 0x0d02, 0xa438, 0x6bd0, 0xa438, 0xd0ff, 0xa438, 0xd1fe,
- 0xa438, 0xbf8e, 0xa438, 0x1002, 0xa438, 0x6bd0, 0xa438, 0xd004,
- 0xa438, 0xd14d, 0xa438, 0xbf8e, 0xa438, 0x1302, 0xa438, 0x6bd0,
- 0xa438, 0xd0fc, 0xa438, 0xd1c6, 0xa438, 0xbf8e, 0xa438, 0x1602,
- 0xa438, 0x6bd0, 0xa438, 0xd009, 0xa438, 0xd146, 0xa438, 0xbf8e,
- 0xa438, 0x1902, 0xa438, 0x6bd0, 0xa438, 0xef13, 0xa438, 0xaf2d,
- 0xa438, 0xbdf0, 0xa438, 0xac1c, 0xa438, 0xf0ac, 0xa438, 0x2af0,
- 0xa438, 0xac2c, 0xa438, 0xf0ac, 0xa438, 0x2ef0, 0xa438, 0xac30,
- 0xa438, 0xbf8e, 0xa438, 0xf102, 0xa438, 0x6bef, 0xa438, 0xac28,
- 0xa438, 0x70bf, 0xa438, 0x8eeb, 0xa438, 0x026b, 0xa438, 0xefac,
- 0xa438, 0x2867, 0xa438, 0xbf8e, 0xa438, 0xee02, 0xa438, 0x6bef,
- 0xa438, 0xad28, 0xa438, 0x5bbf, 0xa438, 0x8ff2, 0xa438, 0xd8bf,
- 0xa438, 0x8ff3, 0xa438, 0xd9bf, 0xa438, 0x8ef4, 0xa438, 0x026b,
- 0xa438, 0xd0bf, 0xa438, 0x8ff0, 0xa438, 0xd8bf, 0xa438, 0x8ff1,
- 0xa438, 0xd9bf, 0xa438, 0x8ef7, 0xa438, 0x026b, 0xa438, 0xd0bf,
- 0xa438, 0x8fee, 0xa438, 0xd8bf, 0xa438, 0x8fef, 0xa438, 0xd9bf,
- 0xa438, 0x8efa, 0xa438, 0x026b, 0xa438, 0xd0bf, 0xa438, 0x8fec,
- 0xa438, 0xd8bf, 0xa438, 0x8fed, 0xa438, 0xd9bf, 0xa438, 0x8efd,
- 0xa438, 0x026b, 0xa438, 0xd0bf, 0xa438, 0x8fea, 0xa438, 0xd8bf,
- 0xa438, 0x8feb, 0xa438, 0xd9bf, 0xa438, 0x8f00, 0xa438, 0x026b,
- 0xa438, 0xd0bf, 0xa438, 0x8fe8, 0xa438, 0xd8bf, 0xa438, 0x8fe9,
- 0xa438, 0xd9bf, 0xa438, 0x8e0d, 0xa438, 0x026b, 0xa438, 0xd01f,
- 0xa438, 0x00e1, 0xa438, 0x86ee, 0xa438, 0x1b64, 0xa438, 0xaf3d,
- 0xa438, 0x7abf, 0xa438, 0x8ffe, 0xa438, 0xd8bf, 0xa438, 0x8fff,
- 0xa438, 0xd9bf, 0xa438, 0x8ef4, 0xa438, 0x026b, 0xa438, 0xd0bf,
- 0xa438, 0x8ffc, 0xa438, 0xd8bf, 0xa438, 0x8ffd, 0xa438, 0xd9bf,
- 0xa438, 0x8ef7, 0xa438, 0x026b, 0xa438, 0xd0bf, 0xa438, 0x8ffa,
- 0xa438, 0xd8bf, 0xa438, 0x8ffb, 0xa438, 0xd9bf, 0xa438, 0x8efa,
- 0xa438, 0x026b, 0xa438, 0xd0bf, 0xa438, 0x8ff8, 0xa438, 0xd8bf,
- 0xa438, 0x8ff9, 0xa438, 0xd9bf, 0xa438, 0x8efd, 0xa438, 0x026b,
- 0xa438, 0xd0bf, 0xa438, 0x8ff6, 0xa438, 0xd8bf, 0xa438, 0x8ff7,
- 0xa438, 0xd9bf, 0xa438, 0x8f00, 0xa438, 0x026b, 0xa438, 0xd0bf,
- 0xa438, 0x8ff4, 0xa438, 0xd8bf, 0xa438, 0x8ff5, 0xa438, 0xd9bf,
- 0xa438, 0x8e0d, 0xa438, 0x026b, 0xa438, 0xd0ae, 0xa438, 0xa766,
- 0xa438, 0xac5c, 0xa438, 0xbbac, 0xa438, 0x5c99, 0xa438, 0xac5c,
- 0xa438, 0xf0ac, 0xa438, 0x26f0, 0xa438, 0xac24, 0xa438, 0xf0ac,
- 0xa438, 0x22f0, 0xa438, 0xac20, 0xa438, 0xf0ac, 0xa438, 0x1eaf,
- 0xa438, 0x44f8, 0xa436, 0xb85e, 0xa438, 0x2344, 0xa436, 0xb860,
- 0xa438, 0x2254, 0xa436, 0xb862, 0xa438, 0x2DB5, 0xa436, 0xb864,
- 0xa438, 0x3D6C, 0xa436, 0xb886, 0xa438, 0x44ED, 0xa436, 0xb888,
- 0xa438, 0xffff, 0xa436, 0xb88a, 0xa438, 0xffff, 0xa436, 0xb88c,
- 0xa438, 0xffff, 0xa436, 0xb838, 0xa438, 0x001f, 0xb820, 0x0010,
- 0xa436, 0x87ad, 0xa438, 0xaf87, 0xa438, 0xc5af, 0xa438, 0x87e4,
- 0xa438, 0xaf8a, 0xa438, 0x3daf, 0xa438, 0x8a62, 0xa438, 0xaf8a,
- 0xa438, 0x62af, 0xa438, 0x8a62, 0xa438, 0xaf8a, 0xa438, 0x62af,
- 0xa438, 0x8a62, 0xa438, 0x2810, 0xa438, 0x0d01, 0xa438, 0xe484,
- 0xa438, 0xbf29, 0xa438, 0x100d, 0xa438, 0x11e5, 0xa438, 0x84c0,
- 0xa438, 0x2a10, 0xa438, 0x0d21, 0xa438, 0xe684, 0xa438, 0xc12b,
- 0xa438, 0x100d, 0xa438, 0x31e7, 0xa438, 0x84c2, 0xa438, 0xaf3f,
- 0xa438, 0x7cf8, 0xa438, 0xe080, 0xa438, 0x4cac, 0xa438, 0x222c,
- 0xa438, 0xe080, 0xa438, 0x40ad, 0xa438, 0x2232, 0xa438, 0xbf8a,
- 0xa438, 0x2502, 0xa438, 0x6752, 0xa438, 0xad29, 0xa438, 0x0502,
- 0xa438, 0x8827, 0xa438, 0xae0d, 0xa438, 0xad28, 0xa438, 0x0502,
- 0xa438, 0x8961, 0xa438, 0xae05, 0xa438, 0x0214, 0xa438, 0x04ae,
- 0xa438, 0x00e0, 0xa438, 0x8040, 0xa438, 0xac22, 0xa438, 0x1102,
- 0xa438, 0x13e1, 0xa438, 0xae0c, 0xa438, 0x0288, 0xa438, 0x7c02,
- 0xa438, 0x8a10, 0xa438, 0x0214, 0xa438, 0x2502, 0xa438, 0x1404,
- 0xa438, 0xfcaf, 0xa438, 0x13c6, 0xa438, 0xf8f8, 0xa438, 0xccf9,
- 0xa438, 0xfaef, 0xa438, 0x69fb, 0xa438, 0xe080, 0xa438, 0x18ad,
- 0xa438, 0x223b, 0xa438, 0xbf8a, 0xa438, 0x2b02, 0xa438, 0x6752,
- 0xa438, 0xad28, 0xa438, 0x32bf, 0xa438, 0x8a28, 0xa438, 0x026f,
- 0xa438, 0x17ee, 0xa438, 0x8ff3, 0xa438, 0x00bf, 0xa438, 0x6854,
- 0xa438, 0x0267, 0xa438, 0x52ad, 0xa438, 0x281f, 0xa438, 0xbf68,
- 0xa438, 0x5d02, 0xa438, 0x6752, 0xa438, 0xad28, 0xa438, 0x16e0,
- 0xa438, 0x8ff4, 0xa438, 0xe18f, 0xa438, 0xf502, 0xa438, 0x8891,
- 0xa438, 0xad50, 0xa438, 0x0abf, 0xa438, 0x8a28, 0xa438, 0x026f,
- 0xa438, 0x20ee, 0xa438, 0x8ff3, 0xa438, 0x0102, 0xa438, 0x1404,
- 0xa438, 0xffef, 0xa438, 0x96fe, 0xa438, 0xfdc4, 0xa438, 0xfcfc,
- 0xa438, 0x04f8, 0xa438, 0xf9ef, 0xa438, 0x59e0, 0xa438, 0x8018,
- 0xa438, 0xad22, 0xa438, 0x06bf, 0xa438, 0x8a28, 0xa438, 0x026f,
- 0xa438, 0x17ef, 0xa438, 0x95fd, 0xa438, 0xfc04, 0xa438, 0xf8f9,
- 0xa438, 0xf9ef, 0xa438, 0x59fa, 0xa438, 0xface, 0xa438, 0xe48f,
- 0xa438, 0xfee5, 0xa438, 0x8fff, 0xa438, 0xbf6e, 0xa438, 0x1b02,
- 0xa438, 0x6f20, 0xa438, 0xbf6e, 0xa438, 0x1802, 0xa438, 0x6f17,
- 0xa438, 0xd102, 0xa438, 0xbf6e, 0xa438, 0x1202, 0xa438, 0x6733,
- 0xa438, 0xbf6e, 0xa438, 0x1502, 0xa438, 0x6f17, 0xa438, 0xbe00,
- 0xa438, 0x00cc, 0xa438, 0xbf69, 0xa438, 0xcb02, 0xa438, 0x6733,
- 0xa438, 0xbf69, 0xa438, 0xce02, 0xa438, 0x6f17, 0xa438, 0xbf69,
- 0xa438, 0xce02, 0xa438, 0x6f20, 0xa438, 0xbf69, 0xa438, 0xd102,
- 0xa438, 0x6752, 0xa438, 0xad28, 0xa438, 0xf70c, 0xa438, 0x81bf,
- 0xa438, 0x8ff6, 0xa438, 0x1a98, 0xa438, 0xef59, 0xa438, 0xbf69,
- 0xa438, 0xd402, 0xa438, 0x6752, 0xa438, 0xef95, 0xa438, 0xdc19,
- 0xa438, 0xdd0d, 0xa438, 0x8118, 0xa438, 0xa800, 0xa438, 0x04c9,
- 0xa438, 0xbf69, 0xa438, 0xce02, 0xa438, 0x6f17, 0xa438, 0xe08f,
- 0xa438, 0xfce1, 0xa438, 0x8ffd, 0xa438, 0xef74, 0xa438, 0xe08f,
- 0xa438, 0xfae1, 0xa438, 0x8ffb, 0xa438, 0xef64, 0xa438, 0x026e,
- 0xa438, 0x57ad, 0xa438, 0x5008, 0xa438, 0xe08f, 0xa438, 0xfce1,
- 0xa438, 0x8ffd, 0xa438, 0xae06, 0xa438, 0xe08f, 0xa438, 0xfae1,
- 0xa438, 0x8ffb, 0xa438, 0xe28f, 0xa438, 0xf8e3, 0xa438, 0x8ff9,
- 0xa438, 0xef75, 0xa438, 0xe28f, 0xa438, 0xf6e3, 0xa438, 0x8ff7,
- 0xa438, 0xef65, 0xa438, 0x026e, 0xa438, 0x57ad, 0xa438, 0x5008,
- 0xa438, 0xe28f, 0xa438, 0xf8e3, 0xa438, 0x8ff9, 0xa438, 0xae06,
- 0xa438, 0xe28f, 0xa438, 0xf6e3, 0xa438, 0x8ff7, 0xa438, 0x1b45,
- 0xa438, 0xad27, 0xa438, 0x05d7, 0xa438, 0x0000, 0xa438, 0xae0d,
- 0xa438, 0xef74, 0xa438, 0xe08f, 0xa438, 0xfee1, 0xa438, 0x8fff,
- 0xa438, 0xef64, 0xa438, 0x026e, 0xa438, 0x57c6, 0xa438, 0xfefe,
- 0xa438, 0xef95, 0xa438, 0xfdfd, 0xa438, 0xfc04, 0xa438, 0xf8f9,
- 0xa438, 0xfaef, 0xa438, 0x69fb, 0xa438, 0xe080, 0xa438, 0x18ac,
- 0xa438, 0x2103, 0xa438, 0xaf8a, 0xa438, 0x06bf, 0xa438, 0x8a2b,
- 0xa438, 0xac21, 0xa438, 0x03af, 0xa438, 0x8a06, 0xa438, 0xbf8a,
- 0xa438, 0x2802, 0xa438, 0x6f17, 0xa438, 0xee8f, 0xa438, 0xee00,
- 0xa438, 0xee8f, 0xa438, 0xed00, 0xa438, 0xbf8a, 0xa438, 0x2e02,
- 0xa438, 0x6752, 0xa438, 0xad28, 0xa438, 0x03af, 0xa438, 0x8a06,
- 0xa438, 0xe28f, 0xa438, 0xefe3, 0xa438, 0x8ff0, 0xa438, 0xbf68,
- 0xa438, 0x5102, 0xa438, 0x6752, 0xa438, 0xac28, 0xa438, 0x11e2,
- 0xa438, 0x8ff1, 0xa438, 0xe38f, 0xa438, 0xf2bf, 0xa438, 0x6848,
- 0xa438, 0x0267, 0xa438, 0x52ac, 0xa438, 0x2802, 0xa438, 0xae53,
- 0xa438, 0xbf68, 0xa438, 0x5a02, 0xa438, 0x6752, 0xa438, 0xad28,
- 0xa438, 0x0aef, 0xa438, 0x4502, 0xa438, 0x8891, 0xa438, 0xac50,
- 0xa438, 0x38ae, 0xa438, 0x40bf, 0xa438, 0x8a31, 0xa438, 0x0267,
- 0xa438, 0x52ef, 0xa438, 0x31bf, 0xa438, 0x8a34, 0xa438, 0x0267,
- 0xa438, 0x520c, 0xa438, 0x311e, 0xa438, 0x31bf, 0xa438, 0x8a37,
- 0xa438, 0x0267, 0xa438, 0x520c, 0xa438, 0x311e, 0xa438, 0x31bf,
- 0xa438, 0x8a3a, 0xa438, 0x0267, 0xa438, 0x520c, 0xa438, 0x311e,
- 0xa438, 0x31e7, 0xa438, 0x8fee, 0xa438, 0xa30c, 0xa438, 0x02ae,
- 0xa438, 0x08a3, 0xa438, 0x0e02, 0xa438, 0xae03, 0xa438, 0xa30d,
- 0xa438, 0x0aee, 0xa438, 0x8fed, 0xa438, 0x01bf, 0xa438, 0x8a28,
- 0xa438, 0x026f, 0xa438, 0x2002, 0xa438, 0x1404, 0xa438, 0xffef,
- 0xa438, 0x96fe, 0xa438, 0xfdfc, 0xa438, 0x04f8, 0xa438, 0xfaef,
- 0xa438, 0x69e0, 0xa438, 0x8018, 0xa438, 0xad21, 0xa438, 0x06bf,
- 0xa438, 0x8a28, 0xa438, 0x026f, 0xa438, 0x17ef, 0xa438, 0x96fe,
- 0xa438, 0xfc04, 0xa438, 0xf8a4, 0xa438, 0xb677, 0xa438, 0xa4b6,
- 0xa438, 0x22a4, 0xa438, 0x4222, 0xa438, 0xa668, 0xa438, 0x00b2,
- 0xa438, 0x3e00, 0xa438, 0xb2be, 0xa438, 0x00b3, 0xa438, 0x3e00,
- 0xa438, 0xb3be, 0xa438, 0xd10f, 0xa438, 0xbf8a, 0xa438, 0x5c02,
- 0xa438, 0x6733, 0xa438, 0xbf8a, 0xa438, 0x5f02, 0xa438, 0x6733,
- 0xa438, 0xbf8a, 0xa438, 0x5c02, 0xa438, 0x6f17, 0xa438, 0xbf8a,
- 0xa438, 0x5f02, 0xa438, 0x6f17, 0xa438, 0x1f00, 0xa438, 0xaf3d,
- 0xa438, 0x0c30, 0xa438, 0xa85a, 0xa438, 0xfcad, 0xa438, 0x0e00,
- 0xa436, 0xb818, 0xa438, 0x3f31, 0xa436, 0xb81a, 0xa438, 0x13a4,
- 0xa436, 0xb81c, 0xa438, 0x3d0a, 0xa436, 0xb81e, 0xa438, 0xffff,
- 0xa436, 0xb850, 0xa438, 0xffff, 0xa436, 0xb852, 0xa438, 0xffff,
- 0xa436, 0xb878, 0xa438, 0xffff, 0xa436, 0xb884, 0xa438, 0xffff,
- 0xa436, 0xb832, 0xa438, 0x0007, 0xa436, 0x84cf, 0xa438, 0x0101,
- 0xa466, 0x0002, 0xa436, 0x86a7, 0xa438, 0x0000, 0xa436, 0x0000,
- 0xa438, 0x0000, 0xa436, 0xB82E, 0xa438, 0x0000, 0xa436, 0x8023,
- 0xa438, 0x0000, 0xa436, 0x801E, 0xa438, 0x0023, 0xb820, 0x0000,
- 0xFFFF, 0xFFFF
-};
-
-static const u16 phy_mcu_ram_code_8126a_1_2[] = {
- 0xB87C, 0x8a32, 0xB87E, 0x0400, 0xB87C, 0x8376, 0xB87E, 0x0300,
- 0xce00, 0x6CAF, 0xB87C, 0x8301, 0xB87E, 0x1133, 0xB87C, 0x8105,
- 0xB87E, 0xa000, 0xB87C, 0x8148, 0xB87E, 0xa000, 0xa436, 0x81d8,
- 0xa438, 0x5865, 0xacf8, 0xCCC0, 0xac90, 0x52B0, 0xad2C, 0x8000,
- 0xB87C, 0x83e6, 0xB87E, 0x4A0E, 0xB87C, 0x83d2, 0xB87E, 0x0A0E,
- 0xB87C, 0x80a0, 0xB87E, 0xB8B6, 0xB87C, 0x805e, 0xB87E, 0xB8B6,
- 0xB87C, 0x8057, 0xB87E, 0x305A, 0xB87C, 0x8099, 0xB87E, 0x305A,
- 0xB87C, 0x8052, 0xB87E, 0x3333, 0xB87C, 0x8094, 0xB87E, 0x3333,
- 0xB87C, 0x807F, 0xB87E, 0x7975, 0xB87C, 0x803D, 0xB87E, 0x7975,
- 0xB87C, 0x8036, 0xB87E, 0x305A, 0xB87C, 0x8078, 0xB87E, 0x305A,
- 0xB87C, 0x8031, 0xB87E, 0x3335, 0xB87C, 0x8073, 0xB87E, 0x3335,
- 0xa436, 0x81D8, 0xa438, 0x5865, 0xB87C, 0x867c, 0xB87E, 0x0617,
- 0xad94, 0x0092, 0xB87C, 0x89B1, 0xB87E, 0x5050, 0xB87C, 0x86E0,
- 0xB87E, 0x809A, 0xB87C, 0x86E2, 0xB87E, 0xB34D, 0xB87C, 0x8FD2,
- 0xB87E, 0x004B, 0xB87C, 0x8691, 0xB87E, 0x007D, 0xB87E, 0x00AF,
- 0xB87E, 0x00E1, 0xB87E, 0x00FF, 0xB87C, 0x867F, 0xB87E, 0x0201,
- 0xB87E, 0x0201, 0xB87E, 0x0201, 0xB87E, 0x0201, 0xB87E, 0x0201,
- 0xB87E, 0x0201, 0xB87C, 0x86DA, 0xB87E, 0xCDCD, 0xB87E, 0xE6CD,
- 0xB87E, 0xCDCD, 0xB87C, 0x8FE8, 0xB87E, 0x0368, 0xB87E, 0x033F,
- 0xB87E, 0x1046, 0xB87E, 0x147D, 0xB87E, 0x147D, 0xB87E, 0x147D,
- 0xB87E, 0x0368, 0xB87E, 0x033F, 0xB87E, 0x1046, 0xB87E, 0x147D,
- 0xB87E, 0x147D, 0xB87E, 0x147D, 0xa436, 0x80dd, 0xa438, 0xf0AB,
- 0xa436, 0x80df, 0xa438, 0xC009, 0xa436, 0x80e7, 0xa438, 0x401E,
- 0xa436, 0x80e1, 0xa438, 0x120A, 0xa436, 0x86f2, 0xa438, 0x5094,
- 0xa436, 0x8701, 0xa438, 0x5094, 0xa436, 0x80f1, 0xa438, 0x30CC,
- 0xa436, 0x80f3, 0xa438, 0x0001, 0xa436, 0x80f5, 0xa438, 0x330B,
- 0xa436, 0x80f8, 0xa438, 0xCB76, 0xa436, 0x8105, 0xa438, 0xf0D3,
- 0xa436, 0x8107, 0xa438, 0x0002, 0xa436, 0x8109, 0xa438, 0xff0B,
- 0xa436, 0x810c, 0xa438, 0xC86D, 0xB87C, 0x8a32, 0xB87E, 0x0400,
- 0xa6f8, 0x0000, 0xa6f8, 0x0000, 0xa436, 0x81bc, 0xa438, 0x1300,
- 0xa846, 0x2410, 0xa86A, 0x0801, 0xa85C, 0x9680, 0xa436, 0x841D,
- 0xa438, 0x4A28, 0xa436, 0x8016, 0xa438, 0xBE05, 0xBF9C, 0x004A,
- 0xBF96, 0x41FA, 0xBF9A, 0xDC81, 0xa436, 0x8018, 0xa438, 0x0700,
- 0xa436, 0x8ff4, 0xa438, 0x01AE, 0xa436, 0x8fef, 0xa438, 0x0172,
- 0xa438, 0x00dc, 0xc842, 0x0002, 0xFFFF, 0xFFFF
-};
-
-static const u16 phy_mcu_ram_code_8126a_1_3[] = {
- 0xb892, 0x0000, 0xB88E, 0xC236, 0xB890, 0x1A1C, 0xB88E, 0xC238,
- 0xB890, 0x1C1C, 0xB890, 0x1C1C, 0xB890, 0x2D2D, 0xB890, 0x2D2D,
- 0xB890, 0x2D2A, 0xB890, 0x2A2A, 0xB890, 0x2A2A, 0xB890, 0x2A19,
- 0xB88E, 0xC272, 0xB890, 0x8484, 0xB890, 0x8484, 0xB890, 0x84B4,
- 0xB890, 0xB4B4, 0xB890, 0xB4B4, 0xB890, 0xF8F8, 0xB890, 0xF8F8,
- 0xB890, 0xF8F8, 0xB88E, 0xC000, 0xB890, 0x0303, 0xB890, 0x0405,
- 0xB890, 0x0608, 0xB890, 0x0A0B, 0xB890, 0x0E11, 0xB890, 0x1519,
- 0xB890, 0x2028, 0xB890, 0x3503, 0xB890, 0x0304, 0xB890, 0x0405,
- 0xB890, 0x0606, 0xB890, 0x0708, 0xB890, 0x090A, 0xB890, 0x0B0D,
- 0xB890, 0x0F11, 0xB890, 0x1315, 0xB890, 0x181A, 0xB890, 0x2029,
- 0xB890, 0x2F36, 0xB890, 0x3D43, 0xB890, 0x0101, 0xB890, 0x0102,
- 0xB890, 0x0202, 0xB890, 0x0303, 0xB890, 0x0405, 0xB890, 0x0607,
- 0xB890, 0x090A, 0xB890, 0x0C0E, 0xB88E, 0xC038, 0xB890, 0x6AE1,
- 0xB890, 0x8E6B, 0xB890, 0xA767, 0xB890, 0x01EF, 0xB890, 0x5A63,
- 0xB890, 0x2B99, 0xB890, 0x7F5D, 0xB890, 0x361F, 0xB890, 0xA127,
- 0xB890, 0xB558, 0xB890, 0x11C3, 0xB890, 0x7D85, 0xB890, 0xBAC5,
- 0xB890, 0xE691, 0xB890, 0x8F79, 0xB890, 0x3164, 0xB890, 0x3293,
- 0xB890, 0xB80D, 0xB890, 0xE2B7, 0xB890, 0x0D62, 0xB890, 0x4F85,
- 0xB890, 0xC919, 0xB890, 0x78F3, 0xB890, 0x77FF, 0xB890, 0xBD9E,
- 0xB890, 0x69D6, 0xB890, 0x6DA4, 0xB890, 0x0CC5, 0xB88E, 0xC1D2,
- 0xB890, 0x2425, 0xB890, 0x2627, 0xB890, 0x2829, 0xB890, 0x2A2B,
- 0xB890, 0x2C2D, 0xB890, 0x2E2F, 0xB890, 0x3031, 0xB890, 0x3233,
- 0xB890, 0x2323, 0xB890, 0x2424, 0xB890, 0x2525, 0xB890, 0x2626,
- 0xB890, 0x2727, 0xB890, 0x2828, 0xB890, 0x2929, 0xB890, 0x2A2A,
- 0xB890, 0x2B2C, 0xB890, 0x2C2D, 0xB890, 0x2D2E, 0xB890, 0x2E2F,
- 0xB890, 0x2F30, 0xB890, 0x1A1B, 0xB890, 0x1D1E, 0xB890, 0x1F20,
- 0xB890, 0x2123, 0xB890, 0x2425, 0xB890, 0x2628, 0xB890, 0x292A,
- 0xB890, 0x2B2C, 0xB890, 0x2E12, 0xB88E, 0xC09A, 0xB890, 0xD3D3,
- 0xB890, 0xD3D3, 0xB890, 0xD3D3, 0xB890, 0xD3D3, 0xB890, 0xD3D3,
- 0xB890, 0xD3D3, 0xB890, 0xD3D3, 0xB890, 0xD3D3, 0xFFFF, 0xFFFF
-};
-
static const u16 phy_mcu_ram_code_8126a_2_1[] = {
0xa436, 0x8023, 0xa438, 0x4700, 0xa436, 0xB82E, 0xa438, 0x0001,
0xb820, 0x0090, 0xa436, 0xA016, 0xa438, 0x0000, 0xa436, 0xA012,
@@ -3086,49 +2518,6 @@ static const u16 phy_mcu_ram_code_8126a_3_1[] = {
0xB820, 0x0000, 0xFFFF, 0xFFFF
};
-static void
-rtl_real_set_phy_mcu_8126a_1_1(struct rtl_hw *hw)
-{
- rtl_set_phy_mcu_ram_code(hw, phy_mcu_ram_code_8126a_1_1,
- ARRAY_SIZE(phy_mcu_ram_code_8126a_1_1));
-}
-
-static void
-rtl_real_set_phy_mcu_8126a_1_2(struct rtl_hw *hw)
-{
- rtl_set_phy_mcu_ram_code(hw, phy_mcu_ram_code_8126a_1_2,
- ARRAY_SIZE(phy_mcu_ram_code_8126a_1_2));
-}
-
-static void
-rtl_real_set_phy_mcu_8126a_1_3(struct rtl_hw *hw)
-{
- rtl_set_phy_mcu_ram_code(hw, phy_mcu_ram_code_8126a_1_3,
- ARRAY_SIZE(phy_mcu_ram_code_8126a_1_3));
-}
-
-void
-rtl_set_phy_mcu_8126a_1(struct rtl_hw *hw)
-{
- rtl_set_phy_mcu_patch_request(hw);
-
- rtl_real_set_phy_mcu_8126a_1_1(hw);
-
- rtl_clear_phy_mcu_patch_request(hw);
-
- rtl_set_phy_mcu_patch_request(hw);
-
- rtl_real_set_phy_mcu_8126a_1_2(hw);
-
- rtl_clear_phy_mcu_patch_request(hw);
-
- rtl_set_phy_mcu_patch_request(hw);
-
- rtl_real_set_phy_mcu_8126a_1_3(hw);
-
- rtl_clear_phy_mcu_patch_request(hw);
-}
-
static void
rtl_real_set_phy_mcu_8126a_2_1(struct rtl_hw *hw)
{
diff --git a/drivers/net/r8169/base/rtl8126a_mcu.h b/drivers/net/r8169/base/rtl8126a_mcu.h
index 61da1d884c..e6d2783487 100644
--- a/drivers/net/r8169/base/rtl8126a_mcu.h
+++ b/drivers/net/r8169/base/rtl8126a_mcu.h
@@ -5,11 +5,9 @@
#ifndef RTL8126A_MCU_H
#define RTL8126A_MCU_H
-void rtl_set_mac_mcu_8126a_1(struct rtl_hw *hw);
void rtl_set_mac_mcu_8126a_2(struct rtl_hw *hw);
void rtl_set_mac_mcu_8126a_3(struct rtl_hw *hw);
-void rtl_set_phy_mcu_8126a_1(struct rtl_hw *hw);
void rtl_set_phy_mcu_8126a_2(struct rtl_hw *hw);
void rtl_set_phy_mcu_8126a_3(struct rtl_hw *hw);
diff --git a/drivers/net/r8169/r8169_ethdev.c b/drivers/net/r8169/r8169_ethdev.c
index 8e46ce09a1..80e03dd53c 100644
--- a/drivers/net/r8169/r8169_ethdev.c
+++ b/drivers/net/r8169/r8169_ethdev.c
@@ -38,7 +38,7 @@ static int rtl_dev_infos_get(struct rte_eth_dev *dev,
struct rte_eth_dev_info *dev_info);
static int rtl_dev_stats_get(struct rte_eth_dev *dev,
struct rte_eth_stats *rte_stats,
- struct eth_queue_stats *qstats);
+ struct eth_queue_stats *qstats __rte_unused);
static int rtl_dev_stats_reset(struct rte_eth_dev *dev);
static int rtl_promiscuous_enable(struct rte_eth_dev *dev);
static int rtl_promiscuous_disable(struct rte_eth_dev *dev);
@@ -436,7 +436,7 @@ rtl_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
break;
}
- if (hw->mcfg >= CFG_METHOD_69) {
+ if (hw->mcfg >= CFG_METHOD_70) {
dev_info->max_rx_queues = 4;
dev_info->max_tx_queues = 2;
} else {
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index 32c370deba..05d977379a 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -631,7 +631,6 @@ rtl_stop_all_request(struct rtl_hw *hw)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_59:
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -689,7 +688,6 @@ rtl_wait_txrx_fifo_empty(struct rtl_hw *hw)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_59:
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -929,9 +927,6 @@ rtl8125_set_rx_desc_type(struct rtl_hw *hw)
case CFG_METHOD_59:
RTL_W8(hw, 0xD8, RTL_R8(hw, 0xD8) & ~EnableRxDescV4_0);
break;
- case CFG_METHOD_69:
- RTL_W32(hw, RxConfig, EnableRxDescV3 | RTL_R32(hw, RxConfig));
- break;
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -967,7 +962,7 @@ rtl8125_hw_config(struct rtl_hw *hw)
if (hw->mcfg >= CFG_METHOD_48 && hw->mcfg <= CFG_METHOD_53)
RTL_W16(hw, 0x382, 0x221B);
- if ((hw->mcfg >= CFG_METHOD_69 && hw->mcfg <= CFG_METHOD_71) ||
+ if ((hw->mcfg >= CFG_METHOD_70 && hw->mcfg <= CFG_METHOD_71) ||
hw->mcfg == CFG_METHOD_91)
rtl_disable_l1_timeout(hw);
@@ -1265,7 +1260,6 @@ rtl_set_hw_ops(struct rtl_hw *hw)
hw->hw_ops = rtl8125cp_ops;
return 0;
/* 8126A */
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
hw->hw_ops = rtl8126a_ops;
@@ -1553,7 +1547,6 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_59:
hw->chipset_name = RTL8168KD;
break;
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
hw->chipset_name = RTL8126A;
@@ -1704,7 +1697,6 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_59:
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -1730,9 +1722,6 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_91:
hw->HwSuppTxNoCloseVer = 6;
break;
- case CFG_METHOD_69:
- hw->HwSuppTxNoCloseVer = 4;
- break;
case CFG_METHOD_70:
case CFG_METHOD_71:
hw->HwSuppTxNoCloseVer = 5;
@@ -1824,9 +1813,6 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_58:
hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_58;
break;
- case CFG_METHOD_69:
- hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_69;
- break;
case CFG_METHOD_70:
hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_70;
break;
@@ -1849,7 +1835,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
hw->mcu_pme_setting = rtl_mac_ocp_read(hw, 0xE00A);
}
- if (hw->mcfg >= CFG_METHOD_69)
+ if (hw->mcfg >= CFG_METHOD_70)
hw->EnableRss = 1;
else
hw->EnableRss = 0;
@@ -1869,7 +1855,6 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_50:
case CFG_METHOD_51:
case CFG_METHOD_53:
- case CFG_METHOD_69:
hw->HwSuppIntMitiVer = 4;
break;
case CFG_METHOD_54:
@@ -1888,10 +1873,6 @@ rtl_init_software_variable(struct rtl_hw *hw)
}
switch (hw->mcfg) {
- case CFG_METHOD_69:
- hw->HwSuppRxDescType = RX_DESC_RING_TYPE_3;
- hw->RxDescLength = RX_DESC_LEN_TYPE_3;
- break;
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -2370,7 +2351,7 @@ rtl_get_mac_version(struct rtl_hw *hw, struct rte_pci_device *pci_dev)
break;
case 0x64800000:
if (ic_version_id == 0x00000000) {
- hw->mcfg = CFG_METHOD_69;
+ hw->mcfg = CFG_METHOD_DEFAULT;
} else if (ic_version_id == 0x100000) {
hw->mcfg = CFG_METHOD_70;
} else if (ic_version_id == 0x200000) {
diff --git a/drivers/net/r8169/r8169_hw.h b/drivers/net/r8169/r8169_hw.h
index c8705edad4..a1f841c88d 100644
--- a/drivers/net/r8169/r8169_hw.h
+++ b/drivers/net/r8169/r8169_hw.h
@@ -137,7 +137,6 @@ extern const struct rtl_hw_ops rtl8125cp_ops;
#define NIC_RAMCODE_VERSION_CFG_METHOD_56 (0x0027)
#define NIC_RAMCODE_VERSION_CFG_METHOD_57 (0x0027)
#define NIC_RAMCODE_VERSION_CFG_METHOD_58 (0x0008)
-#define NIC_RAMCODE_VERSION_CFG_METHOD_69 (0x0023)
#define NIC_RAMCODE_VERSION_CFG_METHOD_70 (0x0033)
#define NIC_RAMCODE_VERSION_CFG_METHOD_71 (0x0060)
#define NIC_RAMCODE_VERSION_CFG_METHOD_91 (0x0051)
diff --git a/drivers/net/r8169/r8169_phy.c b/drivers/net/r8169/r8169_phy.c
index 1239319da5..8988c6f288 100644
--- a/drivers/net/r8169/r8169_phy.c
+++ b/drivers/net/r8169/r8169_phy.c
@@ -976,7 +976,6 @@ _rtl_disable_adv_eee(struct rtl_hw *hw)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_59:
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -1073,7 +1072,6 @@ rtl_disable_eee(struct rtl_hw *hw)
rtl_clear_eth_phy_ocp_bit(hw, 0xA428, BIT_7);
rtl_clear_eth_phy_ocp_bit(hw, 0xA4A2, BIT_9);
break;
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -1211,7 +1209,6 @@ rtl_set_speed_xmii(struct rtl_hw *hw, u8 autoneg, u32 speed, u8 duplex, u64 adv)
case CFG_METHOD_91:
mask |= BIT_2;
/* Fall through */
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
mask |= BIT_1;
diff --git a/drivers/net/r8169/r8169_rxtx.c b/drivers/net/r8169/r8169_rxtx.c
index 37f4c4da80..a2e9139ec6 100644
--- a/drivers/net/r8169/r8169_rxtx.c
+++ b/drivers/net/r8169/r8169_rxtx.c
@@ -1345,7 +1345,6 @@ rtl8125_set_tx_tag_num(struct rtl_hw *hw)
case CFG_METHOD_53:
mac_ocp_data |= (2 << 8);
break;
- case CFG_METHOD_69:
case CFG_METHOD_70:
case CFG_METHOD_71:
if (hw->EnableTxNoClose)
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 07/12] net/r8169: update hardware configurations for 8126
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (5 preceding siblings ...)
2026-02-09 8:54 ` [PATCH v1 06/12] net/r8169: remove support for CFG_METHOD_69 Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:54 ` [PATCH v1 08/12] net/r8169: update hardware configurations for 8125 Howard Wang
` (6 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Update hw configurations as below:
phy config,
mac mcu patch.
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
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
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 08/12] net/r8169: update hardware configurations for 8125
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (6 preceding siblings ...)
2026-02-09 8:54 ` [PATCH v1 07/12] net/r8169: update hardware configurations for 8126 Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:54 ` [PATCH v1 09/12] net/r8169: add support for RTL9151 Howard Wang
` (5 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Update hw configurations as below:
8125a's mac mcu,
8125b's mac mcu,
8125bp's mac mcu,
8125cp's phy config, mac mcu and phy mcu,
8125d's phy config, mac mcu and phy mcu.
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/base/rtl8125a_mcu.c | 128 ++-----
drivers/net/r8169/base/rtl8125b_mcu.c | 56 ++-
drivers/net/r8169/base/rtl8125bp_mcu.c | 17 +-
drivers/net/r8169/base/rtl8125cp.c | 36 ++
drivers/net/r8169/base/rtl8125cp_mcu.c | 87 ++++-
drivers/net/r8169/base/rtl8125cp_mcu.h | 1 +
drivers/net/r8169/base/rtl8125d.c | 9 +
drivers/net/r8169/base/rtl8125d_mcu.c | 506 +++++++++++++++----------
drivers/net/r8169/r8169_hw.c | 4 +-
drivers/net/r8169/r8169_hw.h | 4 +-
10 files changed, 514 insertions(+), 334 deletions(-)
diff --git a/drivers/net/r8169/base/rtl8125a_mcu.c b/drivers/net/r8169/base/rtl8125a_mcu.c
index b810787daa..9fd1d59541 100644
--- a/drivers/net/r8169/base/rtl8125a_mcu.c
+++ b/drivers/net/r8169/base/rtl8125a_mcu.c
@@ -15,103 +15,53 @@ void
rtl_set_mac_mcu_8125a_2(struct rtl_hw *hw)
{
u16 entry_cnt;
- static const u16 mcu_patch_code_8125a_2[] = {
- 0xE010, 0xE012, 0xE022, 0xE024, 0xE029, 0xE02B, 0xE094, 0xE09D, 0xE09F,
- 0xE0AA, 0xE0B5, 0xE0C6, 0xE0CC, 0xE0D1, 0xE0D6, 0xE0D8, 0xC602, 0xBE00,
- 0x0000, 0xC60F, 0x73C4, 0x49B3, 0xF106, 0x73C2, 0xC608, 0xB406, 0xC609,
- 0xFF80, 0xC605, 0xB406, 0xC605, 0xFF80, 0x0544, 0x0568, 0xE906, 0xCDE8,
- 0xC602, 0xBE00, 0x0000, 0x48C1, 0x48C2, 0x9C46, 0xC402, 0xBC00, 0x0A12,
- 0xC602, 0xBE00, 0x0EBA, 0x1501, 0xF02A, 0x1500, 0xF15D, 0xC661, 0x75C8,
- 0x49D5, 0xF00A, 0x49D6, 0xF008, 0x49D7, 0xF006, 0x49D8, 0xF004, 0x75D2,
- 0x49D9, 0xF150, 0xC553, 0x77A0, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858,
- 0x48DA, 0x48DB, 0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 0x9DC8,
- 0x75D2, 0x4859, 0x9DD2, 0xC643, 0x75C0, 0x49D4, 0xF033, 0x49D0, 0xF137,
- 0xE030, 0xC63A, 0x75C8, 0x49D5, 0xF00E, 0x49D6, 0xF00C, 0x49D7, 0xF00A,
- 0x49D8, 0xF008, 0x75D2, 0x49D9, 0xF005, 0xC62E, 0x75C0, 0x49D7, 0xF125,
- 0xC528, 0x77A0, 0xC627, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 0x48DA,
+ static const u16 mcu_patch_code[] = {
+ 0xE010, 0xE062, 0xE072, 0xE074, 0xE079, 0xE07B, 0xE0E4, 0xE0ED, 0xE0EF,
+ 0xE0FA, 0xE105, 0xE116, 0xE11C, 0xE121, 0xE126, 0xE12A, 0xB400, 0xB401,
+ 0xB402, 0xB403, 0xB404, 0xB405, 0xC03F, 0x7206, 0x49AE, 0xF1FE, 0xC13C,
+ 0x9904, 0xC13B, 0x9906, 0x7206, 0x49AE, 0xF1FE, 0x7200, 0x49A0, 0xF10D,
+ 0xC534, 0xC133, 0xC238, 0xC338, 0xE817, 0xC337, 0xE815, 0xC336, 0xE813,
+ 0xC335, 0xE811, 0xE01B, 0xC129, 0xC22D, 0xC528, 0xC32C, 0xE80B, 0xC526,
+ 0xC32A, 0xE808, 0xC524, 0xC328, 0xE805, 0xC522, 0xC326, 0xE802, 0xE00C,
+ 0x740E, 0x49CE, 0xF1FE, 0x9908, 0x9D0A, 0x9A0C, 0x9B0E, 0x740E, 0x49CE,
+ 0xF1FE, 0xFF80, 0xB005, 0xB004, 0xB003, 0xB002, 0xB001, 0xB000, 0xC604,
+ 0xC002, 0xB800, 0x3044, 0xE000, 0xE8E0, 0xF128, 0x0002, 0xFFFF, 0x10EC,
+ 0x816A, 0x816F, 0x8164, 0x816D, 0xF000, 0x8001, 0x8002, 0x8003, 0x8004,
+ 0xC60F, 0x73C4, 0x49B3, 0xF106, 0x73C2, 0xC608, 0xB406, 0xC609, 0xFF80,
+ 0xC605, 0xB406, 0xC605, 0xFF80, 0x0544, 0x0568, 0xE906, 0xCDE8, 0xC602,
+ 0xBE00, 0x0000, 0x48C1, 0x48C2, 0x9C46, 0xC402, 0xBC00, 0x0A12, 0xC602,
+ 0xBE00, 0x0EBA, 0x1501, 0xF02A, 0x1500, 0xF15D, 0xC661, 0x75C8, 0x49D5,
+ 0xF00A, 0x49D6, 0xF008, 0x49D7, 0xF006, 0x49D8, 0xF004, 0x75D2, 0x49D9,
+ 0xF150, 0xC553, 0x77A0, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 0x48DA,
0x48DB, 0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 0x9DC8, 0x75D2,
- 0x4859, 0x9DD2, 0xC616, 0x75C0, 0x4857, 0x9DC0, 0xC613, 0x75C0, 0x49DA,
- 0xF003, 0x49D0, 0xF107, 0xC60B, 0xC50E, 0x48D9, 0x9DC0, 0x4859, 0x9DC0,
- 0xC608, 0xC702, 0xBF00, 0x3AE0, 0xE860, 0xB400, 0xB5D4, 0xE908, 0xE86C,
- 0x1200, 0xC409, 0x6780, 0x48F1, 0x8F80, 0xC404, 0xC602, 0xBE00, 0x10AA,
- 0xC010, 0xEA7C, 0xC602, 0xBE00, 0x0000, 0x740A, 0x4846, 0x4847, 0x9C0A,
- 0xC607, 0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 0x13FE, 0xE054, 0x72CA,
- 0x4826, 0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 0x9AC0, 0xC602, 0xBE00,
- 0x07DC, 0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 0xC60C, 0x74CA, 0x48C7,
- 0x9CCA, 0xC609, 0x74C0, 0x4846, 0x9CC0, 0xC602, 0xBE00, 0x2480, 0xE092,
- 0xE0C0, 0xE054, 0x7420, 0x48C0, 0x9C20, 0x7444, 0xC602, 0xBE00, 0x12F8,
- 0x1BFF, 0x46EB, 0x1BFF, 0xC102, 0xB900, 0x0D5A, 0x1BFF, 0x46EB, 0x1BFF,
- 0xC102, 0xB900, 0x0E2A, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6486,
- 0x0B15, 0x090E, 0x1139
+ 0x4859, 0x9DD2, 0xC643, 0x75C0, 0x49D4, 0xF033, 0x49D1, 0xF137, 0xE030,
+ 0xC63A, 0x75C8, 0x49D5, 0xF00E, 0x49D6, 0xF00C, 0x49D7, 0xF00A, 0x49D8,
+ 0xF008, 0x75D2, 0x49D9, 0xF005, 0xC62E, 0x75C0, 0x49D7, 0xF125, 0xC528,
+ 0x77A0, 0xC627, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 0x48DA, 0x48DB,
+ 0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 0x9DC8, 0x75D2, 0x4859,
+ 0x9DD2, 0xC616, 0x75C0, 0x4857, 0x9DC0, 0xC613, 0x75C0, 0x49DA, 0xF003,
+ 0x49D1, 0xF107, 0xC60B, 0xC50E, 0x48D9, 0x9DC0, 0x4859, 0x9DC0, 0xC608,
+ 0xC702, 0xBF00, 0x3AE0, 0xE860, 0xB400, 0xB5D4, 0xE908, 0xE86C, 0x1200,
+ 0xC409, 0x6780, 0x48F1, 0x8F80, 0xC404, 0xC602, 0xBE00, 0x10AA, 0xC010,
+ 0xEA7C, 0xC602, 0xBE00, 0x0000, 0x740A, 0x4846, 0x4847, 0x9C0A, 0xC607,
+ 0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 0x13FE, 0xE054, 0x72CA, 0x4826,
+ 0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 0x9AC0, 0xC602, 0xBE00, 0x07DC,
+ 0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 0xC60C, 0x74CA, 0x48C7, 0x9CCA,
+ 0xC609, 0x74C0, 0x4846, 0x9CC0, 0xC602, 0xBE00, 0x2480, 0xE092, 0xE0C0,
+ 0xE054, 0x7420, 0x48C0, 0x9C20, 0x7444, 0xC602, 0xBE00, 0x12F8, 0x1BFF,
+ 0x46EB, 0x1BFF, 0xC102, 0xB900, 0x0D5A, 0x1BFF, 0x46EB, 0x1BFF, 0xC102,
+ 0xB900, 0x0E2A, 0xC104, 0xC202, 0xBA00, 0x21DE, 0xD116, 0xC602, 0xBE00,
+ 0x0000, 0x6486, 0x0119, 0x0606, 0x1327
};
- entry_cnt = ARRAY_SIZE(mcu_patch_code_8125a_2);
+ entry_cnt = ARRAY_SIZE(mcu_patch_code);
/* Get BIN mac mcu patch code version */
- hw->bin_mcu_patch_code_ver = rtl_get_bin_mcu_patch_code_ver(mcu_patch_code_8125a_2,
+ hw->bin_mcu_patch_code_ver = rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
entry_cnt);
if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
- rtl_write_mac_mcu_ram_code(hw, mcu_patch_code_8125a_2, entry_cnt);
+ rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
diff --git a/drivers/net/r8169/base/rtl8125b_mcu.c b/drivers/net/r8169/base/rtl8125b_mcu.c
index afc17707ec..db3b368b64 100644
--- a/drivers/net/r8169/base/rtl8125b_mcu.c
+++ b/drivers/net/r8169/base/rtl8125b_mcu.c
@@ -14,9 +14,10 @@
void
rtl_set_mac_mcu_8125b_2(struct rtl_hw *hw)
{
- static const u16 mcu_patch_code_8125b_2[] = {
- 0xE010, 0xE01B, 0xE026, 0xE037, 0xE03D, 0xE057, 0xE05B, 0xE060, 0xE062,
- 0xE064, 0xE066, 0xE068, 0xE06A, 0xE06C, 0xE06E, 0xE070, 0x740A, 0x4846,
+ u16 entry_cnt;
+ static const u16 mcu_patch_code[] = {
+ 0xE010, 0xE01B, 0xE026, 0xE037, 0xE03D, 0xE057, 0xE05B, 0xE060, 0xE0B6,
+ 0xE103, 0xE14C, 0xE150, 0xE153, 0xE156, 0xE158, 0xE15A, 0x740A, 0x4846,
0x4847, 0x9C0A, 0xC607, 0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 0x13F0,
0xE054, 0x72CA, 0x4826, 0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 0x9AC0,
0xC602, 0xBE00, 0x081C, 0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 0xC60C,
@@ -26,14 +27,46 @@ rtl_set_mac_mcu_8125b_2(struct rtl_hw *hw)
0x3168, 0x3ADA, 0x31AB, 0x1A00, 0x9AC0, 0x1300, 0xF1FB, 0x7620, 0x236E,
0x276F, 0x1A3C, 0x22A1, 0x41B5, 0x9EE2, 0x76E4, 0x486F, 0x9EE4, 0xC602,
0xBE00, 0x4A26, 0x733A, 0x49BB, 0xC602, 0xBE00, 0x47A2, 0x48C1, 0x48C2,
- 0x9C46, 0xC402, 0xBC00, 0x0A52, 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
+ 0x9C46, 0xC402, 0xBC00, 0x0A52, 0xC74B, 0x76E2, 0xC54A, 0x402E, 0xF034,
+ 0x76E0, 0x402E, 0xF006, 0xC703, 0xC403, 0xBC00, 0xC0BC, 0x0980, 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,
+ 0x473E, 0xDC46, 0xE0CC, 0xE84E, 0xC0A2, 0x0100, 0xC010, 0xE85A, 0xE812,
+ 0xC0B4, 0xC5F4, 0x74A0, 0xC6F3, 0x4026, 0xF107, 0x74A2, 0xC6EF, 0x4026,
+ 0xF107, 0xC6ED, 0xBE00, 0x753A, 0xC602, 0xBE00, 0x462E, 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, 0x2230, 0xE092, 0xD3C0, 0xE428, 0xDC46,
+ 0xC104, 0xC202, 0xBA00, 0x21F8, 0xD116, 0x49D1, 0xC602, 0xBE00, 0x3E7A,
+ 0x49D1, 0xC602, 0xBE00, 0x3EDA, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
+ 0x0000, 0xC602, 0xBE00, 0x0000, 0x6637, 0x0119, 0x0604, 0x1203
};
- rtl_write_mac_mcu_ram_code(hw, mcu_patch_code_8125b_2,
- ARRAY_SIZE(mcu_patch_code_8125b_2));
+ entry_cnt = ARRAY_SIZE(mcu_patch_code);
+
+ /* Get BIN mac mcu patch code version */
+ hw->bin_mcu_patch_code_ver = rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
+ entry_cnt);
+
+ if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
+ rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
@@ -43,8 +76,11 @@ rtl_set_mac_mcu_8125b_2(struct rtl_hw *hw)
rtl_mac_ocp_write(hw, 0xFC2E, 0x12DA);
rtl_mac_ocp_write(hw, 0xFC30, 0x4A20);
rtl_mac_ocp_write(hw, 0xFC32, 0x47A0);
+ rtl_mac_ocp_write(hw, 0xFC3C, 0x21F6);
+ rtl_mac_ocp_write(hw, 0xFC3E, 0x3E78);
+ rtl_mac_ocp_write(hw, 0xFC40, 0x3ED8);
- rtl_mac_ocp_write(hw, 0xFC48, 0x003F);
+ rtl_mac_ocp_write(hw, 0xFC48, 0x1C7B);
}
/* ------------------------------------PHY 8125B--------------------------------------- */
diff --git a/drivers/net/r8169/base/rtl8125bp_mcu.c b/drivers/net/r8169/base/rtl8125bp_mcu.c
index 2a9d0a3d48..a591988657 100644
--- a/drivers/net/r8169/base/rtl8125bp_mcu.c
+++ b/drivers/net/r8169/base/rtl8125bp_mcu.c
@@ -59,8 +59,8 @@ rtl_set_mac_mcu_8125bp_2(struct rtl_hw *hw)
{
u16 entry_cnt;
static const u16 mcu_patch_code[] = {
- 0xE010, 0xE033, 0xE046, 0xE04A, 0xE04D, 0xE050, 0xE052, 0xE054, 0xE056,
- 0xE058, 0xE05A, 0xE05C, 0xE05E, 0xE060, 0xE062, 0xE064, 0xB406, 0x1000,
+ 0xE010, 0xE033, 0xE046, 0xE04A, 0xE04D, 0xE050, 0xE054, 0xE056, 0xE058,
+ 0xE05A, 0xE05C, 0xE05E, 0xE060, 0xE062, 0xE064, 0xE066, 0xB406, 0x1000,
0xF016, 0xC61F, 0x400E, 0xF012, 0x218E, 0x25BE, 0x1300, 0xF007, 0x7340,
0xC618, 0x400E, 0xF102, 0x48B0, 0x8320, 0xB400, 0x2402, 0x1000, 0xF003,
0x7342, 0x8322, 0xB000, 0xE007, 0x7322, 0x9B42, 0x7320, 0x9B40, 0x0300,
@@ -68,11 +68,11 @@ rtl_set_mac_mcu_8125bp_2(struct rtl_hw *hw)
0xF00A, 0xC20F, 0x400A, 0xF007, 0x73A4, 0xC20C, 0x400A, 0xF102, 0x48B0,
0x9B20, 0x1B00, 0x9BA0, 0xC602, 0xBE00, 0x4392, 0xE6E0, 0xE6E2, 0xC01C,
0x4166, 0x9CF6, 0xC002, 0xB800, 0x143C, 0x49D1, 0xC602, 0xBE00, 0x3FC4,
- 0x49D1, 0xC602, 0xBE00, 0x405A, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
- 0x0000, 0xC102, 0xB900, 0x0000, 0xC002, 0xB800, 0x0000, 0xC602, 0xBE00,
- 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
- 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
- 0x0000, 0x6936, 0x0B18, 0x0C02, 0x0D22
+ 0x49D1, 0xC602, 0xBE00, 0x405A, 0xC104, 0xC202, 0xBA00, 0x22E6, 0xD116,
+ 0xC602, 0xBE00, 0x0000, 0xC102, 0xB900, 0x0000, 0xC002, 0xB800, 0x0000,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
+ 0xC602, 0xBE00, 0x0000, 0x6936, 0x0119, 0x030E, 0x0B18
};
entry_cnt = ARRAY_SIZE(mcu_patch_code);
@@ -91,8 +91,9 @@ rtl_set_mac_mcu_8125bp_2(struct rtl_hw *hw)
rtl_mac_ocp_write(hw, 0xFC2C, 0x143A);
rtl_mac_ocp_write(hw, 0xFC2E, 0x3FC2);
rtl_mac_ocp_write(hw, 0xFC30, 0x4058);
+ rtl_mac_ocp_write(hw, 0xFC32, 0x22E4);
- rtl_mac_ocp_write(hw, 0xFC48, 0x001F);
+ rtl_mac_ocp_write(hw, 0xFC48, 0x003F);
}
/* ------------------------------------PHY 8125BP--------------------------------------- */
diff --git a/drivers/net/r8169/base/rtl8125cp.c b/drivers/net/r8169/base/rtl8125cp.c
index aabee94f4c..9309b20def 100644
--- a/drivers/net/r8169/base/rtl8125cp.c
+++ b/drivers/net/r8169/base/rtl8125cp.c
@@ -26,13 +26,40 @@ hw_ephy_config_8125cp(struct rtl_hw *hw)
}
}
+static void
+rtl_tgphy_irq_mask_and_ack(struct rtl_hw *hw)
+{
+ if (hw->mcfg == CFG_METHOD_58) {
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA4D2, 0x0000);
+ (void)rtl_mdio_direct_read_phy_ocp(hw, 0xA4D4);
+ }
+}
+
static void
rtl_hw_phy_config_8125cp_1(struct rtl_hw *hw)
{
+ rtl_tgphy_irq_mask_and_ack(hw);
+
rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_11);
rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xad0e, 0x007F, 0x000B);
rtl_set_eth_phy_ocp_bit(hw, 0xad78, BIT_4);
+
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x807F);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x5300);
+
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x81B8);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0x00B4);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x81BA);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0x00E4);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x81C5);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0x0104);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x81D0);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0x054D);
+
+ rtl_set_eth_phy_ocp_bit(hw, 0xA430, BIT_1 | BIT_0);
+ rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_7);
+ rtl_clear_eth_phy_ocp_bit(hw, 0xA430, BIT_12);
}
static void
@@ -52,6 +79,15 @@ hw_mac_mcu_config_8125cp(struct rtl_hw *hw)
return;
rtl_hw_disable_mac_mcu_bps(hw);
+
+ /* Get H/W mac mcu patch code version */
+ hw->hw_mcu_patch_code_ver = rtl_get_hw_mcu_patch_code_ver(hw);
+
+ switch (hw->mcfg) {
+ case CFG_METHOD_58:
+ rtl_set_mac_mcu_8125cp_1(hw);
+ break;
+ }
}
static void
diff --git a/drivers/net/r8169/base/rtl8125cp_mcu.c b/drivers/net/r8169/base/rtl8125cp_mcu.c
index e4609f46de..e52027ee23 100644
--- a/drivers/net/r8169/base/rtl8125cp_mcu.c
+++ b/drivers/net/r8169/base/rtl8125cp_mcu.c
@@ -11,7 +11,34 @@
/* ------------------------------------MAC 8125CP------------------------------------- */
-/* No mac mcu patch code */
+void
+rtl_set_mac_mcu_8125cp_1(struct rtl_hw *hw)
+{
+ u16 entry_cnt;
+ static const u16 mcu_patch_code[] = {
+ 0xE010, 0xE014, 0xE016, 0xE018, 0xE01A, 0xE01C, 0xE01E, 0xE020, 0xE022,
+ 0xE024, 0xE026, 0xE028, 0xE02A, 0xE02C, 0xE02E, 0xE030, 0xC104, 0xC202,
+ 0xBA00, 0x2438, 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,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
+ 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
+ 0xC602, 0xBE00, 0x0000, 0x7023, 0x0019, 0x031A, 0x0E20
+ };
+
+ entry_cnt = ARRAY_SIZE(mcu_patch_code);
+
+ /* Get BIN mac mcu patch code version */
+ hw->bin_mcu_patch_code_ver = rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
+ entry_cnt);
+
+ if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
+ rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
+
+ rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
+ rtl_mac_ocp_write(hw, 0xFC28, 0x2436);
+ rtl_mac_ocp_write(hw, 0xFC48, 0x0001);
+}
/* ------------------------------------PHY 8125CP------------------------------------- */
@@ -28,9 +55,9 @@ static const u16 phy_mcu_ram_code_8125cp_1_1[] = {
0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012, 0xa438, 0x0000,
0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010, 0xa438, 0x1800,
0xa438, 0x801b, 0xa438, 0x1800, 0xa438, 0x802b, 0xa438, 0x1800,
- 0xa438, 0x8031, 0xa438, 0x1800, 0xa438, 0x8031, 0xa438, 0x1800,
- 0xa438, 0x8031, 0xa438, 0x1800, 0xa438, 0x8031, 0xa438, 0x1800,
- 0xa438, 0x8031, 0xa438, 0x800a, 0xa438, 0x8530, 0xa438, 0x0c03,
+ 0xa438, 0x8031, 0xa438, 0x1800, 0xa438, 0x8037, 0xa438, 0x1800,
+ 0xa438, 0x8085, 0xa438, 0x1800, 0xa438, 0x8085, 0xa438, 0x1800,
+ 0xa438, 0x8085, 0xa438, 0x800a, 0xa438, 0x8530, 0xa438, 0x0c03,
0xa438, 0x1502, 0xa438, 0x8d10, 0xa438, 0x9503, 0xa438, 0xd700,
0xa438, 0x6050, 0xa438, 0xaa20, 0xa438, 0x1800, 0xa438, 0x0d53,
0xa438, 0xd707, 0xa438, 0x40f6, 0xa438, 0x8901, 0xa438, 0xd704,
@@ -38,26 +65,52 @@ static const u16 phy_mcu_ram_code_8125cp_1_1[] = {
0xa438, 0x1000, 0xa438, 0x0e4d, 0xa438, 0x1000, 0xa438, 0x1277,
0xa438, 0xd704, 0xa438, 0x7e77, 0xa438, 0x1800, 0xa438, 0x0dc5,
0xa438, 0xd700, 0xa438, 0x4063, 0xa438, 0x1800, 0xa438, 0x0d15,
- 0xa438, 0x1800, 0xa438, 0x0d18, 0xa436, 0xA10E, 0xa438, 0xffff,
+ 0xa438, 0x1800, 0xa438, 0x0d18, 0xa438, 0xd700, 0xa438, 0x6063,
+ 0xa438, 0x1800, 0xa438, 0x0ca6, 0xa438, 0x1800, 0xa438, 0x0ca7,
+ 0xa438, 0xd700, 0xa438, 0x6123, 0xa438, 0x1000, 0xa438, 0x1224,
+ 0xa438, 0xcd84, 0xa438, 0xd706, 0xa438, 0x6159, 0xa438, 0xd700,
+ 0xa438, 0x611c, 0xa438, 0xfff9, 0xa438, 0x1000, 0xa438, 0x1224,
+ 0xa438, 0xcd84, 0xa438, 0xd700, 0xa438, 0x605c, 0xa438, 0xfffb,
+ 0xa438, 0xcd8a, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0xd706,
+ 0xa438, 0x6679, 0xa438, 0xd700, 0xa438, 0x663d, 0xa438, 0xd707,
+ 0xa438, 0x5f16, 0xa438, 0xd700, 0xa438, 0x5ed0, 0xa438, 0xd700,
+ 0xa438, 0x6043, 0xa438, 0xfff3, 0xa438, 0x0c3f, 0xa438, 0x0635,
+ 0xa438, 0xa120, 0xa438, 0x8410, 0xa438, 0x800a, 0xa438, 0x8290,
+ 0xa438, 0x8306, 0xa438, 0x8b06, 0xa438, 0x8364, 0xa438, 0xcd87,
+ 0xa438, 0xa502, 0xa438, 0x8502, 0xa438, 0xa220, 0xa438, 0xa310,
+ 0xa438, 0xa340, 0xa438, 0xa00a, 0xa438, 0x0c06, 0xa438, 0x0102,
+ 0xa438, 0xa240, 0xa438, 0xa290, 0xa438, 0x8320, 0xa438, 0xa304,
+ 0xa438, 0xab02, 0xa438, 0xa404, 0xa438, 0xd1c7, 0xa438, 0xd045,
+ 0xa438, 0xd700, 0xa438, 0x605b, 0xa438, 0xfffe, 0xa438, 0xa320,
+ 0xa438, 0x1000, 0xa438, 0x1224, 0xa438, 0xd706, 0xa438, 0x5fb5,
+ 0xa438, 0x0c3f, 0xa438, 0x062d, 0xa438, 0x8120, 0xa438, 0xcd88,
+ 0xa438, 0xd700, 0xa438, 0x605d, 0xa438, 0xfffa, 0xa438, 0xcd8b,
+ 0xa438, 0x1000, 0xa438, 0x1224, 0xa438, 0xd706, 0xa438, 0x5f99,
+ 0xa438, 0x1800, 0xa438, 0x0c9e, 0xa436, 0xA10E, 0xa438, 0xffff,
0xa436, 0xA10C, 0xa438, 0xffff, 0xa436, 0xA10A, 0xa438, 0xffff,
- 0xa436, 0xA108, 0xa438, 0xffff, 0xa436, 0xA106, 0xa438, 0xffff,
+ 0xa436, 0xA108, 0xa438, 0x0c89, 0xa436, 0xA106, 0xa438, 0x0ca2,
0xa436, 0xA104, 0xa438, 0x0d13, 0xa436, 0xA102, 0xa438, 0x0dbf,
- 0xa436, 0xA100, 0xa438, 0x0d52, 0xa436, 0xA110, 0xa438, 0x0007,
+ 0xa436, 0xA100, 0xa438, 0x0d52, 0xa436, 0xA110, 0xa438, 0x001f,
0xa436, 0xb87c, 0xa438, 0x85bd, 0xa436, 0xb87e, 0xa438, 0xaf85,
- 0xa438, 0xd5af, 0xa438, 0x85fb, 0xa438, 0xaf85, 0xa438, 0xfbaf,
- 0xa438, 0x85fb, 0xa438, 0xaf85, 0xa438, 0xfbaf, 0xa438, 0x85fb,
- 0xa438, 0xaf85, 0xa438, 0xfbaf, 0xa438, 0x85fb, 0xa438, 0xac28,
+ 0xa438, 0xd5af, 0xa438, 0x85fb, 0xa438, 0xaf86, 0xa438, 0x24af,
+ 0xa438, 0x8624, 0xa438, 0xaf86, 0xa438, 0x24af, 0xa438, 0x8624,
+ 0xa438, 0xaf86, 0xa438, 0x24af, 0xa438, 0x8624, 0xa438, 0xac28,
0xa438, 0x0bd4, 0xa438, 0x0294, 0xa438, 0xbf85, 0xa438, 0xf802,
0xa438, 0x61c2, 0xa438, 0xae09, 0xa438, 0xd414, 0xa438, 0x50bf,
0xa438, 0x85f8, 0xa438, 0x0261, 0xa438, 0xc2bf, 0xa438, 0x60de,
0xa438, 0x0261, 0xa438, 0xe1bf, 0xa438, 0x80cf, 0xa438, 0xaf24,
- 0xa438, 0xe8f0, 0xa438, 0xac52, 0xa436, 0xb85e, 0xa438, 0x24e5,
- 0xa436, 0xb860, 0xa438, 0xffff, 0xa436, 0xb862, 0xa438, 0xffff,
- 0xa436, 0xb864, 0xa438, 0xffff, 0xa436, 0xb886, 0xa438, 0xffff,
- 0xa436, 0xb888, 0xa438, 0xffff, 0xa436, 0xb88a, 0xa438, 0xffff,
- 0xa436, 0xb88c, 0xa438, 0xffff, 0xa436, 0xb838, 0xa438, 0x0001,
- 0xb820, 0x0010, 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000,
- 0xB820, 0x0000, 0xFFFF, 0xFFFF
+ 0xa438, 0xe8f0, 0xa438, 0xac52, 0xa438, 0xef79, 0xa438, 0xf705,
+ 0xa438, 0xeeff, 0xa438, 0xd200, 0xa438, 0xbf86, 0xa438, 0x22d7,
+ 0xa438, 0xc201, 0xa438, 0x87d4, 0xa438, 0x0001, 0xa438, 0x025a,
+ 0xa438, 0x0abf, 0xa438, 0x8623, 0xa438, 0xd7c2, 0xa438, 0xcc17,
+ 0xa438, 0xd400, 0xa438, 0x0102, 0xa438, 0x5a0a, 0xa438, 0xf605,
+ 0xa438, 0xaf33, 0xa438, 0x78ff, 0xa438, 0xff00, 0xa436, 0xb85e,
+ 0xa438, 0x24e5, 0xa436, 0xb860, 0xa438, 0x3376, 0xa436, 0xb862,
+ 0xa438, 0xffff, 0xa436, 0xb864, 0xa438, 0xffff, 0xa436, 0xb886,
+ 0xa438, 0xffff, 0xa436, 0xb888, 0xa438, 0xffff, 0xa436, 0xb88a,
+ 0xa438, 0xffff, 0xa436, 0xb88c, 0xa438, 0xffff, 0xa436, 0xb838,
+ 0xa438, 0x0003, 0xb820, 0x0010, 0xB82E, 0x0000, 0xa436, 0x8023,
+ 0xa438, 0x0000, 0xB820, 0x0000, 0xFFFF, 0xFFFF
};
static void
diff --git a/drivers/net/r8169/base/rtl8125cp_mcu.h b/drivers/net/r8169/base/rtl8125cp_mcu.h
index 8114dab2b9..1f08151818 100644
--- a/drivers/net/r8169/base/rtl8125cp_mcu.h
+++ b/drivers/net/r8169/base/rtl8125cp_mcu.h
@@ -5,6 +5,7 @@
#ifndef RTL8125CP_MCU_H
#define RTL8125CP_MCU_H
+void rtl_set_mac_mcu_8125cp_1(struct rtl_hw *hw);
void rtl_set_phy_mcu_8125cp_1(struct rtl_hw *hw);
#endif /* RTL8125CP_MCU_H */
diff --git a/drivers/net/r8169/base/rtl8125d.c b/drivers/net/r8169/base/rtl8125d.c
index 29be122e6b..ac500587e0 100644
--- a/drivers/net/r8169/base/rtl8125d.c
+++ b/drivers/net/r8169/base/rtl8125d.c
@@ -256,6 +256,15 @@ rtl_hw_phy_config_8125d_2(struct rtl_hw *hw)
rtl_clear_eth_phy_ocp_bit(hw, 0xA5D4, BIT_5);
rtl_clear_eth_phy_ocp_bit(hw, 0xA654, BIT_11);
+ rtl_clear_eth_phy_ocp_bit(hw, 0xA448, BIT_10);
+ rtl_clear_eth_phy_ocp_bit(hw, 0xA586, BIT_10);
+
+ rtl_clear_eth_phy_ocp_bit(hw, 0xA4E0, BIT_15);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x8155);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xA438, 0xFF00, 0x0200);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x815C);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xA438, 0xFF00, 0x0200);
+
rtl_set_eth_phy_ocp_bit(hw, 0xA430, BIT_12 | BIT_0);
rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_7);
}
diff --git a/drivers/net/r8169/base/rtl8125d_mcu.c b/drivers/net/r8169/base/rtl8125d_mcu.c
index c99681ad33..304bad2998 100644
--- a/drivers/net/r8169/base/rtl8125d_mcu.c
+++ b/drivers/net/r8169/base/rtl8125d_mcu.c
@@ -17,15 +17,16 @@
void
rtl_set_mac_mcu_8125d_1(struct rtl_hw *hw)
{
- static const u16 mcu_patch_code_8125d_1[] = {
- 0xE002, 0xE006, 0x4166, 0x9CF6, 0xC002, 0xB800, 0x14A4, 0xC102, 0xB900,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ u16 entry_cnt;
+ static const u16 mcu_patch_code[] = {
+ 0xE010, 0xE014, 0xE018, 0xE01A, 0xE01C, 0xE01E, 0xE020, 0xE022, 0xE024,
+ 0xE026, 0xE028, 0xE02A, 0xE02C, 0xE02E, 0xE030, 0xE032, 0x4166, 0x9CF6,
+ 0xC002, 0xB800, 0x14A4, 0xC104, 0xC202, 0xBA00, 0x2378, 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, 0xC602, 0xBE00, 0x0000, 0xC602,
+ 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602,
+ 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -103,14 +104,24 @@ rtl_set_mac_mcu_8125d_1(struct rtl_hw *hw)
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6938,
- 0x0A18, 0x0217, 0x0D2A
+ 0x0A19, 0x030E, 0x0B2B
};
- rtl_write_mac_mcu_ram_code(hw, mcu_patch_code_8125d_1,
- ARRAY_SIZE(mcu_patch_code_8125d_1));
+ entry_cnt = ARRAY_SIZE(mcu_patch_code);
+
+ /* Get BIN mac mcu patch code version */
+ hw->bin_mcu_patch_code_ver = rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
+ entry_cnt);
+
+ if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
+ rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
+
rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
+
rtl_mac_ocp_write(hw, 0xFC28, 0x14A2);
- rtl_mac_ocp_write(hw, 0xFC48, 0x0001);
+ rtl_mac_ocp_write(hw, 0xFC2A, 0x2376);
+
+ rtl_mac_ocp_write(hw, 0xFC48, 0x0003);
}
void
@@ -825,6 +836,7 @@ static const u16 phy_mcu_ram_code_8125d_1_1[] = {
0xa438, 0x0000, 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000,
0xa436, 0x801E, 0xa438, 0x0031, 0xB820, 0x0000, 0xFFFF, 0xFFFF
};
+
static const u16 phy_mcu_ram_code_8125d_1_2[] = {
0xb892, 0x0000, 0xB88E, 0xC28F, 0xB890, 0x252D, 0xB88E, 0xC290,
0xB890, 0xC924, 0xB88E, 0xC291, 0xB890, 0xC92E, 0xB88E, 0xC292,
@@ -859,6 +871,7 @@ static const u16 phy_mcu_ram_code_8125d_1_2[] = {
0xB890, 0x9F3A, 0xB88E, 0xC2CB, 0xB890, 0x9F3A, 0xB88E, 0xC2CC,
0xB890, 0x4430, 0xFFFF, 0xFFFF
};
+
static const u16 phy_mcu_ram_code_8125d_1_3[] = {
0xa436, 0xacca, 0xa438, 0x0104, 0xa436, 0xaccc, 0xa438, 0x8000,
0xa436, 0xacce, 0xa438, 0xffff, 0xa436, 0xacd0, 0xa438, 0x0fff,
@@ -1045,54 +1058,60 @@ static const u16 phy_mcu_ram_code_8125d_2_1[] = {
0xa436, 0x8023, 0xa438, 0x3801, 0xa436, 0xB82E, 0xa438, 0x0001,
0xb820, 0x0090, 0xa436, 0xA016, 0xa438, 0x0000, 0xa436, 0xA012,
0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010,
- 0xa438, 0x1800, 0xa438, 0x807e, 0xa438, 0x1800, 0xa438, 0x80be,
- 0xa438, 0x1800, 0xa438, 0x81c8, 0xa438, 0x1800, 0xa438, 0x81c8,
- 0xa438, 0x1800, 0xa438, 0x81c8, 0xa438, 0x1800, 0xa438, 0x81c8,
- 0xa438, 0x1800, 0xa438, 0x81c8, 0xa438, 0xd500, 0xa438, 0xc48d,
+ 0xa438, 0x1800, 0xa438, 0x808e, 0xa438, 0x1800, 0xa438, 0x80d6,
+ 0xa438, 0x1800, 0xa438, 0x81e2, 0xa438, 0x1800, 0xa438, 0x8205,
+ 0xa438, 0x1800, 0xa438, 0x8227, 0xa438, 0x1800, 0xa438, 0x8227,
+ 0xa438, 0x1800, 0xa438, 0x8227, 0xa438, 0xd500, 0xa438, 0xc48d,
0xa438, 0xd504, 0xa438, 0x8d03, 0xa438, 0xd701, 0xa438, 0x4045,
0xa438, 0xad02, 0xa438, 0xd504, 0xa438, 0xd706, 0xa438, 0x2529,
0xa438, 0x8021, 0xa438, 0xd718, 0xa438, 0x607b, 0xa438, 0x40da,
- 0xa438, 0xf01b, 0xa438, 0x461a, 0xa438, 0xf045, 0xa438, 0xd718,
- 0xa438, 0x62fb, 0xa438, 0xbb01, 0xa438, 0xd75e, 0xa438, 0x6271,
+ 0xa438, 0xf019, 0xa438, 0x459a, 0xa438, 0xf03f, 0xa438, 0xd718,
+ 0xa438, 0x62bb, 0xa438, 0xbb01, 0xa438, 0xd75e, 0xa438, 0x6231,
0xa438, 0x0cf0, 0xa438, 0x0c10, 0xa438, 0xd501, 0xa438, 0xce01,
- 0xa438, 0xd70c, 0xa438, 0x6187, 0xa438, 0x0cf0, 0xa438, 0x0470,
- 0xa438, 0x0cf0, 0xa438, 0x0430, 0xa438, 0x0cf0, 0xa438, 0x0410,
- 0xa438, 0xce00, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0808,
- 0xa438, 0xf002, 0xa438, 0xa4f0, 0xa438, 0xf042, 0xa438, 0xbb02,
- 0xa438, 0xd75e, 0xa438, 0x6271, 0xa438, 0x0cf0, 0xa438, 0x0c20,
- 0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x6187,
- 0xa438, 0x0cf0, 0xa438, 0x0470, 0xa438, 0x0cf0, 0xa438, 0x0430,
- 0xa438, 0x0cf0, 0xa438, 0x0420, 0xa438, 0xce00, 0xa438, 0xd505,
+ 0xa438, 0xd70c, 0xa438, 0x6147, 0xa438, 0x8480, 0xa438, 0x8440,
+ 0xa438, 0x8420, 0xa438, 0xa410, 0xa438, 0xce00, 0xa438, 0xd505,
+ 0xa438, 0x0c0f, 0xa438, 0x0808, 0xa438, 0xf002, 0xa438, 0xa4f0,
+ 0xa438, 0xf03c, 0xa438, 0xbb02, 0xa438, 0xd75e, 0xa438, 0x6231,
+ 0xa438, 0x0cf0, 0xa438, 0x0c20, 0xa438, 0xd501, 0xa438, 0xce01,
+ 0xa438, 0xd70c, 0xa438, 0x6147, 0xa438, 0x8480, 0xa438, 0x8440,
+ 0xa438, 0xa420, 0xa438, 0x8410, 0xa438, 0xce00, 0xa438, 0xd505,
0xa438, 0x0c0f, 0xa438, 0x0804, 0xa438, 0xf002, 0xa438, 0xa4f0,
- 0xa438, 0xf02c, 0xa438, 0xbb04, 0xa438, 0xd75e, 0xa438, 0x6271,
+ 0xa438, 0xf028, 0xa438, 0xbb04, 0xa438, 0xd75e, 0xa438, 0x6231,
0xa438, 0x0cf0, 0xa438, 0x0c40, 0xa438, 0xd501, 0xa438, 0xce01,
- 0xa438, 0xd70c, 0xa438, 0x6187, 0xa438, 0x0cf0, 0xa438, 0x0470,
- 0xa438, 0x0cf0, 0xa438, 0x0450, 0xa438, 0x0cf0, 0xa438, 0x0440,
- 0xa438, 0xce00, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0802,
- 0xa438, 0xf002, 0xa438, 0xa4f0, 0xa438, 0xf016, 0xa438, 0xbb08,
- 0xa438, 0xd75e, 0xa438, 0x6271, 0xa438, 0x0cf0, 0xa438, 0x0c80,
- 0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x6187,
- 0xa438, 0x0cf0, 0xa438, 0x04b0, 0xa438, 0x0cf0, 0xa438, 0x0490,
- 0xa438, 0x0cf0, 0xa438, 0x0480, 0xa438, 0xce00, 0xa438, 0xd505,
+ 0xa438, 0xd70c, 0xa438, 0x6147, 0xa438, 0x8480, 0xa438, 0xa440,
+ 0xa438, 0x8420, 0xa438, 0x8410, 0xa438, 0xce00, 0xa438, 0xd505,
+ 0xa438, 0x0c0f, 0xa438, 0x0802, 0xa438, 0xf002, 0xa438, 0xa4f0,
+ 0xa438, 0xf014, 0xa438, 0xbb08, 0xa438, 0xd75e, 0xa438, 0x6231,
+ 0xa438, 0x0cf0, 0xa438, 0x0c80, 0xa438, 0xd501, 0xa438, 0xce01,
+ 0xa438, 0xd70c, 0xa438, 0x6147, 0xa438, 0xa480, 0xa438, 0x8440,
+ 0xa438, 0x8420, 0xa438, 0x8410, 0xa438, 0xce00, 0xa438, 0xd505,
0xa438, 0x0c0f, 0xa438, 0x0801, 0xa438, 0xf002, 0xa438, 0xa4f0,
- 0xa438, 0xce00, 0xa438, 0xd500, 0xa438, 0x1800, 0xa438, 0x165a,
- 0xa438, 0xd75e, 0xa438, 0x67b1, 0xa438, 0xd504, 0xa438, 0xd71e,
- 0xa438, 0x65bb, 0xa438, 0x63da, 0xa438, 0x61f9, 0xa438, 0x0cf0,
+ 0xa438, 0xce00, 0xa438, 0xd500, 0xa438, 0x1000, 0xa438, 0x1a8a,
+ 0xa438, 0x1000, 0xa438, 0x1829, 0xa438, 0xd73e, 0xa438, 0x6074,
+ 0xa438, 0xd718, 0xa438, 0x5f2d, 0xa438, 0x1000, 0xa438, 0x81b7,
+ 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0x1000, 0xa438, 0x1829,
+ 0xa438, 0xd73e, 0xa438, 0x7f74, 0xa438, 0x1000, 0xa438, 0x81ce,
+ 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0x1000, 0xa438, 0x1829,
+ 0xa438, 0xd718, 0xa438, 0x5f6d, 0xa438, 0x1800, 0xa438, 0x1660,
+ 0xa438, 0xd75e, 0xa438, 0x68b1, 0xa438, 0xd504, 0xa438, 0xd71e,
+ 0xa438, 0x667b, 0xa438, 0x645a, 0xa438, 0x6239, 0xa438, 0x0cf0,
0xa438, 0x0c10, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0808,
- 0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x6087,
- 0xa438, 0x0cf0, 0xa438, 0x0410, 0xa438, 0xf02c, 0xa438, 0xa4f0,
- 0xa438, 0xf02a, 0xa438, 0x0cf0, 0xa438, 0x0c20, 0xa438, 0xd505,
- 0xa438, 0x0c0f, 0xa438, 0x0804, 0xa438, 0xd501, 0xa438, 0xce01,
- 0xa438, 0xd70c, 0xa438, 0x6087, 0xa438, 0x0cf0, 0xa438, 0x0420,
- 0xa438, 0xf01e, 0xa438, 0xa4f0, 0xa438, 0xf01c, 0xa438, 0x0cf0,
+ 0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x60c7,
+ 0xa438, 0x8480, 0xa438, 0x8440, 0xa438, 0x8420, 0xa438, 0xa410,
+ 0xa438, 0xf032, 0xa438, 0xa4f0, 0xa438, 0xf030, 0xa438, 0x0cf0,
+ 0xa438, 0x0c20, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0804,
+ 0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x60c7,
+ 0xa438, 0x8480, 0xa438, 0x8440, 0xa438, 0xa420, 0xa438, 0x8410,
+ 0xa438, 0xf022, 0xa438, 0xa4f0, 0xa438, 0xf020, 0xa438, 0x0cf0,
0xa438, 0x0c40, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0802,
- 0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x6087,
- 0xa438, 0x0cf0, 0xa438, 0x0440, 0xa438, 0xf010, 0xa438, 0xa4f0,
- 0xa438, 0xf00e, 0xa438, 0x0cf0, 0xa438, 0x0c80, 0xa438, 0xd505,
- 0xa438, 0x0c0f, 0xa438, 0x0801, 0xa438, 0xd501, 0xa438, 0xce01,
- 0xa438, 0xd70c, 0xa438, 0x6087, 0xa438, 0x0cf0, 0xa438, 0x0480,
+ 0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x60c7,
+ 0xa438, 0x8480, 0xa438, 0xa440, 0xa438, 0x8420, 0xa438, 0x8410,
+ 0xa438, 0xf012, 0xa438, 0xa4f0, 0xa438, 0xf010, 0xa438, 0x0cf0,
+ 0xa438, 0x0c80, 0xa438, 0xd505, 0xa438, 0x0c0f, 0xa438, 0x0801,
+ 0xa438, 0xd501, 0xa438, 0xce01, 0xa438, 0xd70c, 0xa438, 0x60c7,
+ 0xa438, 0xa480, 0xa438, 0x8440, 0xa438, 0x8420, 0xa438, 0x8410,
0xa438, 0xf002, 0xa438, 0xa4f0, 0xa438, 0x1800, 0xa438, 0x168c,
- 0xa438, 0xd500, 0xa438, 0xd706, 0xa438, 0x2529, 0xa438, 0x80c8,
+ 0xa438, 0xd500, 0xa438, 0xd706, 0xa438, 0x2529, 0xa438, 0x80e0,
0xa438, 0xd718, 0xa438, 0x607b, 0xa438, 0x40da, 0xa438, 0xf00f,
0xa438, 0x431a, 0xa438, 0xf021, 0xa438, 0xd718, 0xa438, 0x617b,
0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0x1000, 0xa438, 0x1b1a,
@@ -1105,18 +1124,18 @@ static const u16 phy_mcu_ram_code_8125d_2_1[] = {
0xa438, 0xf026, 0xa438, 0xf07b, 0xa438, 0x1000, 0xa438, 0x1a8a,
0xa438, 0x1000, 0xa438, 0x1b1a, 0xa438, 0xd718, 0xa438, 0x608e,
0xa438, 0xd73e, 0xa438, 0x5f34, 0xa438, 0xf029, 0xa438, 0xf08f,
- 0xa438, 0x1000, 0xa438, 0x819f, 0xa438, 0x1000, 0xa438, 0x1a8a,
- 0xa438, 0xd73e, 0xa438, 0x7fb4, 0xa438, 0x1000, 0xa438, 0x81b4,
+ 0xa438, 0x1000, 0xa438, 0x81b7, 0xa438, 0x1000, 0xa438, 0x1a8a,
+ 0xa438, 0xd73e, 0xa438, 0x7fb4, 0xa438, 0x1000, 0xa438, 0x81ce,
0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd718, 0xa438, 0x5fae,
- 0xa438, 0xf028, 0xa438, 0x1000, 0xa438, 0x819f, 0xa438, 0x1000,
+ 0xa438, 0xf028, 0xa438, 0x1000, 0xa438, 0x81b7, 0xa438, 0x1000,
0xa438, 0x1a8a, 0xa438, 0xd73e, 0xa438, 0x7fb4, 0xa438, 0x1000,
- 0xa438, 0x81b4, 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd718,
- 0xa438, 0x5fae, 0xa438, 0xf039, 0xa438, 0x1000, 0xa438, 0x819f,
+ 0xa438, 0x81ce, 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd718,
+ 0xa438, 0x5fae, 0xa438, 0xf039, 0xa438, 0x1000, 0xa438, 0x81b7,
0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd73e, 0xa438, 0x7fb4,
- 0xa438, 0x1000, 0xa438, 0x81b4, 0xa438, 0x1000, 0xa438, 0x1a8a,
+ 0xa438, 0x1000, 0xa438, 0x81ce, 0xa438, 0x1000, 0xa438, 0x1a8a,
0xa438, 0xd718, 0xa438, 0x5fae, 0xa438, 0xf04a, 0xa438, 0x1000,
- 0xa438, 0x819f, 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd73e,
- 0xa438, 0x7fb4, 0xa438, 0x1000, 0xa438, 0x81b4, 0xa438, 0x1000,
+ 0xa438, 0x81b7, 0xa438, 0x1000, 0xa438, 0x1a8a, 0xa438, 0xd73e,
+ 0xa438, 0x7fb4, 0xa438, 0x1000, 0xa438, 0x81ce, 0xa438, 0x1000,
0xa438, 0x1a8a, 0xa438, 0xd718, 0xa438, 0x5fae, 0xa438, 0xf05b,
0xa438, 0xd719, 0xa438, 0x4119, 0xa438, 0xd504, 0xa438, 0xac01,
0xa438, 0xae01, 0xa438, 0xd500, 0xa438, 0x1000, 0xa438, 0x1a78,
@@ -1149,158 +1168,233 @@ static const u16 phy_mcu_ram_code_8125d_2_1[] = {
0xa438, 0xd505, 0xa438, 0xd719, 0xa438, 0x4079, 0xa438, 0xa80f,
0xa438, 0xf003, 0xa438, 0x4058, 0xa438, 0xa801, 0xa438, 0x1800,
0xa438, 0x1736, 0xa438, 0xd73e, 0xa438, 0xd505, 0xa438, 0x3088,
- 0xa438, 0x81a6, 0xa438, 0x6193, 0xa438, 0x6132, 0xa438, 0x60d1,
- 0xa438, 0x3298, 0xa438, 0x81b1, 0xa438, 0xf00a, 0xa438, 0xa808,
- 0xa438, 0xf008, 0xa438, 0xa804, 0xa438, 0xf006, 0xa438, 0xa802,
- 0xa438, 0xf004, 0xa438, 0xa801, 0xa438, 0xf002, 0xa438, 0xa80f,
- 0xa438, 0xd500, 0xa438, 0x0800, 0xa438, 0xd505, 0xa438, 0xd75e,
- 0xa438, 0x6211, 0xa438, 0xd71e, 0xa438, 0x619b, 0xa438, 0x611a,
- 0xa438, 0x6099, 0xa438, 0x0c0f, 0xa438, 0x0808, 0xa438, 0xf009,
- 0xa438, 0x0c0f, 0xa438, 0x0804, 0xa438, 0xf006, 0xa438, 0x0c0f,
- 0xa438, 0x0802, 0xa438, 0xf003, 0xa438, 0x0c0f, 0xa438, 0x0801,
- 0xa438, 0xd500, 0xa438, 0x0800, 0xa436, 0xA026, 0xa438, 0xffff,
- 0xa436, 0xA024, 0xa438, 0xffff, 0xa436, 0xA022, 0xa438, 0xffff,
- 0xa436, 0xA020, 0xa438, 0xffff, 0xa436, 0xA006, 0xa438, 0xffff,
- 0xa436, 0xA004, 0xa438, 0x16ab, 0xa436, 0xA002, 0xa438, 0x1663,
- 0xa436, 0xA000, 0xa438, 0x1608, 0xa436, 0xA008, 0xa438, 0x0700,
- 0xa436, 0xA016, 0xa438, 0x0000, 0xa436, 0xA012, 0xa438, 0x07f8,
- 0xa436, 0xA014, 0xa438, 0xcc01, 0xa438, 0x0000, 0xa438, 0x0000,
+ 0xa438, 0x81c0, 0xa438, 0x61d3, 0xa438, 0x6172, 0xa438, 0x6111,
+ 0xa438, 0x60b0, 0xa438, 0xf00d, 0xa438, 0x3298, 0xa438, 0x81cb,
+ 0xa438, 0xf00a, 0xa438, 0xa808, 0xa438, 0xf008, 0xa438, 0xa804,
+ 0xa438, 0xf006, 0xa438, 0xa802, 0xa438, 0xf004, 0xa438, 0xa801,
+ 0xa438, 0xf002, 0xa438, 0xa80f, 0xa438, 0xd500, 0xa438, 0x0800,
+ 0xa438, 0xd505, 0xa438, 0xd75e, 0xa438, 0x6211, 0xa438, 0xd71e,
+ 0xa438, 0x619b, 0xa438, 0x611a, 0xa438, 0x6099, 0xa438, 0x0c0f,
+ 0xa438, 0x0808, 0xa438, 0xf009, 0xa438, 0x0c0f, 0xa438, 0x0804,
+ 0xa438, 0xf006, 0xa438, 0x0c0f, 0xa438, 0x0802, 0xa438, 0xf003,
+ 0xa438, 0x0c0f, 0xa438, 0x0801, 0xa438, 0xd500, 0xa438, 0x0800,
+ 0xa438, 0xd707, 0xa438, 0x4141, 0xa438, 0xd706, 0xa438, 0x4112,
+ 0xa438, 0xd705, 0xa438, 0x40da, 0xa438, 0xbc01, 0xa438, 0xd028,
+ 0xa438, 0xd1c1, 0xa438, 0x1800, 0xa438, 0x81f0, 0xa438, 0x9c01,
+ 0xa438, 0xd07b, 0xa438, 0xd1c5, 0xa438, 0xbe10, 0xa438, 0xd503,
+ 0xa438, 0xa108, 0xa438, 0xd505, 0xa438, 0x8103, 0xa438, 0xd504,
+ 0xa438, 0xa002, 0xa438, 0xa302, 0xa438, 0xd707, 0xa438, 0x4061,
+ 0xa438, 0xd503, 0xa438, 0x8b01, 0xa438, 0xd500, 0xa438, 0xc48a,
+ 0xa438, 0xd503, 0xa438, 0xcc09, 0xa438, 0xcd58, 0xa438, 0xaf01,
+ 0xa438, 0xd500, 0xa438, 0x1800, 0xa438, 0x134c, 0xa438, 0xd71e,
+ 0xa438, 0x4097, 0xa438, 0xd078, 0xa438, 0xd1aa, 0xa438, 0xf003,
+ 0xa438, 0xd078, 0xa438, 0xd1aa, 0xa438, 0xd707, 0xa438, 0x40a1,
+ 0xa438, 0xd706, 0xa438, 0x4072, 0xa438, 0xd705, 0xa438, 0x621a,
+ 0xa438, 0xd706, 0xa438, 0x6065, 0xa438, 0xcc89, 0xa438, 0xf002,
+ 0xa438, 0xcc8b, 0xa438, 0x1000, 0xa438, 0x0bc8, 0xa438, 0xd705,
+ 0xa438, 0x2ad0, 0xa438, 0x821d, 0xa438, 0xf003, 0xa438, 0x1000,
+ 0xa438, 0x0bce, 0xa438, 0x1000, 0xa438, 0x0bd4, 0xa438, 0x1000,
+ 0xa438, 0x0cfa, 0xa438, 0xd04d, 0xa438, 0xd1c6, 0xa438, 0x1800,
+ 0xa438, 0x13b8, 0xa436, 0xA026, 0xa438, 0xffff, 0xa436, 0xA024,
+ 0xa438, 0xffff, 0xa436, 0xA022, 0xa438, 0xffff, 0xa436, 0xA020,
+ 0xa438, 0x1393, 0xa436, 0xA006, 0xa438, 0x1331, 0xa436, 0xA004,
+ 0xa438, 0x16ab, 0xa436, 0xA002, 0xa438, 0x1663, 0xa436, 0xA000,
+ 0xa438, 0x1608, 0xa436, 0xA008, 0xa438, 0x1f00, 0xa436, 0xA016,
+ 0xa438, 0x0000, 0xa436, 0xA012, 0xa438, 0x07f8, 0xa436, 0xA014,
+ 0xa438, 0xcc01, 0xa438, 0x20f6, 0xa438, 0x0000, 0xa438, 0x0000,
0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
- 0xa438, 0x0000, 0xa436, 0xA152, 0xa438, 0x021c, 0xa436, 0xA154,
- 0xa438, 0x3fff, 0xa436, 0xA156, 0xa438, 0x3fff, 0xa436, 0xA158,
- 0xa438, 0x3fff, 0xa436, 0xA15A, 0xa438, 0x3fff, 0xa436, 0xA15C,
- 0xa438, 0x3fff, 0xa436, 0xA15E, 0xa438, 0x3fff, 0xa436, 0xA160,
- 0xa438, 0x3fff, 0xa436, 0xA150, 0xa438, 0x0001, 0xa436, 0xA016,
- 0xa438, 0x0010, 0xa436, 0xA012, 0xa438, 0x0000, 0xa436, 0xA014,
- 0xa438, 0x1800, 0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x8013,
- 0xa438, 0x1800, 0xa438, 0x803a, 0xa438, 0x1800, 0xa438, 0x8045,
- 0xa438, 0x1800, 0xa438, 0x8049, 0xa438, 0x1800, 0xa438, 0x804d,
- 0xa438, 0x1800, 0xa438, 0x8059, 0xa438, 0x1800, 0xa438, 0x805d,
- 0xa438, 0xc2ff, 0xa438, 0x1800, 0xa438, 0x0042, 0xa438, 0x1000,
- 0xa438, 0x02e5, 0xa438, 0x1000, 0xa438, 0x02b4, 0xa438, 0xd701,
- 0xa438, 0x40e3, 0xa438, 0xd700, 0xa438, 0x5f6c, 0xa438, 0x1000,
- 0xa438, 0x8021, 0xa438, 0x1800, 0xa438, 0x0073, 0xa438, 0x1800,
- 0xa438, 0x0084, 0xa438, 0xd701, 0xa438, 0x4061, 0xa438, 0xba0f,
- 0xa438, 0xf004, 0xa438, 0x4060, 0xa438, 0x1000, 0xa438, 0x802a,
- 0xa438, 0xba10, 0xa438, 0x0800, 0xa438, 0xd700, 0xa438, 0x60bb,
- 0xa438, 0x611c, 0xa438, 0x0c0f, 0xa438, 0x1a01, 0xa438, 0xf00a,
- 0xa438, 0x60fc, 0xa438, 0x0c0f, 0xa438, 0x1a02, 0xa438, 0xf006,
- 0xa438, 0x0c0f, 0xa438, 0x1a04, 0xa438, 0xf003, 0xa438, 0x0c0f,
- 0xa438, 0x1a08, 0xa438, 0x0800, 0xa438, 0x0c0f, 0xa438, 0x0504,
- 0xa438, 0xad02, 0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700,
- 0xa438, 0x5fac, 0xa438, 0x1000, 0xa438, 0x8021, 0xa438, 0x1800,
- 0xa438, 0x0139, 0xa438, 0x9a1f, 0xa438, 0x8bf0, 0xa438, 0x1800,
- 0xa438, 0x02df, 0xa438, 0x9a1f, 0xa438, 0x9910, 0xa438, 0x1800,
- 0xa438, 0x02d7, 0xa438, 0xad02, 0xa438, 0x8d01, 0xa438, 0x9a1f,
+ 0xa436, 0xA152, 0xa438, 0x021c, 0xa436, 0xA154, 0xa438, 0x2100,
+ 0xa436, 0xA156, 0xa438, 0x3fff, 0xa436, 0xA158, 0xa438, 0x3fff,
+ 0xa436, 0xA15A, 0xa438, 0x3fff, 0xa436, 0xA15C, 0xa438, 0x3fff,
+ 0xa436, 0xA15E, 0xa438, 0x3fff, 0xa436, 0xA160, 0xa438, 0x3fff,
+ 0xa436, 0xA150, 0xa438, 0x0003, 0xa436, 0xA016, 0xa438, 0x0010,
+ 0xa436, 0xA012, 0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800,
+ 0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x8014, 0xa438, 0x1800,
+ 0xa438, 0x803d, 0xa438, 0x1800, 0xa438, 0x804a, 0xa438, 0x1800,
+ 0xa438, 0x804e, 0xa438, 0x1800, 0xa438, 0x8052, 0xa438, 0x1800,
+ 0xa438, 0x8092, 0xa438, 0x1800, 0xa438, 0x80a0, 0xa438, 0xc2ff,
+ 0xa438, 0x9a40, 0xa438, 0x1800, 0xa438, 0x0042, 0xa438, 0x1000,
+ 0xa438, 0x02e5, 0xa438, 0xba20, 0xa438, 0x1000, 0xa438, 0x02b4,
+ 0xa438, 0xd701, 0xa438, 0x4103, 0xa438, 0xd700, 0xa438, 0x5f6c,
+ 0xa438, 0x1000, 0xa438, 0x8024, 0xa438, 0x9a20, 0xa438, 0x1800,
+ 0xa438, 0x0073, 0xa438, 0x1800, 0xa438, 0x0084, 0xa438, 0xd701,
+ 0xa438, 0x4061, 0xa438, 0xba0f, 0xa438, 0xf004, 0xa438, 0x4060,
+ 0xa438, 0x1000, 0xa438, 0x802d, 0xa438, 0xba10, 0xa438, 0x0800,
+ 0xa438, 0xd700, 0xa438, 0x60bb, 0xa438, 0x611c, 0xa438, 0x0c0f,
+ 0xa438, 0x1a01, 0xa438, 0xf00a, 0xa438, 0x60fc, 0xa438, 0x0c0f,
+ 0xa438, 0x1a02, 0xa438, 0xf006, 0xa438, 0x0c0f, 0xa438, 0x1a04,
+ 0xa438, 0xf003, 0xa438, 0x0c0f, 0xa438, 0x1a08, 0xa438, 0x0800,
+ 0xa438, 0x0c0f, 0xa438, 0x0504, 0xa438, 0xad02, 0xa438, 0xd73e,
+ 0xa438, 0x40f6, 0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700,
+ 0xa438, 0x5fac, 0xa438, 0x1000, 0xa438, 0x8024, 0xa438, 0x1800,
+ 0xa438, 0x0139, 0xa438, 0x9a3f, 0xa438, 0x8bf0, 0xa438, 0x1800,
+ 0xa438, 0x02df, 0xa438, 0x9a3f, 0xa438, 0x9910, 0xa438, 0x1800,
+ 0xa438, 0x02d7, 0xa438, 0xad02, 0xa438, 0x8d01, 0xa438, 0x9a7f,
0xa438, 0x9910, 0xa438, 0x9860, 0xa438, 0xcb00, 0xa438, 0xd501,
- 0xa438, 0xce01, 0xa438, 0x85f0, 0xa438, 0xd500, 0xa438, 0x1800,
- 0xa438, 0x015c, 0xa438, 0x8580, 0xa438, 0x8d02, 0xa438, 0x1800,
- 0xa438, 0x018f, 0xa438, 0x0c0f, 0xa438, 0x0503, 0xa438, 0xad02,
- 0xa438, 0x1800, 0xa438, 0x00dd, 0xa436, 0xA08E, 0xa438, 0x00db,
- 0xa436, 0xA08C, 0xa438, 0x018e, 0xa436, 0xA08A, 0xa438, 0x015a,
- 0xa436, 0xA088, 0xa438, 0x02d6, 0xa436, 0xA086, 0xa438, 0x02de,
- 0xa436, 0xA084, 0xa438, 0x0137, 0xa436, 0xA082, 0xa438, 0x0071,
- 0xa436, 0xA080, 0xa438, 0x0041, 0xa436, 0xA090, 0xa438, 0x00ff,
- 0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012, 0xa438, 0x0000,
- 0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010, 0xa438, 0x1800,
- 0xa438, 0x801d, 0xa438, 0x1800, 0xa438, 0x808a, 0xa438, 0x1800,
- 0xa438, 0x80a1, 0xa438, 0x1800, 0xa438, 0x80b4, 0xa438, 0x1800,
- 0xa438, 0x8104, 0xa438, 0x1800, 0xa438, 0x810b, 0xa438, 0x1800,
- 0xa438, 0x810f, 0xa438, 0x8980, 0xa438, 0xd702, 0xa438, 0x6126,
- 0xa438, 0xd704, 0xa438, 0x4063, 0xa438, 0xd702, 0xa438, 0x6060,
- 0xa438, 0xd702, 0xa438, 0x6077, 0xa438, 0x1800, 0xa438, 0x0c29,
- 0xa438, 0x1800, 0xa438, 0x0c2b, 0xa438, 0x1000, 0xa438, 0x115a,
- 0xa438, 0xd71f, 0xa438, 0x5fb4, 0xa438, 0xd702, 0xa438, 0x6c46,
- 0xa438, 0xd704, 0xa438, 0x4063, 0xa438, 0xd702, 0xa438, 0x6060,
- 0xa438, 0xd702, 0xa438, 0x6b97, 0xa438, 0xa340, 0xa438, 0x0c06,
- 0xa438, 0x0102, 0xa438, 0xce01, 0xa438, 0x1000, 0xa438, 0x117a,
- 0xa438, 0xa240, 0xa438, 0xa902, 0xa438, 0xa204, 0xa438, 0xa280,
- 0xa438, 0xa364, 0xa438, 0xab02, 0xa438, 0x8380, 0xa438, 0xa00a,
- 0xa438, 0xcd8d, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd706,
- 0xa438, 0x5fb5, 0xa438, 0xb920, 0xa438, 0x1000, 0xa438, 0x115a,
- 0xa438, 0xd71f, 0xa438, 0x7fb4, 0xa438, 0x9920, 0xa438, 0x1000,
- 0xa438, 0x115a, 0xa438, 0xd71f, 0xa438, 0x6065, 0xa438, 0x7c74,
- 0xa438, 0xfffb, 0xa438, 0xb820, 0xa438, 0x1000, 0xa438, 0x115a,
- 0xa438, 0xd71f, 0xa438, 0x7fa5, 0xa438, 0x9820, 0xa438, 0xa410,
- 0xa438, 0x8902, 0xa438, 0xa120, 0xa438, 0xa380, 0xa438, 0xce02,
- 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x8280, 0xa438, 0xa324,
- 0xa438, 0xab02, 0xa438, 0xa00a, 0xa438, 0x8118, 0xa438, 0x863f,
- 0xa438, 0x87fb, 0xa438, 0xcd8e, 0xa438, 0xd193, 0xa438, 0xd047,
- 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0x1000, 0xa438, 0x115f,
- 0xa438, 0xd700, 0xa438, 0x5f7b, 0xa438, 0xa280, 0xa438, 0x1000,
- 0xa438, 0x115a, 0xa438, 0x1000, 0xa438, 0x115f, 0xa438, 0xd706,
- 0xa438, 0x5f78, 0xa438, 0xa210, 0xa438, 0xd700, 0xa438, 0x6083,
- 0xa438, 0xd101, 0xa438, 0xd047, 0xa438, 0xf003, 0xa438, 0xd160,
- 0xa438, 0xd04b, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0x1000,
- 0xa438, 0x115f, 0xa438, 0xd700, 0xa438, 0x5f7b, 0xa438, 0x1000,
- 0xa438, 0x115a, 0xa438, 0x1000, 0xa438, 0x115f, 0xa438, 0xd706,
- 0xa438, 0x5f79, 0xa438, 0x8120, 0xa438, 0xbb20, 0xa438, 0x1800,
- 0xa438, 0x0c8b, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f80,
- 0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x0c3c, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0x8f80, 0xa438, 0x9503, 0xa438, 0xd704,
- 0xa438, 0x6192, 0xa438, 0xd702, 0xa438, 0x4116, 0xa438, 0xce04,
- 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0x8f40, 0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x0b3d,
- 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xaf40, 0xa438, 0x9503,
- 0xa438, 0x1800, 0xa438, 0x0b48, 0xa438, 0xd704, 0xa438, 0x6192,
- 0xa438, 0xd702, 0xa438, 0x4116, 0xa438, 0xce04, 0xa438, 0x1000,
- 0xa438, 0x117a, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f40,
- 0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x1269, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0xaf40, 0xa438, 0x9503, 0xa438, 0x1800,
- 0xa438, 0x1274, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa608,
- 0xa438, 0xc700, 0xa438, 0x9503, 0xa438, 0xce54, 0xa438, 0x1000,
- 0xa438, 0x117a, 0xa438, 0xa290, 0xa438, 0xa304, 0xa438, 0xab02,
- 0xa438, 0xd700, 0xa438, 0x6050, 0xa438, 0xab04, 0xa438, 0x0c38,
- 0xa438, 0x0608, 0xa438, 0xaa0b, 0xa438, 0xd702, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0x8d01, 0xa438, 0xae40, 0xa438, 0x4044,
- 0xa438, 0x8e20, 0xa438, 0x9503, 0xa438, 0x0c03, 0xa438, 0x1502,
- 0xa438, 0x8c20, 0xa438, 0x9503, 0xa438, 0xd700, 0xa438, 0x6078,
- 0xa438, 0xd700, 0xa438, 0x609a, 0xa438, 0xd109, 0xa438, 0xd074,
- 0xa438, 0xf003, 0xa438, 0xd109, 0xa438, 0xd075, 0xa438, 0x1000,
- 0xa438, 0x115a, 0xa438, 0xd704, 0xa438, 0x6252, 0xa438, 0xd702,
- 0xa438, 0x4116, 0xa438, 0xce54, 0xa438, 0x1000, 0xa438, 0x117a,
+ 0xa438, 0xce01, 0xa438, 0x85f0, 0xa438, 0xd500, 0xa438, 0x0c0f,
+ 0xa438, 0x0505, 0xa438, 0xb820, 0xa438, 0xc000, 0xa438, 0xc100,
+ 0xa438, 0xc628, 0xa438, 0xc700, 0xa438, 0xc801, 0xa438, 0xc91e,
+ 0xa438, 0xc001, 0xa438, 0x4019, 0xa438, 0xc6f8, 0xa438, 0xc702,
+ 0xa438, 0xc809, 0xa438, 0xc940, 0xa438, 0xc002, 0xa438, 0x4019,
+ 0xa438, 0x1000, 0xa438, 0x02cc, 0xa438, 0xd700, 0xa438, 0x5fa7,
+ 0xa438, 0xc010, 0xa438, 0x1000, 0xa438, 0x02cc, 0xa438, 0xd700,
+ 0xa438, 0x5fa0, 0xa438, 0xc020, 0xa438, 0x1000, 0xa438, 0x02cc,
+ 0xa438, 0xd700, 0xa438, 0x5fa1, 0xa438, 0x0c0f, 0xa438, 0x0506,
+ 0xa438, 0xb840, 0xa438, 0xc6ca, 0xa438, 0xc701, 0xa438, 0xc809,
+ 0xa438, 0xc900, 0xa438, 0xc001, 0xa438, 0x4019, 0xa438, 0xc6b8,
+ 0xa438, 0xc700, 0xa438, 0xc800, 0xa438, 0xc900, 0xa438, 0xc008,
+ 0xa438, 0x4019, 0xa438, 0x1000, 0xa438, 0x02cc, 0xa438, 0xd700,
+ 0xa438, 0x5fa5, 0xa438, 0x8580, 0xa438, 0x8d02, 0xa438, 0x1800,
+ 0xa438, 0x018f, 0xa438, 0x1000, 0xa438, 0x02cc, 0xa438, 0xd700,
+ 0xa438, 0x6124, 0xa438, 0xd73e, 0xa438, 0x5f75, 0xa438, 0xd700,
+ 0xa438, 0x5f2c, 0xa438, 0x1000, 0xa438, 0x8024, 0xa438, 0x9a20,
+ 0xa438, 0xfff5, 0xa438, 0x1800, 0xa438, 0x00b8, 0xa438, 0x0c0f,
+ 0xa438, 0x0503, 0xa438, 0xad02, 0xa438, 0x68c8, 0xa438, 0x1000,
+ 0xa438, 0x02c0, 0xa438, 0xd700, 0xa438, 0x6848, 0xa438, 0x604d,
+ 0xa438, 0xfffb, 0xa438, 0xd73e, 0xa438, 0x6082, 0xa438, 0x1000,
+ 0xa438, 0x02a1, 0xa438, 0x8a0f, 0xa438, 0x1000, 0xa438, 0x02c0,
+ 0xa438, 0xd700, 0xa438, 0x5fae, 0xa438, 0x1000, 0xa438, 0x02de,
+ 0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700, 0xa438, 0x5faf,
+ 0xa438, 0x8d01, 0xa438, 0x8b0f, 0xa438, 0x1000, 0xa438, 0x02c0,
+ 0xa438, 0xd700, 0xa438, 0x2a58, 0xa438, 0x80c5, 0xa438, 0x2a5b,
+ 0xa438, 0x80cd, 0xa438, 0x2b53, 0xa438, 0x80d9, 0xa438, 0xfff7,
+ 0xa438, 0x1000, 0xa438, 0x022a, 0xa438, 0x1000, 0xa438, 0x02e5,
+ 0xa438, 0xba40, 0xa438, 0x1000, 0xa438, 0x02fd, 0xa438, 0xf018,
+ 0xa438, 0x1000, 0xa438, 0x022a, 0xa438, 0x1000, 0xa438, 0x02e5,
+ 0xa438, 0xba40, 0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700,
+ 0xa438, 0x5faa, 0xa438, 0x1000, 0xa438, 0x02fd, 0xa438, 0xf00c,
+ 0xa438, 0x1000, 0xa438, 0x022a, 0xa438, 0x1000, 0xa438, 0x02fd,
+ 0xa438, 0x1000, 0xa438, 0x02c0, 0xa438, 0xd700, 0xa438, 0x5fab,
+ 0xa438, 0x1000, 0xa438, 0x02e5, 0xa438, 0xba40, 0xa438, 0x1000,
+ 0xa438, 0x02c0, 0xa438, 0xd700, 0xa438, 0x6088, 0xa438, 0xfffc,
+ 0xa438, 0x1800, 0xa438, 0x0120, 0xa438, 0x1800, 0xa438, 0x0122,
+ 0xa436, 0xA08E, 0xa438, 0x00db, 0xa436, 0xA08C, 0xa438, 0x00b4,
+ 0xa436, 0xA08A, 0xa438, 0x015a, 0xa436, 0xA088, 0xa438, 0x02d6,
+ 0xa436, 0xA086, 0xa438, 0x02de, 0xa436, 0xA084, 0xa438, 0x0137,
+ 0xa436, 0xA082, 0xa438, 0x0071, 0xa436, 0xA080, 0xa438, 0x0041,
+ 0xa436, 0xA090, 0xa438, 0x00ff, 0xa436, 0xA016, 0xa438, 0x0020,
+ 0xa436, 0xA012, 0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800,
+ 0xa438, 0x8010, 0xa438, 0x1800, 0xa438, 0x8019, 0xa438, 0x1800,
+ 0xa438, 0x809e, 0xa438, 0x1800, 0xa438, 0x80b9, 0xa438, 0x1800,
+ 0xa438, 0x80cc, 0xa438, 0x1800, 0xa438, 0x811c, 0xa438, 0x1800,
+ 0xa438, 0x8123, 0xa438, 0x1800, 0xa438, 0x812f, 0xa438, 0xd71f,
+ 0xa438, 0x6080, 0xa438, 0xd141, 0xa438, 0xd043, 0xa438, 0xf003,
+ 0xa438, 0xd101, 0xa438, 0xd040, 0xa438, 0x1800, 0xa438, 0x0ac8,
+ 0xa438, 0x8980, 0xa438, 0xd702, 0xa438, 0x6126, 0xa438, 0xd704,
+ 0xa438, 0x4063, 0xa438, 0xd702, 0xa438, 0x6060, 0xa438, 0xd702,
+ 0xa438, 0x6077, 0xa438, 0x8410, 0xa438, 0xf002, 0xa438, 0xa410,
+ 0xa438, 0xce02, 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0xcd81,
+ 0xa438, 0xd412, 0xa438, 0x1000, 0xa438, 0x1125, 0xa438, 0xcd82,
+ 0xa438, 0xd40e, 0xa438, 0x1000, 0xa438, 0x1125, 0xa438, 0xcd83,
+ 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd71f, 0xa438, 0x5fb4,
+ 0xa438, 0xd702, 0xa438, 0x6c46, 0xa438, 0xd704, 0xa438, 0x4063,
+ 0xa438, 0xd702, 0xa438, 0x6060, 0xa438, 0xd702, 0xa438, 0x6b97,
+ 0xa438, 0xa340, 0xa438, 0x0c06, 0xa438, 0x0102, 0xa438, 0xce01,
+ 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0xa240, 0xa438, 0xa902,
+ 0xa438, 0xa204, 0xa438, 0xa280, 0xa438, 0xa364, 0xa438, 0xab02,
+ 0xa438, 0x8380, 0xa438, 0xa00a, 0xa438, 0xcd8d, 0xa438, 0x1000,
+ 0xa438, 0x115a, 0xa438, 0xd706, 0xa438, 0x5fb5, 0xa438, 0xb920,
+ 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd71f, 0xa438, 0x7fb4,
+ 0xa438, 0x9920, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd71f,
+ 0xa438, 0x6065, 0xa438, 0x7c74, 0xa438, 0xfffb, 0xa438, 0xb820,
+ 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd71f, 0xa438, 0x7fa5,
+ 0xa438, 0x9820, 0xa438, 0xa410, 0xa438, 0x8902, 0xa438, 0xa120,
+ 0xa438, 0xa380, 0xa438, 0xce02, 0xa438, 0x1000, 0xa438, 0x117a,
+ 0xa438, 0x8280, 0xa438, 0xa324, 0xa438, 0xab02, 0xa438, 0xa00a,
+ 0xa438, 0x8118, 0xa438, 0x863f, 0xa438, 0x87fb, 0xa438, 0xcd8e,
+ 0xa438, 0xd193, 0xa438, 0xd047, 0xa438, 0x1000, 0xa438, 0x115a,
+ 0xa438, 0x1000, 0xa438, 0x115f, 0xa438, 0xd700, 0xa438, 0x5f7b,
+ 0xa438, 0xa280, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0x1000,
+ 0xa438, 0x115f, 0xa438, 0xd706, 0xa438, 0x5f78, 0xa438, 0xa210,
+ 0xa438, 0xd700, 0xa438, 0x6083, 0xa438, 0xd101, 0xa438, 0xd047,
+ 0xa438, 0xf003, 0xa438, 0xd160, 0xa438, 0xd04b, 0xa438, 0x1000,
+ 0xa438, 0x115a, 0xa438, 0x1000, 0xa438, 0x115f, 0xa438, 0xd700,
+ 0xa438, 0x5f7b, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0x1000,
+ 0xa438, 0x115f, 0xa438, 0xd706, 0xa438, 0x5f79, 0xa438, 0x8120,
+ 0xa438, 0xbb20, 0xa438, 0x1800, 0xa438, 0x0c8b, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x8f80, 0xa438, 0x9503, 0xa438, 0x1800,
+ 0xa438, 0x0c3c, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa608,
+ 0xa438, 0x9503, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f80,
+ 0xa438, 0x9503, 0xa438, 0xd704, 0xa438, 0x6192, 0xa438, 0xd702,
+ 0xa438, 0x4116, 0xa438, 0xce04, 0xa438, 0x1000, 0xa438, 0x117a,
0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8f40, 0xa438, 0x9503,
- 0xa438, 0xa00a, 0xa438, 0xd704, 0xa438, 0x41e7, 0xa438, 0x0c03,
- 0xa438, 0x1502, 0xa438, 0xa570, 0xa438, 0x9503, 0xa438, 0xf00a,
- 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xaf40, 0xa438, 0x9503,
- 0xa438, 0x800a, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8570,
- 0xa438, 0x9503, 0xa438, 0xd704, 0xa438, 0x60f3, 0xa438, 0xd71f,
- 0xa438, 0x60ee, 0xa438, 0xd700, 0xa438, 0x5bbe, 0xa438, 0x1800,
- 0xa438, 0x0e71, 0xa438, 0x1800, 0xa438, 0x0e7c, 0xa438, 0x1800,
- 0xa438, 0x0e7e, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xaf80,
- 0xa438, 0x9503, 0xa438, 0xcd62, 0xa438, 0x1800, 0xa438, 0x0bd2,
- 0xa438, 0x800a, 0xa438, 0x8306, 0xa438, 0x1800, 0xa438, 0x0cb6,
- 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8608, 0xa438, 0x8c20,
- 0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x0eb9, 0xa436, 0xA10E,
- 0xa438, 0x0eb5, 0xa436, 0xA10C, 0xa438, 0x0cb5, 0xa436, 0xA10A,
+ 0xa438, 0x1800, 0xa438, 0x0b3d, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0xaf40, 0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x0b48,
+ 0xa438, 0xd704, 0xa438, 0x6192, 0xa438, 0xd702, 0xa438, 0x4116,
+ 0xa438, 0xce04, 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x8f40, 0xa438, 0x9503, 0xa438, 0x1800,
+ 0xa438, 0x1269, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xaf40,
+ 0xa438, 0x9503, 0xa438, 0x1800, 0xa438, 0x1274, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0xa608, 0xa438, 0xc700, 0xa438, 0x9503,
+ 0xa438, 0xce54, 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0xa290,
+ 0xa438, 0xa304, 0xa438, 0xab02, 0xa438, 0xd700, 0xa438, 0x6050,
+ 0xa438, 0xab04, 0xa438, 0x0c38, 0xa438, 0x0608, 0xa438, 0xaa0b,
+ 0xa438, 0xd702, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8d01,
+ 0xa438, 0xae40, 0xa438, 0x4044, 0xa438, 0x8e20, 0xa438, 0x9503,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8c20, 0xa438, 0x9503,
+ 0xa438, 0xd700, 0xa438, 0x6078, 0xa438, 0xd700, 0xa438, 0x609a,
+ 0xa438, 0xd109, 0xa438, 0xd074, 0xa438, 0xf003, 0xa438, 0xd109,
+ 0xa438, 0xd075, 0xa438, 0x1000, 0xa438, 0x115a, 0xa438, 0xd704,
+ 0xa438, 0x6252, 0xa438, 0xd702, 0xa438, 0x4116, 0xa438, 0xce54,
+ 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0x8f40, 0xa438, 0x9503, 0xa438, 0xa00a, 0xa438, 0xd704,
+ 0xa438, 0x41e7, 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0xa570,
+ 0xa438, 0x9503, 0xa438, 0xf00a, 0xa438, 0x0c03, 0xa438, 0x1502,
+ 0xa438, 0xaf40, 0xa438, 0x9503, 0xa438, 0x800a, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0x8570, 0xa438, 0x9503, 0xa438, 0xd704,
+ 0xa438, 0x60f3, 0xa438, 0xd71f, 0xa438, 0x60ee, 0xa438, 0xd700,
+ 0xa438, 0x5bbe, 0xa438, 0x1800, 0xa438, 0x0e71, 0xa438, 0x1800,
+ 0xa438, 0x0e7c, 0xa438, 0x1800, 0xa438, 0x0e7e, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0xaf80, 0xa438, 0x9503, 0xa438, 0xcd62,
+ 0xa438, 0x1800, 0xa438, 0x0bd2, 0xa438, 0x800a, 0xa438, 0x8530,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8d10, 0xa438, 0x9503,
+ 0xa438, 0xd700, 0xa438, 0x6050, 0xa438, 0xaa20, 0xa438, 0x8306,
+ 0xa438, 0x1800, 0xa438, 0x0cb6, 0xa438, 0xd105, 0xa438, 0xd040,
+ 0xa438, 0x1000, 0xa438, 0x0d8f, 0xa438, 0xd700, 0xa438, 0x5fbb,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x8608, 0xa438, 0x9503,
+ 0xa438, 0x1000, 0xa438, 0x0d8f, 0xa438, 0xd704, 0xa438, 0x7fb6,
+ 0xa438, 0x0c03, 0xa438, 0x1502, 0xa438, 0x87f0, 0xa438, 0x9503,
+ 0xa438, 0xce88, 0xa438, 0x1000, 0xa438, 0x117a, 0xa438, 0x0c03,
+ 0xa438, 0x1502, 0xa438, 0xa608, 0xa438, 0x9503, 0xa438, 0xd73e,
+ 0xa438, 0x60a5, 0xa438, 0xd705, 0xa438, 0x4071, 0xa438, 0x1800,
+ 0xa438, 0x0d65, 0xa438, 0x1800, 0xa438, 0x0d6f, 0xa436, 0xA10E,
+ 0xa438, 0x0d58, 0xa436, 0xA10C, 0xa438, 0x0cb5, 0xa436, 0xA10A,
0xa438, 0x0bd1, 0xa436, 0xA108, 0xa438, 0x0e37, 0xa436, 0xA106,
0xa438, 0x1267, 0xa436, 0xA104, 0xa438, 0x0b3b, 0xa436, 0xA102,
- 0xa438, 0x0c38, 0xa436, 0xA100, 0xa438, 0x0c24, 0xa436, 0xA110,
- 0xa438, 0x00ff, 0xa436, 0xb87c, 0xa438, 0x85bf, 0xa436, 0xb87e,
- 0xa438, 0xaf85, 0xa438, 0xd7af, 0xa438, 0x85fb, 0xa438, 0xaf86,
- 0xa438, 0x10af, 0xa438, 0x8638, 0xa438, 0xaf86, 0xa438, 0x47af,
- 0xa438, 0x8647, 0xa438, 0xaf86, 0xa438, 0x47af, 0xa438, 0x8647,
- 0xa438, 0xbf85, 0xa438, 0xf802, 0xa438, 0x627f, 0xa438, 0xbf61,
- 0xa438, 0xc702, 0xa438, 0x627f, 0xa438, 0xae0c, 0xa438, 0xbf85,
- 0xa438, 0xf802, 0xa438, 0x6276, 0xa438, 0xbf61, 0xa438, 0xc702,
- 0xa438, 0x6276, 0xa438, 0xee85, 0xa438, 0x4200, 0xa438, 0xaf1b,
- 0xa438, 0x2333, 0xa438, 0xa484, 0xa438, 0xbf86, 0xa438, 0x0a02,
- 0xa438, 0x627f, 0xa438, 0xbf86, 0xa438, 0x0d02, 0xa438, 0x627f,
- 0xa438, 0xaf1b, 0xa438, 0x8422, 0xa438, 0xa484, 0xa438, 0x66ac,
- 0xa438, 0x0ef8, 0xa438, 0xfbef, 0xa438, 0x79fb, 0xa438, 0xe080,
- 0xa438, 0x16ad, 0xa438, 0x230f, 0xa438, 0xee85, 0xa438, 0x4200,
- 0xa438, 0x1f44, 0xa438, 0xbf86, 0xa438, 0x30d7, 0xa438, 0x0008,
- 0xa438, 0x0264, 0xa438, 0xa3ff, 0xa438, 0xef97, 0xa438, 0xfffc,
- 0xa438, 0x0485, 0xa438, 0xf861, 0xa438, 0xc786, 0xa438, 0x0a86,
- 0xa438, 0x0de1, 0xa438, 0x8feb, 0xa438, 0xe583, 0xa438, 0x20e1,
- 0xa438, 0x8fea, 0xa438, 0xe583, 0xa438, 0x21af, 0xa438, 0x41a7,
- 0xa436, 0xb85e, 0xa438, 0x1b05, 0xa436, 0xb860, 0xa438, 0x1b78,
- 0xa436, 0xb862, 0xa438, 0x1a08, 0xa436, 0xb864, 0xa438, 0x419F,
- 0xa436, 0xb886, 0xa438, 0xffff, 0xa436, 0xb888, 0xa438, 0xffff,
- 0xa436, 0xb88a, 0xa438, 0xffff, 0xa436, 0xb88c, 0xa438, 0xffff,
- 0xa436, 0xb838, 0xa438, 0x000f, 0xb820, 0x0010, 0xa436, 0x0000,
- 0xa438, 0x0000, 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000,
- 0xa436, 0x801E, 0xa438, 0x0008, 0xB820, 0x0000, 0xFFFF, 0xFFFF
+ 0xa438, 0x0c24, 0xa436, 0xA100, 0xa438, 0x0ac6, 0xa436, 0xA110,
+ 0xa438, 0x00ff, 0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012,
+ 0xa438, 0x1ff8, 0xa436, 0xA014, 0xa438, 0x0000, 0xa438, 0x0000,
+ 0xa438, 0x0000, 0xa438, 0xd100, 0xa438, 0x0000, 0xa438, 0x0000,
+ 0xa438, 0x0000, 0xa438, 0x0000, 0xa436, 0xA164, 0xa438, 0x0ceb,
+ 0xa436, 0xA166, 0xa438, 0x0e73, 0xa436, 0xA168, 0xa438, 0x0deb,
+ 0xa436, 0xA16A, 0xa438, 0x0c63, 0xa436, 0xA16C, 0xa438, 0x3fff,
+ 0xa436, 0xA16E, 0xa438, 0x3fff, 0xa436, 0xA170, 0xa438, 0x3fff,
+ 0xa436, 0xA172, 0xa438, 0x3fff, 0xa436, 0xA162, 0xa438, 0x000f,
+ 0xa436, 0xb87c, 0xa438, 0x85bf, 0xa436, 0xb87e, 0xa438, 0xaf85,
+ 0xa438, 0xd7af, 0xa438, 0x85fb, 0xa438, 0xaf86, 0xa438, 0x10af,
+ 0xa438, 0x8638, 0xa438, 0xaf86, 0xa438, 0x47af, 0xa438, 0x8647,
+ 0xa438, 0xaf86, 0xa438, 0x47af, 0xa438, 0x8647, 0xa438, 0xbf85,
+ 0xa438, 0xf802, 0xa438, 0x627f, 0xa438, 0xbf61, 0xa438, 0xc702,
+ 0xa438, 0x627f, 0xa438, 0xae0c, 0xa438, 0xbf85, 0xa438, 0xf802,
+ 0xa438, 0x6276, 0xa438, 0xbf61, 0xa438, 0xc702, 0xa438, 0x6276,
+ 0xa438, 0xee85, 0xa438, 0x4200, 0xa438, 0xaf1b, 0xa438, 0x2333,
+ 0xa438, 0xa484, 0xa438, 0xbf86, 0xa438, 0x0a02, 0xa438, 0x627f,
+ 0xa438, 0xbf86, 0xa438, 0x0d02, 0xa438, 0x627f, 0xa438, 0xaf1b,
+ 0xa438, 0x8422, 0xa438, 0xa484, 0xa438, 0x66ac, 0xa438, 0x0ef8,
+ 0xa438, 0xfbef, 0xa438, 0x79fb, 0xa438, 0xe080, 0xa438, 0x16ad,
+ 0xa438, 0x230f, 0xa438, 0xee85, 0xa438, 0x4200, 0xa438, 0x1f44,
+ 0xa438, 0xbf86, 0xa438, 0x30d7, 0xa438, 0x0008, 0xa438, 0x0264,
+ 0xa438, 0xa3ff, 0xa438, 0xef97, 0xa438, 0xfffc, 0xa438, 0x0485,
+ 0xa438, 0xf861, 0xa438, 0xc786, 0xa438, 0x0a86, 0xa438, 0x0de1,
+ 0xa438, 0x8feb, 0xa438, 0xe583, 0xa438, 0x20e1, 0xa438, 0x8fea,
+ 0xa438, 0xe583, 0xa438, 0x21af, 0xa438, 0x41a7, 0xa436, 0xb85e,
+ 0xa438, 0x1b05, 0xa436, 0xb860, 0xa438, 0x1b78, 0xa436, 0xb862,
+ 0xa438, 0x1a08, 0xa436, 0xb864, 0xa438, 0x419F, 0xa436, 0xb886,
+ 0xa438, 0xffff, 0xa436, 0xb888, 0xa438, 0xffff, 0xa436, 0xb88a,
+ 0xa438, 0xffff, 0xa436, 0xb88c, 0xa438, 0xffff, 0xa436, 0xb838,
+ 0xa438, 0x000f, 0xb820, 0x0010, 0xa436, 0x0000, 0xa438, 0x0000,
+ 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000, 0xa436, 0x801E,
+ 0xa438, 0x0014, 0xB820, 0x0000, 0xFFFF, 0xFFFF
};
static const u16 phy_mcu_ram_code_8125d_2_2[] = {
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index 05d977379a..3f7e452132 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -769,8 +769,8 @@ rtl_enable_aspm_clkreq_lock(struct rtl_hw *hw, bool enable)
if (unlock_cfg_wr)
rtl_enable_cfg9346_write(hw);
- if (hw->mcfg == CFG_METHOD_70 || hw->mcfg == CFG_METHOD_71 ||
- hw->mcfg == CFG_METHOD_91) {
+ if (hw->mcfg == CFG_METHOD_58 || hw->mcfg == CFG_METHOD_70 ||
+ hw->mcfg == CFG_METHOD_71 || hw->mcfg == CFG_METHOD_91) {
if (enable) {
RTL_W8(hw, INT_CFG0_8125, RTL_R8(hw, INT_CFG0_8125) | BIT_3);
RTL_W8(hw, Config5, RTL_R8(hw, Config5) | BIT_0);
diff --git a/drivers/net/r8169/r8169_hw.h b/drivers/net/r8169/r8169_hw.h
index a1f841c88d..1bdc46bd17 100644
--- a/drivers/net/r8169/r8169_hw.h
+++ b/drivers/net/r8169/r8169_hw.h
@@ -135,8 +135,8 @@ extern const struct rtl_hw_ops rtl8125cp_ops;
#define NIC_RAMCODE_VERSION_CFG_METHOD_54 (0x0013)
#define NIC_RAMCODE_VERSION_CFG_METHOD_55 (0x0001)
#define NIC_RAMCODE_VERSION_CFG_METHOD_56 (0x0027)
-#define NIC_RAMCODE_VERSION_CFG_METHOD_57 (0x0027)
-#define NIC_RAMCODE_VERSION_CFG_METHOD_58 (0x0008)
+#define NIC_RAMCODE_VERSION_CFG_METHOD_57 (0x0034)
+#define NIC_RAMCODE_VERSION_CFG_METHOD_58 (0x0024)
#define NIC_RAMCODE_VERSION_CFG_METHOD_70 (0x0033)
#define NIC_RAMCODE_VERSION_CFG_METHOD_71 (0x0060)
#define NIC_RAMCODE_VERSION_CFG_METHOD_91 (0x0051)
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 09/12] net/r8169: add support for RTL9151
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (7 preceding siblings ...)
2026-02-09 8:54 ` [PATCH v1 08/12] net/r8169: update hardware configurations for 8125 Howard Wang
@ 2026-02-09 8:54 ` Howard Wang
2026-02-09 8:55 ` [PATCH v1 10/12] net/r8169: add support for RTL8125K Howard Wang
` (4 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:54 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/base/rtl9151a.c | 87 ++++++++++++++++++++
drivers/net/r8169/base/rtl9151a.h | 10 +++
drivers/net/r8169/base/rtl9151a_mcu.c | 53 ++++++++++++
drivers/net/r8169/meson.build | 2 +
drivers/net/r8169/r8169_compat.h | 3 +
drivers/net/r8169/r8169_ethdev.c | 5 +-
drivers/net/r8169/r8169_ethdev.h | 3 +
drivers/net/r8169/r8169_hw.c | 112 +++++++++++++++++---------
drivers/net/r8169/r8169_hw.h | 4 +-
drivers/net/r8169/r8169_phy.c | 36 ++-------
10 files changed, 246 insertions(+), 69 deletions(-)
create mode 100644 drivers/net/r8169/base/rtl9151a.c
create mode 100644 drivers/net/r8169/base/rtl9151a.h
create mode 100644 drivers/net/r8169/base/rtl9151a_mcu.c
diff --git a/drivers/net/r8169/base/rtl9151a.c b/drivers/net/r8169/base/rtl9151a.c
new file mode 100644
index 0000000000..4eca5fb96b
--- /dev/null
+++ b/drivers/net/r8169/base/rtl9151a.c
@@ -0,0 +1,87 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2024 Realtek Corporation. All rights reserved
+ */
+
+#include "../r8169_ethdev.h"
+#include "../r8169_hw.h"
+#include "../r8169_phy.h"
+#include "rtl9151a.h"
+
+/* For RTL9151A, CFG_METHOD_60 */
+
+static void
+hw_init_rxcfg_9151a(struct rtl_hw *hw)
+{
+ RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 | Rx_Close_Multiple |
+ RxCfg_pause_slot_en | (RX_DMA_BURST_512 << RxCfgDMAShift));
+}
+
+static void
+hw_ephy_config_9151a(struct rtl_hw *hw)
+{
+ switch (hw->mcfg) {
+ case CFG_METHOD_60:
+ /* nothing to do */
+ break;
+ }
+}
+
+static void
+rtl_hw_phy_config_9151a_1(struct rtl_hw *hw)
+{
+ rtl_set_eth_phy_ocp_bit(hw, 0xA442, BIT_11);
+
+ rtl_mdio_direct_write_phy_ocp(hw, 0xB87C, 0x8079);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xB87E, 0xFF00, 0x4400);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xAC16, 0x00FF, 0x0001);
+ rtl_clear_and_set_eth_phy_ocp_bit(hw, 0xAD0E, 0x007F, 0x000D);
+
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA436, 0x80B6);
+ rtl_mdio_direct_write_phy_ocp(hw, 0xA438, 0xB6C3);
+}
+
+static void
+hw_phy_config_9151a(struct rtl_hw *hw)
+{
+ switch (hw->mcfg) {
+ case CFG_METHOD_60:
+ rtl_hw_phy_config_9151a_1(hw);
+ break;
+ }
+}
+
+static void
+hw_mac_mcu_config_9151a(struct rtl_hw *hw)
+{
+ if (hw->NotWrMcuPatchCode)
+ return;
+
+ rtl_hw_disable_mac_mcu_bps(hw);
+
+ /* Get H/W mac mcu patch code version */
+ hw->hw_mcu_patch_code_ver = rtl_get_hw_mcu_patch_code_ver(hw);
+
+ switch (hw->mcfg) {
+ case CFG_METHOD_60:
+ /* no mac mcu patch code */
+ break;
+ }
+}
+
+static void
+hw_phy_mcu_config_9151a(struct rtl_hw *hw)
+{
+ switch (hw->mcfg) {
+ case CFG_METHOD_60:
+ rtl_set_phy_mcu_9151a_1(hw);
+ break;
+ }
+}
+
+const struct rtl_hw_ops rtl9151a_ops = {
+ .hw_init_rxcfg = hw_init_rxcfg_9151a,
+ .hw_ephy_config = hw_ephy_config_9151a,
+ .hw_phy_config = hw_phy_config_9151a,
+ .hw_mac_mcu_config = hw_mac_mcu_config_9151a,
+ .hw_phy_mcu_config = hw_phy_mcu_config_9151a,
+};
diff --git a/drivers/net/r8169/base/rtl9151a.h b/drivers/net/r8169/base/rtl9151a.h
new file mode 100644
index 0000000000..bf0e2017d6
--- /dev/null
+++ b/drivers/net/r8169/base/rtl9151a.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2024 Realtek Corporation. All rights reserved
+ */
+
+#ifndef RTL9151A_H
+#define RTL9151A_H
+
+void rtl_set_phy_mcu_9151a_1(struct rtl_hw *hw);
+
+#endif /* RTL9151A_H */
diff --git a/drivers/net/r8169/base/rtl9151a_mcu.c b/drivers/net/r8169/base/rtl9151a_mcu.c
new file mode 100644
index 0000000000..50a2cd90e6
--- /dev/null
+++ b/drivers/net/r8169/base/rtl9151a_mcu.c
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2024 Realtek Corporation. All rights reserved
+ */
+
+#include "../r8169_ethdev.h"
+#include "../r8169_hw.h"
+#include "../r8169_phy.h"
+#include "rtl9151a.h"
+
+/* For RTL9151A, CFG_METHOD_60 */
+
+/* ------------------------------------MAC 9151A------------------------------------- */
+
+/* ------------------------------------PHY 9151A--------------------------------------- */
+
+static const u16 phy_mcu_ram_code_9151a_1_1[] = {
+ 0xa436, 0x8023, 0xa438, 0x5100, 0xa436, 0xB82E, 0xa438, 0x0001,
+ 0xb820, 0x0090, 0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012,
+ 0xa438, 0x0000, 0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010,
+ 0xa438, 0x1800, 0xa438, 0x8017, 0xa438, 0x1800, 0xa438, 0x8028,
+ 0xa438, 0x1800, 0xa438, 0x8028, 0xa438, 0x1800, 0xa438, 0x8028,
+ 0xa438, 0x1800, 0xa438, 0x8028, 0xa438, 0x1800, 0xa438, 0x8028,
+ 0xa438, 0x1800, 0xa438, 0x8028, 0xa438, 0x8901, 0xa438, 0xd707,
+ 0xa438, 0x4076, 0xa438, 0x1800, 0xa438, 0x1399, 0xa438, 0x1800,
+ 0xa438, 0x139f, 0xa438, 0xa00a, 0xa438, 0x0c06, 0xa438, 0x0102,
+ 0xa438, 0xa240, 0xa438, 0xa290, 0xa438, 0xa344, 0xa438, 0xab02,
+ 0xa438, 0xa404, 0xa438, 0xd1c7, 0xa438, 0xd045, 0xa438, 0x1000,
+ 0xa438, 0x125f, 0xa438, 0xd700, 0xa438, 0x5fbb, 0xa438, 0xa320,
+ 0xa438, 0x1800, 0xa438, 0x0cc2, 0xa436, 0xA10E, 0xa438, 0xffff,
+ 0xa436, 0xA10C, 0xa438, 0xffff, 0xa436, 0xA10A, 0xa438, 0xffff,
+ 0xa436, 0xA108, 0xa438, 0xffff, 0xa436, 0xA106, 0xa438, 0xffff,
+ 0xa436, 0xA104, 0xa438, 0xffff, 0xa436, 0xA102, 0xa438, 0x0cb4,
+ 0xa436, 0xA100, 0xa438, 0x1398, 0xa436, 0xA110, 0xa438, 0x0003,
+ 0xb820, 0x0010, 0xB82E, 0x0000, 0xa436, 0x8023, 0xa438, 0x0000,
+ 0xB820, 0x0000, 0xFFFF, 0xFFFF
+};
+
+static void
+rtl_real_set_phy_mcu_9151a_1_1(struct rtl_hw *hw)
+{
+ rtl_set_phy_mcu_ram_code(hw, phy_mcu_ram_code_9151a_1_1,
+ ARRAY_SIZE(phy_mcu_ram_code_9151a_1_1));
+}
+
+void
+rtl_set_phy_mcu_9151a_1(struct rtl_hw *hw)
+{
+ rtl_set_phy_mcu_patch_request(hw);
+
+ rtl_real_set_phy_mcu_9151a_1_1(hw);
+
+ rtl_clear_phy_mcu_patch_request(hw);
+}
diff --git a/drivers/net/r8169/meson.build b/drivers/net/r8169/meson.build
index e0b3e88c3d..3747e198bc 100644
--- a/drivers/net/r8169/meson.build
+++ b/drivers/net/r8169/meson.build
@@ -32,4 +32,6 @@ sources = files(
'base/rtl8168m.c',
'base/rtl8127.c',
'base/rtl8127_mcu.c',
+ 'base/rtl9151a.c',
+ 'base/rtl9151a_mcu.c',
)
diff --git a/drivers/net/r8169/r8169_compat.h b/drivers/net/r8169/r8169_compat.h
index 673a1ca274..4339522f2d 100644
--- a/drivers/net/r8169/r8169_compat.h
+++ b/drivers/net/r8169/r8169_compat.h
@@ -271,6 +271,8 @@ enum RTL_registers {
IB2SOC_DATA = 0x0014,
IB2SOC_CMD = 0x0018,
IB2SOC_IMR = 0x001C,
+ /* 9151 */
+ TxConfigV2 = 0x60B0,
};
enum RTL_register_content {
@@ -526,6 +528,7 @@ enum RTL_chipset_name {
RTL8125D,
RTL8125CP,
RTL8168KD,
+ RTL9151A,
RTL8126A,
RTL8168EP,
RTL8168FP,
diff --git a/drivers/net/r8169/r8169_ethdev.c b/drivers/net/r8169/r8169_ethdev.c
index 80e03dd53c..625f50853e 100644
--- a/drivers/net/r8169/r8169_ethdev.c
+++ b/drivers/net/r8169/r8169_ethdev.c
@@ -171,6 +171,7 @@ _rtl_setup_link(struct rte_eth_dev *dev)
case RTL8125BP:
case RTL8125D:
case RTL8125CP:
+ case RTL9151A:
speed_mode = SPEED_2500;
break;
case RTL8126A:
@@ -426,6 +427,7 @@ rtl_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
case CFG_METHOD_56:
case CFG_METHOD_57:
case CFG_METHOD_58:
+ case CFG_METHOD_60:
case CFG_METHOD_70:
case CFG_METHOD_71:
case CFG_METHOD_91:
@@ -471,6 +473,7 @@ rtl_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
case RTL8125BP:
case RTL8125D:
case RTL8125CP:
+ case RTL9151A:
dev_info->speed_capa |= RTE_ETH_LINK_SPEED_2_5G;
break;
}
@@ -931,7 +934,7 @@ rtl_dev_init(struct rte_eth_dev *dev)
rtl_disable_intr(hw);
- rtl_hw_initialize(hw);
+ rtl_hw_initialize(hw, pci_dev);
/* Read the permanent MAC address out of ROM */
rtl_get_mac_address(hw, perm_addr);
diff --git a/drivers/net/r8169/r8169_ethdev.h b/drivers/net/r8169/r8169_ethdev.h
index a7604df6c2..d3676ee7d2 100644
--- a/drivers/net/r8169/r8169_ethdev.h
+++ b/drivers/net/r8169/r8169_ethdev.h
@@ -117,6 +117,9 @@ struct rtl_hw {
u16 mcu_pme_setting;
+ /* Device function */
+ u8 function;
+
/* Enable Tx No Close */
u8 HwSuppTxNoCloseVer;
u8 EnableTxNoClose;
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index 3f7e452132..ef2b0654a5 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -496,22 +496,7 @@ rtl_csi_other_fun_read(struct rtl_hw *hw, u8 multi_fun_sel_bit, u32 addr)
u32
rtl_csi_read(struct rtl_hw *hw, u32 addr)
{
- u8 multi_fun_sel_bit;
-
- switch (hw->mcfg) {
- case CFG_METHOD_26:
- case CFG_METHOD_31:
- case CFG_METHOD_32:
- case CFG_METHOD_33:
- case CFG_METHOD_34:
- multi_fun_sel_bit = 1;
- break;
- default:
- multi_fun_sel_bit = 0;
- break;
- }
-
- return rtl_csi_other_fun_read(hw, multi_fun_sel_bit, addr);
+ return rtl_csi_other_fun_read(hw, hw->function, addr);
}
void
@@ -546,22 +531,7 @@ rtl_csi_other_fun_write(struct rtl_hw *hw, u8 multi_fun_sel_bit, u32 addr,
void
rtl_csi_write(struct rtl_hw *hw, u32 addr, u32 value)
{
- u8 multi_fun_sel_bit;
-
- switch (hw->mcfg) {
- case CFG_METHOD_26:
- case CFG_METHOD_31:
- case CFG_METHOD_32:
- case CFG_METHOD_33:
- case CFG_METHOD_34:
- multi_fun_sel_bit = 1;
- break;
- default:
- multi_fun_sel_bit = 0;
- break;
- }
-
- rtl_csi_other_fun_write(hw, multi_fun_sel_bit, addr, value);
+ rtl_csi_other_fun_write(hw, hw->function, addr, value);
}
void
@@ -631,6 +601,7 @@ rtl_stop_all_request(struct rtl_hw *hw)
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:
@@ -688,6 +659,7 @@ rtl_wait_txrx_fifo_empty(struct rtl_hw *hw)
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:
@@ -925,6 +897,7 @@ rtl8125_set_rx_desc_type(struct rtl_hw *hw)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_59:
+ case CFG_METHOD_60:
RTL_W8(hw, 0xD8, RTL_R8(hw, 0xD8) & ~EnableRxDescV4_0);
break;
case CFG_METHOD_70:
@@ -1043,7 +1016,7 @@ 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_59 || hw->mcfg == CFG_METHOD_60)
rtl_mac_ocp_write(hw, 0xE0C0, 0x4403);
else
rtl_mac_ocp_write(hw, 0xE0C0, 0x4000);
@@ -1259,6 +1232,10 @@ rtl_set_hw_ops(struct rtl_hw *hw)
case CFG_METHOD_58:
hw->hw_ops = rtl8125cp_ops;
return 0;
+ /* 9151A */
+ case CFG_METHOD_60:
+ hw->hw_ops = rtl9151a_ops;
+ return 0;
/* 8126A */
case CFG_METHOD_70:
case CFG_METHOD_71:
@@ -1486,7 +1463,7 @@ rtl_set_link_option(struct rtl_hw *hw, u8 autoneg, u32 speed, u8 duplex,
}
static void
-rtl_init_software_variable(struct rtl_hw *hw)
+rtl_init_software_variable(struct rtl_hw *hw, struct rte_pci_device *pci_dev)
{
int tx_no_close_enable = 1;
unsigned int speed_mode;
@@ -1547,6 +1524,9 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_59:
hw->chipset_name = RTL8168KD;
break;
+ case CFG_METHOD_60:
+ hw->chipset_name = RTL9151A;
+ break;
case CFG_METHOD_70:
case CFG_METHOD_71:
hw->chipset_name = RTL8126A;
@@ -1566,6 +1546,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
case RTL8125BP:
case RTL8125D:
case RTL8125CP:
+ case RTL9151A:
speed_mode = SPEED_2500;
break;
case RTL8126A:
@@ -1697,6 +1678,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
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:
@@ -1719,6 +1701,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_59:
+ case CFG_METHOD_60:
case CFG_METHOD_91:
hw->HwSuppTxNoCloseVer = 6;
break;
@@ -1813,6 +1796,9 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_58:
hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_58;
break;
+ case CFG_METHOD_60:
+ hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_60;
+ break;
case CFG_METHOD_70:
hw->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_70;
break;
@@ -1863,6 +1849,7 @@ rtl_init_software_variable(struct rtl_hw *hw)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_59:
+ case CFG_METHOD_60:
case CFG_METHOD_91:
hw->HwSuppIntMitiVer = 6;
break;
@@ -1894,6 +1881,8 @@ rtl_init_software_variable(struct rtl_hw *hw)
rtl_set_link_option(hw, autoneg_mode, speed_mode, duplex_mode, rtl_fc_full);
hw->mtu = RTL_DEFAULT_MTU;
+
+ hw->function = pci_dev->addr.function;
}
static void
@@ -2104,9 +2093,9 @@ rtl_hw_init(struct rtl_hw *hw)
}
void
-rtl_hw_initialize(struct rtl_hw *hw)
+rtl_hw_initialize(struct rtl_hw *hw, struct rte_pci_device *pci_dev)
{
- rtl_init_software_variable(hw);
+ rtl_init_software_variable(hw, pci_dev);
rtl_exit_oob(hw);
@@ -2115,6 +2104,36 @@ rtl_hw_initialize(struct rtl_hw *hw)
rtl_nic_reset(hw);
}
+static void
+rtl8125_get_mac_version_v2(struct rtl_hw *hw)
+{
+ u32 reg, val32;
+ u32 ic_version_id;
+
+ val32 = RTL_R32(hw, TxConfigV2);
+ reg = val32 & 0x7fffffc0;
+ ic_version_id = val32 & 0x3f;
+
+ RTE_ASSERT(val32 != UINT_MAX &&
+ (val32 & RTL_R32(hw, TxConfig) & 0x7c800000) == 0x7c800000);
+
+ if (val32 == UINT_MAX)
+ return;
+
+ switch (reg) {
+ case 0x00000000:
+ if (ic_version_id == 0x00000000) {
+ hw->mcfg = CFG_METHOD_60;
+ } else {
+ hw->mcfg = CFG_METHOD_60;
+ hw->HwIcVerUnknown = TRUE;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
void
rtl_get_mac_version(struct rtl_hw *hw, struct rte_pci_device *pci_dev)
{
@@ -2125,6 +2144,13 @@ rtl_get_mac_version(struct rtl_hw *hw, struct rte_pci_device *pci_dev)
reg = val32 & 0x7c800000;
ic_version_id = val32 & 0x00700000;
+ hw->mcfg = CFG_METHOD_DEFAULT;
+
+ RTE_ASSERT(val32 != UINT_MAX);
+
+ if (val32 == UINT_MAX)
+ goto exit;
+
switch (reg) {
case 0x30000000:
hw->mcfg = CFG_METHOD_1;
@@ -2336,8 +2362,10 @@ 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 == 0x300000) {
+ hw->mcfg = CFG_METHOD_60;
} else {
- hw->mcfg = CFG_METHOD_57;
+ hw->mcfg = CFG_METHOD_61;
hw->HwIcVerUnknown = TRUE;
}
break;
@@ -2369,11 +2397,17 @@ rtl_get_mac_version(struct rtl_hw *hw, struct rte_pci_device *pci_dev)
hw->HwIcVerUnknown = TRUE;
}
break;
+ case 0x7C800000:
+ rtl8125_get_mac_version_v2(hw);
+ break;
default:
+ break;
+ }
+
+exit:
+ if (hw->mcfg == CFG_METHOD_DEFAULT) {
PMD_INIT_LOG(NOTICE, "unknown chip version (%x)", reg);
- hw->mcfg = CFG_METHOD_DEFAULT;
hw->HwIcVerUnknown = TRUE;
- break;
}
if (pci_dev->id.device_id == 0x8162) {
diff --git a/drivers/net/r8169/r8169_hw.h b/drivers/net/r8169/r8169_hw.h
index 1bdc46bd17..65007c2a7e 100644
--- a/drivers/net/r8169/r8169_hw.h
+++ b/drivers/net/r8169/r8169_hw.h
@@ -45,7 +45,7 @@ void rtl_hw_disable_mac_mcu_bps(struct rtl_hw *hw);
void rtl_write_mac_mcu_ram_code(struct rtl_hw *hw, const u16 *entry,
u16 entry_cnt);
-void rtl_hw_initialize(struct rtl_hw *hw);
+void rtl_hw_initialize(struct rtl_hw *hw, struct rte_pci_device *pci_dev);
bool rtl_is_speed_mode_valid(struct rtl_hw *hw, u32 speed);
@@ -91,6 +91,7 @@ extern const struct rtl_hw_ops rtl8125a_ops;
extern const struct rtl_hw_ops rtl8125b_ops;
extern const struct rtl_hw_ops rtl8125bp_ops;
extern const struct rtl_hw_ops rtl8125d_ops;
+extern const struct rtl_hw_ops rtl9151a_ops;
extern const struct rtl_hw_ops rtl8126a_ops;
extern const struct rtl_hw_ops rtl8168kb_ops;
extern const struct rtl_hw_ops rtl8127_ops;
@@ -137,6 +138,7 @@ extern const struct rtl_hw_ops rtl8125cp_ops;
#define NIC_RAMCODE_VERSION_CFG_METHOD_56 (0x0027)
#define NIC_RAMCODE_VERSION_CFG_METHOD_57 (0x0034)
#define NIC_RAMCODE_VERSION_CFG_METHOD_58 (0x0024)
+#define NIC_RAMCODE_VERSION_CFG_METHOD_60 (0x0003)
#define NIC_RAMCODE_VERSION_CFG_METHOD_70 (0x0033)
#define NIC_RAMCODE_VERSION_CFG_METHOD_71 (0x0060)
#define NIC_RAMCODE_VERSION_CFG_METHOD_91 (0x0051)
diff --git a/drivers/net/r8169/r8169_phy.c b/drivers/net/r8169/r8169_phy.c
index 8988c6f288..de6e512375 100644
--- a/drivers/net/r8169/r8169_phy.c
+++ b/drivers/net/r8169/r8169_phy.c
@@ -551,7 +551,7 @@ rtl_powerdown_pll(struct rtl_hw *hw)
if (!hw->HwIcVerUnknown) {
if (!(hw->mcfg == CFG_METHOD_23 || hw->mcfg == CFG_METHOD_37 ||
- hw->mcfg == CFG_METHOD_91))
+ hw->mcfg == CFG_METHOD_60 || hw->mcfg == CFG_METHOD_91))
RTL_W8(hw, PMCH, RTL_R8(hw, PMCH) & ~BIT_7);
}
@@ -964,21 +964,9 @@ _rtl_disable_adv_eee(struct rtl_hw *hw)
rtl_mdio_write(hw, 0x11, data);
rtl_mdio_write(hw, 0x1F, 0x0000);
break;
- 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_70:
- case CFG_METHOD_71:
- case CFG_METHOD_91:
+ default:
+ if (!rtl_is_8125(hw))
+ break;
rtl_clear_mac_ocp_bit(hw, 0xE052, BIT_0);
rtl_clear_eth_phy_ocp_bit(hw, 0xA442, (BIT_12 | BIT_13));
rtl_clear_eth_phy_ocp_bit(hw, 0xA430, BIT_15);
@@ -1062,6 +1050,7 @@ rtl_disable_eee(struct rtl_hw *hw)
case CFG_METHOD_57:
case CFG_METHOD_58:
case CFG_METHOD_59:
+ case CFG_METHOD_60:
rtl_clear_mac_ocp_bit(hw, 0xE040, (BIT_1 | BIT_0));
rtl_set_eth_phy_ocp_bit(hw, 0xA432, BIT_4);
@@ -1213,18 +1202,9 @@ rtl_set_speed_xmii(struct rtl_hw *hw, u8 autoneg, u32 speed, u8 duplex, u64 adv)
case CFG_METHOD_71:
mask |= BIT_1;
/* Fall through */
- 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:
+ default:
+ if (!rtl_is_8125(hw))
+ break;
mask |= BIT_0;
rtl_clear_eth_phy_ocp_bit(hw, 0xA428, BIT_9);
rtl_clear_eth_phy_ocp_bit(hw, 0xA5EA, mask);
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 10/12] net/r8169: add support for RTL8125K
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (8 preceding siblings ...)
2026-02-09 8:54 ` [PATCH v1 09/12] net/r8169: add support for RTL9151 Howard Wang
@ 2026-02-09 8:55 ` Howard Wang
2026-02-09 8:55 ` [PATCH v1 11/12] net/r8169: fix one bug about RTL8168KB Howard Wang
` (3 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:55 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
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
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 11/12] net/r8169: fix one bug about RTL8168KB
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (9 preceding siblings ...)
2026-02-09 8:55 ` [PATCH v1 10/12] net/r8169: add support for RTL8125K Howard Wang
@ 2026-02-09 8:55 ` Howard Wang
2026-02-09 8:55 ` [PATCH v1 12/12] net/r8169: ensure the old mapping is used Howard Wang
` (2 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:55 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
The RTL8168KB was incorrectly treated as a 2.5G device.
This chip actually supports a maximum speed of 1Gbps.
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/r8169_ethdev.c | 1 -
drivers/net/r8169/r8169_hw.c | 1 -
2 files changed, 2 deletions(-)
diff --git a/drivers/net/r8169/r8169_ethdev.c b/drivers/net/r8169/r8169_ethdev.c
index 72e014e22b..b2b1882aa5 100644
--- a/drivers/net/r8169/r8169_ethdev.c
+++ b/drivers/net/r8169/r8169_ethdev.c
@@ -167,7 +167,6 @@ _rtl_setup_link(struct rte_eth_dev *dev)
switch (hw->chipset_name) {
case RTL8125A:
case RTL8125B:
- case RTL8168KB:
case RTL8125BP:
case RTL8125D:
case RTL8125CP:
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index aa5e160feb..acc16f3e48 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -1550,7 +1550,6 @@ rtl_init_software_variable(struct rtl_hw *hw, struct rte_pci_device *pci_dev)
switch (hw->chipset_name) {
case RTL8125A:
case RTL8125B:
- case RTL8168KB:
case RTL8125BP:
case RTL8125D:
case RTL8125CP:
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 12/12] net/r8169: ensure the old mapping is used
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (10 preceding siblings ...)
2026-02-09 8:55 ` [PATCH v1 11/12] net/r8169: fix one bug about RTL8168KB Howard Wang
@ 2026-02-09 8:55 ` Howard Wang
2026-02-09 19:26 ` [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Stephen Hemminger
2026-02-09 19:44 ` Stephen Hemminger
13 siblings, 0 replies; 15+ messages in thread
From: Howard Wang @ 2026-02-09 8:55 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Fix the incorrect link status reported when binding the PMD after
the NIC has been initialized by the vendor driver.
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
drivers/net/r8169/r8169_hw.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index acc16f3e48..27d52c81c9 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -1083,6 +1083,9 @@ rtl8125_hw_config(struct rtl_hw *hw)
rtl_mac_ocp_write(hw, 0xE098, 0xC302);
+ /* Ensure the old mapping is used. */
+ RTL_W8(hw, INT_CFG0_8125, RTL_R8(hw, INT_CFG0_8125) & ~BIT_0);
+
rtl_disable_cfg9346_write(hw);
rte_delay_us(10);
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (11 preceding siblings ...)
2026-02-09 8:55 ` [PATCH v1 12/12] net/r8169: ensure the old mapping is used Howard Wang
@ 2026-02-09 19:26 ` Stephen Hemminger
2026-02-09 19:44 ` Stephen Hemminger
13 siblings, 0 replies; 15+ messages in thread
From: Stephen Hemminger @ 2026-02-09 19:26 UTC (permalink / raw)
To: Howard Wang; +Cc: dev, pro_nic_dpdk
On Mon, 9 Feb 2026 16:54:50 +0800
Howard Wang <howard_wang@realsil.com.cn> wrote:
> This patch set updates the r8169 pmd driver to include support for new
> Realtek hardware revisions and provides several bug fixes and improvements.
>
> The main changes include:
>
> 1. New Hardware Support:
> - Add support for RTL8125K, RTL9151 and RTL8168KD.
>
> 2. Bug Fixes:
> - Fix a bug related to RTL8168KB.
> - Fix a potential NULL pointer dereference in rtl8168fp_ops.
> - Fix the incorrect link status reported when binding the PMD after
> the NIC has been initialized by the vendor driver.
>
> 3. Configuration & Optimization:
> - Update hardware configurations for 8125, 8126, and 8127 series.
> - Adjust jumbo frame size limits for non-1G cards.
> - Tune RX descriptor fetch number for 8126 and 8127 to improve performance.
> - Remove support for legacy CFG_METHOD_69.
>
> Howard Wang (12):
Overall looks good but would like to see better commit messages.
I can generate them if necessary.
The part that concerns me is the lack of use of Fixes in patch 1 and 11.
The AI review summary is:
Correctness issues (highest value):
Patch 4 has a significant bitmask logic change (&= → &= ~) in the fiber SerDes configuration for both 1G and 10G caps. This is likely a bugfix but isn't called out in the commit message — worth confirming with the submitter.
Patch 3 removes the 0xF2/BIT_6 clearing from rtl_powerdown_pll for all 8125-family chips. This was previously done on link-down but is now only done in hw_config. If the powerdown path needs this register cleared, it could be a regression.
Patch 5 doesn't include CFG_METHOD_59/60/61 in the jumbo frame switch — these new 2.5G chips fall through to the 9K default, which may be unintended.
Process issues:
Most patches lack commit message bodies (DPDK requires descriptions)
Patches 1 and 11 are bugfixes without Fixes: tags or Cc: stable@dpdk.org
Patches 9 and 10 add new device support without release notes updates
Patch 6 removes an entire chip variant (CFG_METHOD_69) with no explanation
Longer AI full feedback:
# Review: [PATCH v1 01-12/12] net/r8169 updates
Series from Howard Wang <howard_wang@realsil.com.cn>
---
## Patch 01/12: net/r8169: fix NULL pointer dereference in rtl8168fp_ops
**Correctness — Error (potential NULL pointer dereference fix)**
This patch adds the missing `.hw_phy_mcu_config` function pointer to the `rtl8168fp_ops` struct. If the caller invokes `hw->hw_ops.hw_phy_mcu_config(hw)` without this, it would dereference a NULL function pointer. The fix is correct — adds the function pointer and provides a no-op implementation.
**Warning — Missing commit body.** The commit has a Signed-off-by but no description of the problem being fixed. Since this is a bugfix (NULL pointer dereference), it should include a `Fixes:` tag referencing the commit that introduced `rtl8168fp_ops` without this member, and `Cc: stable@dpdk.org` for backport consideration.
---
## Patch 02/12: net/r8169: tune RX desc fetch num for 8126 and 8127
**Warning — Inconsistent define style.** The existing `Rx_Fetch_Number_8` is defined as `(1 << 30)` while the new defines `Rx_Fetch_Number_12` and `Rx_Fetch_Number_20` use `BIT_30`, `BIT_29`, `BIT_31` macros. For consistency within the same block of defines, one style should be used.
No correctness issues.
---
## Patch 03/12: net/r8169: add support for RTL8168KD
**Warning — Missing commit body.** No description of the RTL8168KD or what CFG_METHOD_59 represents. A brief description would help reviewers.
**Warning — Enum gap.** The patch changes `CFG_METHOD_91` from an auto-incremented value to an explicit `= 91`, which creates a large gap between `CFG_METHOD_71` and `CFG_METHOD_91`. This is intentional (making room for CFG_METHOD_59), but there's no `CFG_METHOD_59` added to the enum in this patch. The implicit value of `CFG_METHOD_59` would be 72 (after CFG_METHOD_71), not 59. This works functionally since the enum values are just identifiers, but the naming is misleading — `CFG_METHOD_59` has enum value 72. This seems to be an existing pattern in the driver, but worth noting.
**Info — Refactoring in `rtl_exit_realwow`.** The switch-case is refactored to use `rtl_is_8125()` helper. This simplifies the code and automatically covers CFG_METHOD_59. Good change.
**Info — Removed `BIT_6`/`BIT_7` write in `rtl_powerdown_pll`.** The block that wrote to registers 0xD0 and 0xF2 for the 8125-family methods was removed. This is now handled in `rtl8125_hw_config` instead (the new DASH if/else block). Verify this doesn't create a regression for the existing CFG_METHOD_48-58 path — the `rtl8125_hw_config` changes apply 0xF2 BIT_6 handling for all hw_config paths, but `rtl_powerdown_pll` was called on link-down. If the 0xF2 BIT_6 clearing is only needed during powerdown and not during hw_config, this could be a behavior change.
No obvious correctness bugs in the new CFG_METHOD_59 plumbing itself.
---
## Patch 04/12: net/r8169: update hardware configurations for 8127
**Error (potential correctness bug, ~60% confidence) — Bitmask fix in `r8169_fiber.c`.**
The change from `val &= (BIT_13 | BIT_12 | BIT_1 | BIT_0)` to `val &= ~(BIT_13 | BIT_12 | BIT_1 | BIT_0)` is a significant logic change. The original code was keeping ONLY bits 13, 12, 1, 0 and clearing everything else. The new code clears bits 13, 12, 1, 0 and keeps everything else. This appears in both `rtl8127_set_sds_phy_caps_1g_8127` and `rtl8127_set_sds_phy_caps_10g_8127`. If the original code was indeed the intended behavior, this is a bug being fixed. If the original code was correct, this patch introduces a bug. Given that this patch is titled "update hardware configurations" and this looks like a typical `&=` vs `&= ~` bugfix pattern, this is likely an intentional fix. However, the commit message doesn't call this out. **Recommend the commit body explicitly mention the bitmask correction as a bugfix.**
**Warning — Very large MCU firmware blob update.** The PHY MCU RAM code for 8127a_1 is extensively rewritten (the diff shows hundreds of lines of hex data changes). This is firmware data from the vendor so not much to review in terms of code logic, but the sheer size of changes in a single patch is notable.
No other correctness issues found in the firmware data handling — the `ARRAY_SIZE` pattern and write loops look correct.
---
## Patch 05/12: net/r8169: adjust jumbo frame size limit for non-1G cards
**Warning — Missing CFG_METHOD_59 (RTL8168KD) and CFG_METHOD_69 (being removed in patch 6).** The new switch statement for `max_rx_pktlen` does not include `CFG_METHOD_59` (added in patch 3) or `CFG_METHOD_60`/`CFG_METHOD_61` (added in patches 9/10). These will fall through to the `default` case and get `JUMBO_FRAME_9K`. Verify this is the intended behavior for RTL8168KD, RTL9151A, and RTL8125K — the commit message says "non-1G cards" get 16K, but CFG_METHOD_59/60/61 are 2.5G-capable, suggesting they may also need 16K.
---
## Patch 06/12: net/r8169: remove support for CFG_METHOD_69
**Warning — Missing commit body.** No explanation for why CFG_METHOD_69 support is being removed. This is a significant change (removing an entire chip variant). The commit should explain the rationale — is this hardware never released? Is it being superseded?
No correctness issues — the removal is mechanical and consistent across all files.
---
## Patch 07/12: net/r8169: update hardware configurations for 8126
**Warning — Missing commit body.** Just has the Signed-off-by with no description.
The MCU patch code updates and PHY configuration additions look like standard firmware/register updates from the vendor. No correctness issues found.
---
## Patch 08/12: net/r8169: update hardware configurations for 8125
**Warning — Missing commit body.** No description of what the hardware configuration updates entail.
This is a very large patch touching multiple 8125 variants (8125A, 8125B, 8125BP, 8125CP, 8125D). The MCU firmware blobs are significantly reworked. The code structure follows existing patterns.
No correctness issues found.
---
## Patch 09/12: net/r8169: add support for RTL9151
**Warning — Missing commit body.** No description of the RTL9151 chip.
**Info — New files created with correct SPDX headers.**
**Info — Refactoring in `rtl_is_adv_eee_enabled` and `rtl_powerdown_pll`.** Similar to patch 3, range checks are replaced with `rtl_is_8125()` helper calls. Good simplification that automatically covers new chip variants.
**Warning — Missing release notes.** Adding a new driver/device (RTL9151) should have a corresponding release notes entry.
No correctness issues found.
---
## Patch 10/12: net/r8169: add support for RTL8125K
**Warning — Missing commit body.**
**Warning — Missing release notes for new device support.**
**Info — `hw_mac_mcu_config_8125d` adds a `default: break;` case.** This is good defensive coding for CFG_METHOD_61 which doesn't need MAC MCU patch code.
No correctness issues.
---
## Patch 11/12: net/r8169: fix one bug about RTL8168KB
**Warning — Vague commit message.** "fix one bug about RTL8168KB" doesn't describe what the bug is. The patch removes RTL8168KB from a switch-case that presumably controlled some link setup behavior. The commit should explain what was wrong and why removing RTL8168KB from this list fixes it. Should include a `Fixes:` tag.
No correctness issues with the change itself.
---
## Patch 12/12: net/r8169: ensure the old mapping is used
**Warning — Vague commit message.** "ensure the old mapping is used" doesn't explain what mapping, why the old one is preferred, or what goes wrong without this change. The register write clears BIT_0 of `INT_CFG0_8125`. Should include a `Fixes:` tag if this addresses a regression.
No correctness issues with the change itself.
---
## Series-Wide Issues
**Warning — Multiple patches lack commit message bodies.** Patches 1, 3, 4, 7, 8, 9, 10 have no commit body text (just Signed-off-by). DPDK guidelines require a description of the change.
**Warning — Patches 1 and 11 are bugfixes without `Fixes:` tags.** Both should reference the original commit that introduced the bug, and include `Cc: stable@dpdk.org`.
**Warning — No release notes update.** Patches 9 and 10 add new device support (RTL9151A, RTL8125K) which should be mentioned in release notes.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (12 preceding siblings ...)
2026-02-09 19:26 ` [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Stephen Hemminger
@ 2026-02-09 19:44 ` Stephen Hemminger
13 siblings, 0 replies; 15+ messages in thread
From: Stephen Hemminger @ 2026-02-09 19:44 UTC (permalink / raw)
To: Howard Wang; +Cc: dev, pro_nic_dpdk
On Mon, 9 Feb 2026 16:54:50 +0800
Howard Wang <howard_wang@realsil.com.cn> wrote:
> This patch set updates the r8169 pmd driver to include support for new
> Realtek hardware revisions and provides several bug fixes and improvements.
>
> The main changes include:
>
> 1. New Hardware Support:
> - Add support for RTL8125K, RTL9151 and RTL8168KD.
>
> 2. Bug Fixes:
> - Fix a bug related to RTL8168KB.
> - Fix a potential NULL pointer dereference in rtl8168fp_ops.
> - Fix the incorrect link status reported when binding the PMD after
> the NIC has been initialized by the vendor driver.
>
> 3. Configuration & Optimization:
> - Update hardware configurations for 8125, 8126, and 8127 series.
> - Adjust jumbo frame size limits for non-1G cards.
> - Tune RX descriptor fetch number for 8126 and 8127 to improve performance.
> - Remove support for legacy CFG_METHOD_69.
Please resubmit with fixes as needed.
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-02-09 19:44 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-09 8:54 [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
2026-02-09 8:54 ` [PATCH v1 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
2026-02-09 8:54 ` [PATCH v1 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127 Howard Wang
2026-02-09 8:54 ` [PATCH v1 03/12] net/r8169: add support for RTL8168KD Howard Wang
2026-02-09 8:54 ` [PATCH v1 04/12] net/r8169: update hardware configurations for 8127 Howard Wang
2026-02-09 8:54 ` [PATCH v1 05/12] net/r8169: adjust jumbo frame size limit for non-1G cards Howard Wang
2026-02-09 8:54 ` [PATCH v1 06/12] net/r8169: remove support for CFG_METHOD_69 Howard Wang
2026-02-09 8:54 ` [PATCH v1 07/12] net/r8169: update hardware configurations for 8126 Howard Wang
2026-02-09 8:54 ` [PATCH v1 08/12] net/r8169: update hardware configurations for 8125 Howard Wang
2026-02-09 8:54 ` [PATCH v1 09/12] net/r8169: add support for RTL9151 Howard Wang
2026-02-09 8:55 ` [PATCH v1 10/12] net/r8169: add support for RTL8125K Howard Wang
2026-02-09 8:55 ` [PATCH v1 11/12] net/r8169: fix one bug about RTL8168KB Howard Wang
2026-02-09 8:55 ` [PATCH v1 12/12] net/r8169: ensure the old mapping is used Howard Wang
2026-02-09 19:26 ` [PATCH v1 00/12] net/r8169: update driver with new HW support and fixes Stephen Hemminger
2026-02-09 19:44 ` Stephen Hemminger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox