blob: b6c0d41bf21fbf877be79652ab1855976136ca65 [file] [log] [blame]
developerf293a7f2024-03-18 18:25:42 +08001From aaac91720ca1fd7679896286eac2b014e7150fca Mon Sep 17 00:00:00 2001
developer7f08cd02023-10-25 12:11:22 +08002From: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
developerf293a7f2024-03-18 18:25:42 +08003Date: Mon, 18 Mar 2024 16:35:07 +0800
developer4f8d63d2024-02-26 10:39:40 +08004Subject: [PATCH 15/24] ethernet-update-ppe-from-netsys2-to-netsys3
developer0aaf79d2023-08-21 14:10:16 +08005
6---
developerf293a7f2024-03-18 18:25:42 +08007 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 8 +++-
developer6c978642023-11-21 17:59:56 +08008 drivers/net/ethernet/mediatek/mtk_eth_soc.h | 7 ++--
9 drivers/net/ethernet/mediatek/mtk_ppe.c | 35 ++++++++++++++---
developer64b431b2023-08-26 01:04:45 +080010 drivers/net/ethernet/mediatek/mtk_ppe.h | 38 ++++++++++++++++---
developer0aaf79d2023-08-21 14:10:16 +080011 .../net/ethernet/mediatek/mtk_ppe_offload.c | 6 ++-
developer6c978642023-11-21 17:59:56 +080012 drivers/net/ethernet/mediatek/mtk_ppe_regs.h | 7 ++++
developerf293a7f2024-03-18 18:25:42 +080013 6 files changed, 82 insertions(+), 19 deletions(-)
developer0aaf79d2023-08-21 14:10:16 +080014
developeree39bcf2023-06-16 08:03:30 +080015diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
developerf293a7f2024-03-18 18:25:42 +080016index 952bf51..f477ff3 100644
developeree39bcf2023-06-16 08:03:30 +080017--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
18+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
developerf293a7f2024-03-18 18:25:42 +080019@@ -2447,7 +2447,7 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
developeree39bcf2023-06-16 08:03:30 +080020 skb_checksum_none_assert(skb);
21 skb->protocol = eth_type_trans(skb, netdev);
22
23-#if defined(CONFIG_MEDIATEK_NETSYS_RX_V2)
developeree39bcf2023-06-16 08:03:30 +080024+#if defined(CONFIG_MEDIATEK_NETSYS_RX_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
developerf293a7f2024-03-18 18:25:42 +080025 hash = trxd.rxd5 & MTK_RXD5_FOE_ENTRY_V2;
developeree39bcf2023-06-16 08:03:30 +080026 reason = FIELD_GET(MTK_RXD5_PPE_CPU_REASON_V2, trxd.rxd5);
developerf293a7f2024-03-18 18:25:42 +080027 if (hash != MTK_RXD5_FOE_ENTRY_V2) {
28@@ -5798,7 +5798,8 @@ static int mtk_probe(struct platform_device *pdev)
developeree39bcf2023-06-16 08:03:30 +080029
30 for (i = 0; i < eth->ppe_num; i++) {
31 eth->ppe[i] = mtk_ppe_init(eth,
32- eth->base + MTK_ETH_PPE_BASE + i * 0x400,
33+ eth->base + MTK_ETH_PPE_BASE +
34+ (i == 2 ? 0xC00 : i * 0x400),
35 2, eth->soc->hash_way, i,
36 eth->soc->has_accounting);
37 if (!eth->ppe[i]) {
developerf293a7f2024-03-18 18:25:42 +080038@@ -6065,6 +6066,9 @@ static const struct mtk_soc_data mt7988_data = {
developeree39bcf2023-06-16 08:03:30 +080039 .required_clks = MT7988_CLKS_BITMAP,
40 .required_pctl = false,
41 .has_sram = true,
42+ .has_accounting = true,
43+ .hash_way = 4,
44+ .offload_version = 2,
developer0aaf79d2023-08-21 14:10:16 +080045 .rss_num = 4,
developeree39bcf2023-06-16 08:03:30 +080046 .txrx = {
47 .txd_size = sizeof(struct mtk_tx_dma_v2),
developeree39bcf2023-06-16 08:03:30 +080048diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
developerf293a7f2024-03-18 18:25:42 +080049index 58547af..9c46ac1 100644
developeree39bcf2023-06-16 08:03:30 +080050--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
51+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
developer4f8d63d2024-02-26 10:39:40 +080052@@ -137,9 +137,10 @@
developeree39bcf2023-06-16 08:03:30 +080053 #define MTK_GDMA_UCS_EN BIT(20)
54 #define MTK_GDMA_STRP_CRC BIT(16)
55 #define MTK_GDMA_TO_PDMA 0x0
56-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
57+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
58 #define MTK_GDMA_TO_PPE0 0x3333
59 #define MTK_GDMA_TO_PPE1 0x4444
developer47b4f912023-11-16 11:44:30 +080060+#define MTK_GDMA_TO_PPE2 0xcccc
developeree39bcf2023-06-16 08:03:30 +080061 #else
developer0aaf79d2023-08-21 14:10:16 +080062 #define MTK_GDMA_TO_PPE0 0x4444
63 #endif
developerf293a7f2024-03-18 18:25:42 +080064@@ -2018,14 +2019,14 @@ extern u32 dbg_show_level;
developer64b431b2023-08-26 01:04:45 +080065
66 static inline void mtk_set_ib1_sp(struct mtk_eth *eth, struct mtk_foe_entry *foe, u32 val)
67 {
developerc1d06e12023-10-26 21:52:08 +080068-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
69+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
70 foe->ib1 |= FIELD_PREP(MTK_FOE_IB1_UNBIND_SRC_PORT, val);
71 #endif
developer64b431b2023-08-26 01:04:45 +080072 }
73
74 static inline u32 mtk_get_ib1_sp(struct mtk_eth *eth, struct mtk_foe_entry *foe)
75 {
developerc1d06e12023-10-26 21:52:08 +080076-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
77+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
78 return FIELD_GET(MTK_FOE_IB1_UNBIND_SRC_PORT, foe->ib1);
79 #else
developer64b431b2023-08-26 01:04:45 +080080 return 0;
developeree39bcf2023-06-16 08:03:30 +080081diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c
developer6c978642023-11-21 17:59:56 +080082index 8388f65..184e29d 100755
developeree39bcf2023-06-16 08:03:30 +080083--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
84+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
developer7f08cd02023-10-25 12:11:22 +080085@@ -91,7 +91,7 @@ static int mtk_ppe_mib_wait_busy(struct mtk_ppe *ppe)
86
87 int mtk_mib_entry_read(struct mtk_ppe *ppe, u16 index, u64 *bytes, u64 *packets)
88 {
89- u32 val, cnt_r0, cnt_r1, cnt_r2;
90+ u32 val, cnt_r0, cnt_r1, cnt_r2, cnt_r3;
91 u32 byte_cnt_low, byte_cnt_high, pkt_cnt_low, pkt_cnt_high;
92
93 val = FIELD_PREP(MTK_PPE_MIB_SER_CR_ADDR, index) | MTK_PPE_MIB_SER_CR_ST;
94@@ -104,12 +104,23 @@ int mtk_mib_entry_read(struct mtk_ppe *ppe, u16 index, u64 *bytes, u64 *packets)
95 cnt_r1 = readl(ppe->base + MTK_PPE_MIB_SER_R1);
96 cnt_r2 = readl(ppe->base + MTK_PPE_MIB_SER_R2);
97
98+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
99+ cnt_r3 = readl(ppe->base + MTK_PPE_MIB_SER_R3);
100+
101+ byte_cnt_low = FIELD_GET(MTK_PPE_MIB_SER_R0_BYTE_CNT_LOW, cnt_r0);
102+ byte_cnt_high = FIELD_GET(MTK_PPE_MIB_SER_R1_BYTE_CNT_HIGH_V2, cnt_r1);
103+ pkt_cnt_low = FIELD_GET(MTK_PPE_MIB_SER_R2_PKT_CNT_LOW_V2, cnt_r2);
104+ pkt_cnt_high = FIELD_GET(MTK_PPE_MIB_SER_R3_PKT_CNT_HIGH, cnt_r3);
105+ *bytes = ((u64)byte_cnt_high << 32) | byte_cnt_low;
106+ *packets = ((u64)pkt_cnt_high << 32) | pkt_cnt_low;
107+#else
108 byte_cnt_low = FIELD_GET(MTK_PPE_MIB_SER_R0_BYTE_CNT_LOW, cnt_r0);
109 byte_cnt_high = FIELD_GET(MTK_PPE_MIB_SER_R1_BYTE_CNT_HIGH, cnt_r1);
110 pkt_cnt_low = FIELD_GET(MTK_PPE_MIB_SER_R1_PKT_CNT_LOW, cnt_r1);
111 pkt_cnt_high = FIELD_GET(MTK_PPE_MIB_SER_R2_PKT_CNT_HIGH, cnt_r2);
112 *bytes = ((u64)byte_cnt_high << 32) | byte_cnt_low;
113 *packets = (pkt_cnt_high << 16) | pkt_cnt_low;
114+#endif
115
116 return 0;
117 }
118@@ -211,7 +222,7 @@ int mtk_foe_entry_prepare(struct mtk_foe_entry *entry, int type, int l4proto,
developeree39bcf2023-06-16 08:03:30 +0800119 MTK_FOE_IB1_BIND_CACHE;
120 entry->ib1 = val;
121
122-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
123+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
124 val = FIELD_PREP(MTK_FOE_IB2_PORT_AG, 0xf) |
125 #else
126 val = FIELD_PREP(MTK_FOE_IB2_PORT_MG, 0x3f) |
developer7f08cd02023-10-25 12:11:22 +0800127@@ -403,7 +414,7 @@ int mtk_foe_entry_set_wdma(struct mtk_foe_entry *entry, int wdma_idx, int txq,
developeree39bcf2023-06-16 08:03:30 +0800128
129 *ib2 &= ~MTK_FOE_IB2_PORT_MG;
130 *ib2 |= MTK_FOE_IB2_WDMA_WINFO;
131-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
132+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
133 *ib2 |= FIELD_PREP(MTK_FOE_IB2_RX_IDX, txq);
134
135 l2->winfo = FIELD_PREP(MTK_FOE_WINFO_WCID, wcid) |
developer7f08cd02023-10-25 12:11:22 +0800136@@ -422,11 +433,16 @@ int mtk_foe_entry_set_wdma(struct mtk_foe_entry *entry, int wdma_idx, int txq,
developeree39bcf2023-06-16 08:03:30 +0800137
138 int mtk_foe_entry_set_qid(struct mtk_foe_entry *entry, int qid)
139 {
140+ struct mtk_foe_mac_info *l2 = mtk_foe_entry_l2(entry);
141 u32 *ib2 = mtk_foe_entry_ib2(entry);
142
143 *ib2 &= ~MTK_FOE_IB2_QID;
144 *ib2 |= FIELD_PREP(MTK_FOE_IB2_QID, qid);
145+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
146+ l2->tport_id = 1;
147+#else
148 *ib2 |= MTK_FOE_IB2_PSE_QOS;
149+#endif
150
151 return 0;
152 }
developer7f08cd02023-10-25 12:11:22 +0800153@@ -922,13 +938,16 @@ int mtk_ppe_start(struct mtk_ppe *ppe)
developeree39bcf2023-06-16 08:03:30 +0800154 mtk_ppe_init_foe_table(ppe);
155 ppe_w32(ppe, MTK_PPE_TB_BASE, ppe->foe_phys);
156
157- val = MTK_PPE_TB_CFG_ENTRY_80B |
158+ val =
159+#if !defined(CONFIG_MEDIATEK_NETSYS_V3)
160+ MTK_PPE_TB_CFG_ENTRY_80B |
161+#endif
162 MTK_PPE_TB_CFG_AGE_NON_L4 |
163 MTK_PPE_TB_CFG_AGE_UNBIND |
164 MTK_PPE_TB_CFG_AGE_TCP |
165 MTK_PPE_TB_CFG_AGE_UDP |
166 MTK_PPE_TB_CFG_AGE_TCP_FIN |
167-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
168+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
169 MTK_PPE_TB_CFG_INFO_SEL |
170 #endif
171 FIELD_PREP(MTK_PPE_TB_CFG_SEARCH_MISS,
developer6c978642023-11-21 17:59:56 +0800172@@ -988,12 +1007,16 @@ int mtk_ppe_start(struct mtk_ppe *ppe)
173 MTK_PPE_GLO_CFG_IP4_L4_CS_DROP |
174 MTK_PPE_GLO_CFG_IP4_CS_DROP |
175 MTK_PPE_GLO_CFG_MCAST_TB_EN |
176+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
177+ MTK_PPE_GLO_CFG_CS0_PIPE_EN |
178+ MTK_PPE_GLO_CFG_SRH_CACHE_FIRST_EN |
179+#endif
180 MTK_PPE_GLO_CFG_FLOW_DROP_UPDATE;
181 ppe_w32(ppe, MTK_PPE_GLO_CFG, val);
developeree39bcf2023-06-16 08:03:30 +0800182
183 ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT, 0);
184
185-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
186+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
187 ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT1, 0xcb777);
188 ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f);
189 #endif
190diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.h b/drivers/net/ethernet/mediatek/mtk_ppe.h
developer64b431b2023-08-26 01:04:45 +0800191index 5ab864f..5529d64 100644
developeree39bcf2023-06-16 08:03:30 +0800192--- a/drivers/net/ethernet/mediatek/mtk_ppe.h
193+++ b/drivers/net/ethernet/mediatek/mtk_ppe.h
194@@ -8,7 +8,10 @@
195 #include <linux/bitfield.h>
196 #include <linux/rhashtable.h>
197
198-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
199+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
200+#define MTK_MAX_PPE_NUM 3
201+#define MTK_ETH_PPE_BASE 0x2000
202+#elif defined(CONFIG_MEDIATEK_NETSYS_V2)
203 #define MTK_MAX_PPE_NUM 2
204 #define MTK_ETH_PPE_BASE 0x2000
205 #else
developer0aaf79d2023-08-21 14:10:16 +0800206@@ -22,7 +25,7 @@
developeree39bcf2023-06-16 08:03:30 +0800207 #define MTK_PPE_WAIT_TIMEOUT_US 1000000
208
209 #define MTK_FOE_IB1_UNBIND_TIMESTAMP GENMASK(7, 0)
210-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
211+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
212 #define MTK_FOE_IB1_UNBIND_SRC_PORT GENMASK(11, 8)
213 #define MTK_FOE_IB1_UNBIND_PACKETS GENMASK(19, 12)
214 #define MTK_FOE_IB1_UNBIND_PREBIND BIT(22)
developer0aaf79d2023-08-21 14:10:16 +0800215@@ -70,7 +73,7 @@ enum {
developeree39bcf2023-06-16 08:03:30 +0800216 MTK_PPE_PKT_TYPE_IPV6_6RD = 7,
217 };
218
219-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
220+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
221 #define MTK_FOE_IB2_QID GENMASK(6, 0)
222 #define MTK_FOE_IB2_PORT_MG BIT(7)
223 #define MTK_FOE_IB2_PSE_QOS BIT(8)
developer0aaf79d2023-08-21 14:10:16 +0800224@@ -98,7 +101,18 @@ enum {
developeree39bcf2023-06-16 08:03:30 +0800225
226 #define MTK_FOE_IB2_DSCP GENMASK(31, 24)
227
228-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
229+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
230+#define MTK_FOE_WINFO_WCID GENMASK(15, 0)
231+#define MTK_FOE_WINFO_BSS GENMASK(23, 16)
232+
233+#define MTK_FOE_WINFO_PAO_USR_INFO GENMASK(15, 0)
234+#define MTK_FOE_WINFO_PAO_TID GENMASK(19, 16)
235+#define MTK_FOE_WINFO_PAO_IS_FIXEDRATE BIT(20)
236+#define MTK_FOE_WINFO_PAO_IS_PRIOR BIT(21)
237+#define MTK_FOE_WINFO_PAO_IS_SP BIT(22)
238+#define MTK_FOE_WINFO_PAO_HF BIT(23)
239+#define MTK_FOE_WINFO_PAO_AMSDU_EN BIT(24)
240+#elif defined(CONFIG_MEDIATEK_NETSYS_V2)
241 #define MTK_FOE_WINFO_BSS GENMASK(5, 0)
242 #define MTK_FOE_WINFO_WCID GENMASK(15, 6)
243 #else
developer0aaf79d2023-08-21 14:10:16 +0800244@@ -128,7 +142,17 @@ struct mtk_foe_mac_info {
developeree39bcf2023-06-16 08:03:30 +0800245 u16 pppoe_id;
246 u16 src_mac_lo;
247
248-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
249+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
250+ u16 minfo;
251+ u16 resv1;
252+ u32 winfo;
253+ u32 winfo_pao;
254+ u16 cdrt_id:8;
255+ u16 tops_entry:6;
256+ u16 resv3:2;
257+ u16 tport_id:4;
258+ u16 resv4:12;
259+#elif defined(CONFIG_MEDIATEK_NETSYS_V2)
260 u16 minfo;
261 u16 winfo;
262 #endif
developer0aaf79d2023-08-21 14:10:16 +0800263@@ -249,7 +273,9 @@ struct mtk_foe_entry {
developeree39bcf2023-06-16 08:03:30 +0800264 struct mtk_foe_ipv4_dslite dslite;
265 struct mtk_foe_ipv6 ipv6;
266 struct mtk_foe_ipv6_6rd ipv6_6rd;
267-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
268+#if defined(CONFIG_MEDIATEK_NETSYS_V3)
269+ u32 data[31];
270+#elif defined(CONFIG_MEDIATEK_NETSYS_V2)
271 u32 data[23];
272 #else
273 u32 data[19];
274diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
developer64b431b2023-08-26 01:04:45 +0800275index 3bc50a4..f0c63da 100755
developeree39bcf2023-06-16 08:03:30 +0800276--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
277+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
278@@ -195,7 +195,7 @@ mtk_flow_set_output_device(struct mtk_eth *eth, struct mtk_foe_entry *foe,
279 mtk_foe_entry_set_wdma(foe, info.wdma_idx, info.queue, info.bss,
280 info.wcid);
281 pse_port = PSE_PPE0_PORT;
282-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
283+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
284 if (info.wdma_idx == 0)
285 pse_port = PSE_WDMA0_PORT;
286 else if (info.wdma_idx == 1)
developer0aaf79d2023-08-21 14:10:16 +0800287@@ -218,6 +218,8 @@ mtk_flow_set_output_device(struct mtk_eth *eth, struct mtk_foe_entry *foe,
developeree39bcf2023-06-16 08:03:30 +0800288 pse_port = PSE_GDM1_PORT;
289 else if (dev == eth->netdev[1])
290 pse_port = PSE_GDM2_PORT;
291+ else if (dev == eth->netdev[2])
292+ pse_port = PSE_GDM3_PORT;
293 else
294 return -EOPNOTSUPP;
295
developer0aaf79d2023-08-21 14:10:16 +0800296@@ -376,7 +378,7 @@ mtk_flow_offload_replace(struct mtk_eth *eth, struct flow_cls_offload *f)
297 if (err)
298 return err;
developeree39bcf2023-06-16 08:03:30 +0800299
developeree39bcf2023-06-16 08:03:30 +0800300-#if defined(CONFIG_MEDIATEK_NETSYS_V2)
301+#if defined(CONFIG_MEDIATEK_NETSYS_V2) || defined(CONFIG_MEDIATEK_NETSYS_V3)
302 if (idev && idev->netdev_ops->ndo_fill_receive_path) {
303 ctx.dev = idev;
304 idev->netdev_ops->ndo_fill_receive_path(&ctx, &path);
developer7f08cd02023-10-25 12:11:22 +0800305diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_regs.h b/drivers/net/ethernet/mediatek/mtk_ppe_regs.h
developer6c978642023-11-21 17:59:56 +0800306index 8d3ebe1..55b9b0c 100644
developer7f08cd02023-10-25 12:11:22 +0800307--- a/drivers/net/ethernet/mediatek/mtk_ppe_regs.h
308+++ b/drivers/net/ethernet/mediatek/mtk_ppe_regs.h
developer6c978642023-11-21 17:59:56 +0800309@@ -18,6 +18,8 @@
310 #define MTK_PPE_GLO_CFG_UDP_LITE_EN BIT(10)
311 #define MTK_PPE_GLO_CFG_UDP_LEN_DROP BIT(11)
312 #define MTK_PPE_GLO_CFG_MCAST_ENTRIES GNEMASK(13, 12)
313+#define MTK_PPE_GLO_CFG_CS0_PIPE_EN BIT(29)
314+#define MTK_PPE_GLO_CFG_SRH_CACHE_FIRST_EN BIT(30)
315 #define MTK_PPE_GLO_CFG_BUSY BIT(31)
316
317 #define MTK_PPE_FLOW_CFG 0x204
318@@ -155,9 +157,14 @@ enum {
developer7f08cd02023-10-25 12:11:22 +0800319 #define MTK_PPE_MIB_SER_R1 0x344
320 #define MTK_PPE_MIB_SER_R1_PKT_CNT_LOW GENMASK(31, 16)
321 #define MTK_PPE_MIB_SER_R1_BYTE_CNT_HIGH GENMASK(15, 0)
322+#define MTK_PPE_MIB_SER_R1_BYTE_CNT_HIGH_V2 GENMASK(31, 0)
323
324 #define MTK_PPE_MIB_SER_R2 0x348
325 #define MTK_PPE_MIB_SER_R2_PKT_CNT_HIGH GENMASK(23, 0)
326+#define MTK_PPE_MIB_SER_R2_PKT_CNT_LOW_V2 GENMASK(31, 0)
327+
328+#define MTK_PPE_MIB_SER_R3 0x34C
329+#define MTK_PPE_MIB_SER_R3_PKT_CNT_HIGH GENMASK(31, 0)
330
331 #define MTK_PPE_MIB_CACHE_CTL 0x350
332 #define MTK_PPE_MIB_CACHE_CTL_EN BIT(0)
developer0aaf79d2023-08-21 14:10:16 +0800333--
3342.18.0
335