* [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes
@ 2026-02-10 5:54 Howard Wang
2026-02-10 5:55 ` [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
` (11 more replies)
0 siblings, 12 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5: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] 17+ messages in thread
* [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-11 21:42 ` Stephen Hemminger
2026-02-10 5:55 ` [PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127 Howard Wang
` (10 subsequent siblings)
11 siblings, 1 reply; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
Fixes: d9ee71b5f1bc ("net/r8169: support RTL8168 series")
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] 17+ messages in thread
* [PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
2026-02-10 5:55 ` [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-11 21:43 ` Stephen Hemminger
2026-02-10 5:55 ` [PATCH v2 03/12] net/r8169: add support for RTL8168KD Howard Wang
` (9 subsequent siblings)
11 siblings, 1 reply; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 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] 17+ messages in thread
* [PATCH v2 03/12] net/r8169: add support for RTL8168KD
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
2026-02-10 5:55 ` [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
2026-02-10 5:55 ` [PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127 Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 04/12] net/r8169: update hardware configurations for 8127 Howard Wang
` (8 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
This chip supports network speeds up to 1Gbps.
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] 17+ messages in thread
* [PATCH v2 04/12] net/r8169: update hardware configurations for 8127
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (2 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 03/12] net/r8169: add support for RTL8168KD Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 05/12] net/r8169: adjust jumbo frame size limit for non-1G cards Howard Wang
` (7 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 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] 17+ messages in thread
* [PATCH v2 05/12] net/r8169: adjust jumbo frame size limit for non-1G cards
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (3 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 04/12] net/r8169: update hardware configurations for 8127 Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 06/12] net/r8169: remove support for CFG_METHOD_69 Howard Wang
` (6 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 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] 17+ messages in thread
* [PATCH v2 06/12] net/r8169: remove support for CFG_METHOD_69
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (4 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 05/12] net/r8169: adjust jumbo frame size limit for non-1G cards Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 07/12] net/r8169: update hardware configurations for 8126 Howard Wang
` (5 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 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] 17+ messages in thread
* [PATCH v2 07/12] net/r8169: update hardware configurations for 8126
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (5 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 06/12] net/r8169: remove support for CFG_METHOD_69 Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 08/12] net/r8169: update hardware configurations for 8125 Howard Wang
` (4 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 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] 17+ messages in thread
* [PATCH v2 08/12] net/r8169: update hardware configurations for 8125
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (6 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 07/12] net/r8169: update hardware configurations for 8126 Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 09/12] net/r8169: add support for RTL9151 Howard Wang
` (3 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 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] 17+ messages in thread
* [PATCH v2 09/12] net/r8169: add support for RTL9151
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (7 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 08/12] net/r8169: update hardware configurations for 8125 Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 10/12] net/r8169: add support for RTL8125K Howard Wang
` (2 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
This device supports network speeds up to 2.5Gbps.
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] 17+ messages in thread
* [PATCH v2 10/12] net/r8169: add support for RTL8125K
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (8 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 09/12] net/r8169: add support for RTL9151 Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 11/12] net/r8169: fix one bug about RTL8168KB Howard Wang
2026-02-10 5:55 ` [PATCH v2 12/12] net/r8169: ensure the old mapping is used Howard Wang
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5:55 UTC (permalink / raw)
To: dev; +Cc: pro_nic_dpdk, Howard Wang
This device supports network speeds up to 2.5Gbps.
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] 17+ messages in thread
* [PATCH v2 11/12] net/r8169: fix one bug about RTL8168KB
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (9 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 10/12] net/r8169: add support for RTL8125K Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
2026-02-10 5:55 ` [PATCH v2 12/12] net/r8169: ensure the old mapping is used Howard Wang
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5: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.
Fixes: 4e6ed7284f50 ("net/r8169: simplify config method check")
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] 17+ messages in thread
* [PATCH v2 12/12] net/r8169: ensure the old mapping is used
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
` (10 preceding siblings ...)
2026-02-10 5:55 ` [PATCH v2 11/12] net/r8169: fix one bug about RTL8168KB Howard Wang
@ 2026-02-10 5:55 ` Howard Wang
11 siblings, 0 replies; 17+ messages in thread
From: Howard Wang @ 2026-02-10 5: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.
Fixes: 619f6ebce115 ("net/r8169: support hardware configuration")
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] 17+ messages in thread
* Re: [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops
2026-02-10 5:55 ` [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
@ 2026-02-11 21:42 ` Stephen Hemminger
2026-02-12 5:51 ` 回复: " 王颢
0 siblings, 1 reply; 17+ messages in thread
From: Stephen Hemminger @ 2026-02-11 21:42 UTC (permalink / raw)
To: Howard Wang; +Cc: dev, pro_nic_dpdk
On Tue, 10 Feb 2026 13:55:00 +0800
Howard Wang <howard_wang@realsil.com.cn> wrote:
> Fixes: d9ee71b5f1bc ("net/r8169: support RTL8168 series")
>
> Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
> ---
That is much to short a message for a critical fix.
How about this (AI generated) message. Can I add that during
merge?
Subject: [PATCH v2 01/12] net/r8169: fix crash in RTL8168FP init
The rtl8168fp_ops structure was missing the hw_phy_mcu_config
function pointer, causing a NULL pointer dereference during
device initialization when the driver attempts to configure
the PHY microcontroller.
Add hw_phy_mcu_config_8168fp() as a no-op function since the
RTL8168FP does not require PHY MCU configuration. This matches
the pattern used by other chip variants that don't need PHY
MCU updates.
Fixes: d9ee71b5f1bc ("net/r8169: support RTL8168 series")
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127
2026-02-10 5:55 ` [PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127 Howard Wang
@ 2026-02-11 21:43 ` Stephen Hemminger
2026-02-12 5:45 ` 回复: " 王颢
0 siblings, 1 reply; 17+ messages in thread
From: Stephen Hemminger @ 2026-02-11 21:43 UTC (permalink / raw)
To: Howard Wang; +Cc: dev, pro_nic_dpdk
On Tue, 10 Feb 2026 13:55:01 +0800
Howard Wang <howard_wang@realsil.com.cn> wrote:
> 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>
> ---
It would be good to have some explanations of these.
Are these the defaults in other OS's?
Even better would be to integrate them into the existing DPDK
rte_eth_thresh values that are passed in via rte_eth_rxconf
and returned with rte_eth_dev_info.
^ permalink raw reply [flat|nested] 17+ messages in thread
* 回复: [PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127
2026-02-11 21:43 ` Stephen Hemminger
@ 2026-02-12 5:45 ` 王颢
0 siblings, 0 replies; 17+ messages in thread
From: 王颢 @ 2026-02-12 5:45 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev@dpdk.org, pro_nic_dpdk@realtek.com
OK, I will add these explanations to the commit log in v3.
The default values in the Linux driver are actually the ones before this modification.
This parameter controls the number of RX descriptors fetched in a single batch. Tuning this value optimizes the RX performance.
Regarding rte_eth_dev_info and rte_eth_rxconf, I checked the structures and there doesn't seem to be a relevant generic variable that maps to this specific hardware parameter.
-----邮件原件-----
发件人: Stephen Hemminger <stephen@networkplumber.org>
发送时间: 2026年2月12日 5:43
收件人: 王颢 <howard_wang@realsil.com.cn>
抄送: dev@dpdk.org; pro_nic_dpdk@realtek.com
主题: Re: [PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127
External mail : This email originated from outside the organization. Do not reply, click links, or open attachments unless you recognize the sender and know the content is safe.
On Tue, 10 Feb 2026 13:55:01 +0800
Howard Wang <howard_wang@realsil.com.cn> wrote:
> 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>
> ---
It would be good to have some explanations of these.
Are these the defaults in other OS's?
Even better would be to integrate them into the existing DPDK rte_eth_thresh values that are passed in via rte_eth_rxconf and returned with rte_eth_dev_info.
^ permalink raw reply [flat|nested] 17+ messages in thread
* 回复: [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops
2026-02-11 21:42 ` Stephen Hemminger
@ 2026-02-12 5:51 ` 王颢
0 siblings, 0 replies; 17+ messages in thread
From: 王颢 @ 2026-02-12 5:51 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev@dpdk.org, pro_nic_dpdk@realtek.com
Thanks. Since I need to send a v3 to address comments on another patch in this series, I will include this updated commit message in v3.
-----邮件原件-----
发件人: Stephen Hemminger <stephen@networkplumber.org>
发送时间: 2026年2月12日 5:43
收件人: 王颢 <howard_wang@realsil.com.cn>
抄送: dev@dpdk.org; pro_nic_dpdk@realtek.com
主题: Re: [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops
External mail : This email originated from outside the organization. Do not reply, click links, or open attachments unless you recognize the sender and know the content is safe.
On Tue, 10 Feb 2026 13:55:00 +0800
Howard Wang <howard_wang@realsil.com.cn> wrote:
> Fixes: d9ee71b5f1bc ("net/r8169: support RTL8168 series")
>
> Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
> ---
That is much to short a message for a critical fix.
How about this (AI generated) message. Can I add that during merge?
Subject: [PATCH v2 01/12] net/r8169: fix crash in RTL8168FP init
The rtl8168fp_ops structure was missing the hw_phy_mcu_config function pointer, causing a NULL pointer dereference during device initialization when the driver attempts to configure the PHY microcontroller.
Add hw_phy_mcu_config_8168fp() as a no-op function since the RTL8168FP does not require PHY MCU configuration. This matches the pattern used by other chip variants that don't need PHY MCU updates.
Fixes: d9ee71b5f1bc ("net/r8169: support RTL8168 series")
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2026-02-12 5:51 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-10 5:54 [PATCH v2 00/12] net/r8169: update driver with new HW support and fixes Howard Wang
2026-02-10 5:55 ` [PATCH v2 01/12] net/r8169: fix NULL pointer dereference in rtl8168fp_ops Howard Wang
2026-02-11 21:42 ` Stephen Hemminger
2026-02-12 5:51 ` 回复: " 王颢
2026-02-10 5:55 ` [PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127 Howard Wang
2026-02-11 21:43 ` Stephen Hemminger
2026-02-12 5:45 ` 回复: " 王颢
2026-02-10 5:55 ` [PATCH v2 03/12] net/r8169: add support for RTL8168KD Howard Wang
2026-02-10 5:55 ` [PATCH v2 04/12] net/r8169: update hardware configurations for 8127 Howard Wang
2026-02-10 5:55 ` [PATCH v2 05/12] net/r8169: adjust jumbo frame size limit for non-1G cards Howard Wang
2026-02-10 5:55 ` [PATCH v2 06/12] net/r8169: remove support for CFG_METHOD_69 Howard Wang
2026-02-10 5:55 ` [PATCH v2 07/12] net/r8169: update hardware configurations for 8126 Howard Wang
2026-02-10 5:55 ` [PATCH v2 08/12] net/r8169: update hardware configurations for 8125 Howard Wang
2026-02-10 5:55 ` [PATCH v2 09/12] net/r8169: add support for RTL9151 Howard Wang
2026-02-10 5:55 ` [PATCH v2 10/12] net/r8169: add support for RTL8125K Howard Wang
2026-02-10 5:55 ` [PATCH v2 11/12] net/r8169: fix one bug about RTL8168KB Howard Wang
2026-02-10 5:55 ` [PATCH v2 12/12] net/r8169: ensure the old mapping is used Howard Wang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox