From d86af0076cbf7d99bdb4f28115159643b79ad3fa Mon Sep 17 00:00:00 2001
From: Sujuan Chen <sujuan.chen@mediatek.com>
Date: Wed, 18 May 2022 11:08:15 +0800
Subject: [PATCH 5/8] 9994-ethernet-update-ppe-from-mt7622-to-mt7986

Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
---
 drivers/net/ethernet/mediatek/mtk_eth_soc.c   | 14 +++-
 drivers/net/ethernet/mediatek/mtk_eth_soc.h   |  7 +-
 drivers/net/ethernet/mediatek/mtk_ppe.c       | 24 ++++---
 drivers/net/ethernet/mediatek/mtk_ppe.h       | 69 ++++++++++---------
 .../net/ethernet/mediatek/mtk_ppe_offload.c   |  7 +-
 drivers/net/ethernet/mediatek/mtk_ppe_regs.h  | 10 +++
 6 files changed, 86 insertions(+), 45 deletions(-)

diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 2121335a1..01fc1e5c0 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1467,16 +1467,27 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
 			skb_checksum_none_assert(skb);
 		skb->protocol = eth_type_trans(skb, netdev);
 
-		hash = trxd.rxd4 & MTK_RXD4_FOE_ENTRY;
+#if defined(CONFIG_MEDIATEK_NETSYS_RX_V2)
+			hash = trxd.rxd5 & MTK_RXD5_FOE_ENTRY_V2;
+#else
+			hash = trxd.rxd4 & MTK_RXD4_FOE_ENTRY;
+#endif
 		if (hash != MTK_RXD4_FOE_ENTRY) {
 			hash = jhash_1word(hash, 0);
 			skb_set_hash(skb, hash, PKT_HASH_TYPE_L4);
 		}
 
+#if defined(CONFIG_MEDIATEK_NETSYS_RX_V2)
+		reason = FIELD_GET(MTK_RXD5_PPE_CPU_REASON_V2, trxd.rxd5);
+		if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED)
+			mtk_ppe_check_skb(eth->ppe, skb,
+					  trxd.rxd5 & MTK_RXD5_FOE_ENTRY_V2);
+#else
 		reason = FIELD_GET(MTK_RXD4_PPE_CPU_REASON, trxd.rxd4);
 		if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED)
 			mtk_ppe_check_skb(eth->ppe, skb,
 					  trxd.rxd4 & MTK_RXD4_FOE_ENTRY);
+#endif
 
 		if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) {
 			if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
@@ -3926,13 +3937,14 @@ static const struct mtk_soc_data mt7986_data = {
 	.required_clks = MT7986_CLKS_BITMAP,
 	.required_pctl = false,
 	.has_sram = true,
+	.offload_version = 2,
	.rss_num = 0,
 	.txrx = {
 		.txd_size = sizeof(struct mtk_tx_dma_v2),
 		.rxd_size = sizeof(struct mtk_rx_dma),
 		.rx_dma_l4_valid = RX_DMA_L4_VALID_V2,
 		.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
 		.dma_len_offset = MTK_TX_DMA_BUF_SHIFT_V2,
 	},
 };
 
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index b52378bd6..fce1a7172 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -110,7 +110,7 @@
 #define MTK_GDMA_TCS_EN		BIT(21)
 #define MTK_GDMA_UCS_EN		BIT(20)
 #define MTK_GDMA_TO_PDMA	0x0
-#define MTK_GDMA_TO_PPE		0x4444
+#define MTK_GDMA_TO_PPE		0x3333
 #define MTK_GDMA_DROP_ALL	0x7777
 
 /* Unicast Filter MAC Address Register - Low */
@@ -560,6 +560,11 @@
 #define MTK_RXD4_SRC_PORT	GENMASK(21, 19)
 #define MTK_RXD4_ALG		GENMASK(31, 22)
 
+/* QDMA descriptor rxd4 */
+#define MTK_RXD5_FOE_ENTRY_V2	GENMASK(14, 0)
+#define MTK_RXD5_PPE_CPU_REASON_V2	GENMASK(22, 18)
+#define MTK_RXD5_SRC_PORT_V2	GENMASK(29, 26)
+
 /* QDMA descriptor rxd4 */
 #define RX_DMA_L4_VALID		BIT(24)
 #define RX_DMA_L4_VALID_PDMA	BIT(30)		/* when PDMA is used */
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c
index 3d75c22be..d46e91178 100755
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@ -122,7 +122,7 @@ static u32 mtk_ppe_hash_entry(struct mtk_foe_entry *e)
 	hash = (hash >> 24) | ((hash & 0xffffff) << 8);
 	hash ^= hv1 ^ hv2 ^ hv3;
 	hash ^= hash >> 16;
-	hash <<= 1;
+	hash <<= 2;
 	hash &= MTK_PPE_ENTRIES - 1;
 
 	return hash;
@@ -171,8 +171,12 @@ int mtk_foe_entry_prepare(struct mtk_foe_entry *entry, int type, int l4proto,
 	      MTK_FOE_IB1_BIND_CACHE;
 	entry->ib1 = val;

+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+	val = FIELD_PREP(MTK_FOE_IB2_PORT_AG, 0xf) |
+#else
 	val = FIELD_PREP(MTK_FOE_IB2_PORT_MG, 0x3f) |
 	      FIELD_PREP(MTK_FOE_IB2_PORT_AG, 0x1f) |
+#endif
 	      FIELD_PREP(MTK_FOE_IB2_DEST_PORT, pse_port);
 
 	if (is_multicast_ether_addr(dest_mac))
@@ -359,12 +358,19 @@ int mtk_foe_entry_set_wdma(struct mtk_foe_entry *entry, int wdma_idx, int txq,
 
 	*ib2 &= ~MTK_FOE_IB2_PORT_MG;
 	*ib2 |= MTK_FOE_IB2_WDMA_WINFO;
+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+	*ib2 |=  FIELD_PREP(MTK_FOE_IB2_RX_IDX, txq);
+
+	l2->winfo = FIELD_PREP(MTK_FOE_WINFO_WCID, wcid) |
+		    FIELD_PREP(MTK_FOE_WINFO_BSS, bss);
+#else
 	if (wdma_idx)
 		*ib2 |= MTK_FOE_IB2_WDMA_DEVIDX;
 
 	l2->vlan2 = FIELD_PREP(MTK_FOE_VLAN2_WINFO_BSS, bss) |
 		    FIELD_PREP(MTK_FOE_VLAN2_WINFO_WCID, wcid) |
 		    FIELD_PREP(MTK_FOE_VLAN2_WINFO_RING, txq);
+#endif
 
 	return 0;
 }
@@ -741,6 +738,9 @@ int mtk_ppe_start(struct mtk_ppe *ppe)
 	      MTK_PPE_TB_CFG_AGE_TCP |
 	      MTK_PPE_TB_CFG_AGE_UDP |
 	      MTK_PPE_TB_CFG_AGE_TCP_FIN |
+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+	      MTK_PPE_TB_CFG_INFO_SEL |
+#endif
 	      FIELD_PREP(MTK_PPE_TB_CFG_SEARCH_MISS,
 			 MTK_PPE_SEARCH_MISS_ACTION_FORWARD_BUILD) |
 	      FIELD_PREP(MTK_PPE_TB_CFG_KEEPALIVE,
@@ -757,7 +755,8 @@ int mtk_ppe_start(struct mtk_ppe *ppe)
 
 	mtk_ppe_cache_enable(ppe, true);
 
-	val = MTK_PPE_FLOW_CFG_IP4_TCP_FRAG |
+	val = MTK_PPE_MD_TOAP_BYP_CRSN0 |
+	      MTK_PPE_MD_TOAP_BYP_CRSN1 |
+	      MTK_PPE_MD_TOAP_BYP_CRSN2 |
-	      MTK_PPE_FLOW_CFG_IP4_UDP_FRAG |
 	      MTK_PPE_FLOW_CFG_IP6_3T_ROUTE |
 	      MTK_PPE_FLOW_CFG_IP6_5T_ROUTE |
@@ -765,7 +765,8 @@ int mtk_ppe_start(struct mtk_ppe *ppe)
 	      MTK_PPE_FLOW_CFG_IP4_NAT |
 	      MTK_PPE_FLOW_CFG_IP4_NAPT |
 	      MTK_PPE_FLOW_CFG_IP4_DSLITE |
-	      MTK_PPE_FLOW_CFG_IP4_NAT_FRAG;
+	      MTK_PPE_FLOW_CFG_IP4_NAT_FRAG |
+	      MTK_PPE_FLOW_CFG_IP4_HASH_GRE_KEY;
 	ppe_w32(ppe, MTK_PPE_FLOW_CFG, val);
 
 	val = FIELD_PREP(MTK_PPE_UNBIND_AGE_MIN_PACKETS, 1000) |
@@ -800,6 +801,11 @@ int mtk_ppe_start(struct mtk_ppe *ppe)
 
 	ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT, 0);

+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+	ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT1, 0xcb777);
+	ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f);
+#endif
+
 	return 0;
 }
 
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.h b/drivers/net/ethernet/mediatek/mtk_ppe.h
index 1f5cf1c9a..a76f4b0ac 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe.h
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.h
@@ -8,7 +8,11 @@
 #include <linux/bitfield.h>
 #include <linux/rhashtable.h>

+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#define MTK_ETH_PPE_BASE		0x2000
+#else
 #define MTK_ETH_PPE_BASE		0xc00
+#endif
 
 #define MTK_PPE_ENTRIES_SHIFT		3
 #define MTK_PPE_ENTRIES			(1024 << MTK_PPE_ENTRIES_SHIFT)
@@ -16,20 +16,40 @@
 #define MTK_PPE_WAIT_TIMEOUT_US		1000000
 
 #define MTK_FOE_IB1_UNBIND_TIMESTAMP	GENMASK(7, 0)
+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#define MTK_FOE_IB1_UNBIND_SRC_PORT	GENMASK(11, 8)
+#define MTK_FOE_IB1_UNBIND_PACKETS	GENMASK(19, 12)
+#define MTK_FOE_IB1_UNBIND_PREBIND	BIT(22)
+#define MTK_FOE_IB1_UNBIND_PACKET_TYPE	GENMASK(27, 23)
+#define MTK_FOE_IB1_BIND_TIMESTAMP	GENMASK(7, 0)
+#define MTK_FOE_IB1_BIND_SRC_PORT	GENMASK(11, 8)
+#define MTK_FOE_IB1_BIND_MC		BIT(12)
+#define MTK_FOE_IB1_BIND_KEEPALIVE	BIT(13)
+#define MTK_FOE_IB1_BIND_VLAN_LAYER	GENMASK(16, 14)
+#define MTK_FOE_IB1_BIND_PPPOE		BIT(17)
+#define MTK_FOE_IB1_BIND_VLAN_TAG	BIT(18)
+#define MTK_FOE_IB1_BIND_PKT_SAMPLE	BIT(19)
+#define MTK_FOE_IB1_BIND_CACHE		BIT(20)
+#define MTK_FOE_IB1_BIND_TUNNEL_DECAP	BIT(21)
+#define MTK_FOE_IB1_BIND_TTL		BIT(22)
+#define MTK_FOE_IB1_PACKET_TYPE		GENMASK(27, 23)
+#else
 #define MTK_FOE_IB1_UNBIND_PACKETS	GENMASK(23, 8)
 #define MTK_FOE_IB1_UNBIND_PREBIND	BIT(24)
 
 #define MTK_FOE_IB1_BIND_TIMESTAMP	GENMASK(14, 0)
 #define MTK_FOE_IB1_BIND_KEEPALIVE	BIT(15)
 #define MTK_FOE_IB1_BIND_VLAN_LAYER	GENMASK(18, 16)
 #define MTK_FOE_IB1_BIND_PPPOE		BIT(19)
 #define MTK_FOE_IB1_BIND_VLAN_TAG	BIT(20)
 #define MTK_FOE_IB1_BIND_PKT_SAMPLE	BIT(21)
 #define MTK_FOE_IB1_BIND_CACHE		BIT(22)
 #define MTK_FOE_IB1_BIND_TUNNEL_DECAP	BIT(23)
 #define MTK_FOE_IB1_BIND_TTL		BIT(24)
 
 #define MTK_FOE_IB1_PACKET_TYPE		GENMASK(27, 25)
+#endif
+
 #define MTK_FOE_IB1_STATE		GENMASK(29, 28)
 #define MTK_FOE_IB1_UDP			BIT(30)
 #define MTK_FOE_IB1_STATIC		BIT(31)
@@ -44,24 +47,42 @@ enum {
 	MTK_PPE_PKT_TYPE_IPV6_6RD = 7,
 };
 
+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#define MTK_FOE_IB2_QID			GENMASK(6, 0)
+#define MTK_FOE_IB2_PORT_MG		BIT(7)
+#define MTK_FOE_IB2_PSE_QOS		BIT(8)
+#define MTK_FOE_IB2_DEST_PORT		GENMASK(12, 9)
+#define MTK_FOE_IB2_MULTICAST		BIT(13)
+#define MTK_FOE_IB2_MIB_CNT		BIT(15)
+#define MTK_FOE_IB2_RX_IDX		GENMASK(18, 17)
+#define MTK_FOE_IB2_WDMA_WINFO		BIT(19)
+#define MTK_FOE_IB2_PORT_AG		GENMASK(23, 20)
+#else
 #define MTK_FOE_IB2_QID			GENMASK(3, 0)
 #define MTK_FOE_IB2_PSE_QOS		BIT(4)
 #define MTK_FOE_IB2_DEST_PORT		GENMASK(7, 5)
 #define MTK_FOE_IB2_MULTICAST		BIT(8)
 
 #define MTK_FOE_IB2_WDMA_QID2		GENMASK(13, 12)
+#define MTK_FOE_IB2_MIB_CNT		BIT(15)
 #define MTK_FOE_IB2_WDMA_DEVIDX		BIT(16)
 #define MTK_FOE_IB2_WDMA_WINFO		BIT(17)
 
 #define MTK_FOE_IB2_PORT_MG		GENMASK(17, 12)
 
 #define MTK_FOE_IB2_PORT_AG		GENMASK(23, 18)
+#endif
 
 #define MTK_FOE_IB2_DSCP		GENMASK(31, 24)
 
+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+#define MTK_FOE_WINFO_BSS		GENMASK(5, 0)
+#define MTK_FOE_WINFO_WCID		GENMASK(15, 6)
+#else
 #define MTK_FOE_VLAN2_WINFO_BSS		GENMASK(5, 0)
 #define MTK_FOE_VLAN2_WINFO_WCID	GENMASK(13, 6)
 #define MTK_FOE_VLAN2_WINFO_RING	GENMASK(15, 14)
+#endif
 
 enum {
 	MTK_FOE_STATE_INVALID,
@@ -83,6 +81,11 @@ struct mtk_foe_mac_info {
 
 	u16 pppoe_id;
 	u16 src_mac_lo;
+
+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+	u16 minfo;
+	u16 winfo;
+#endif
 };
 
 /* software-only entry type */
@@ -200,7 +205,11 @@ struct mtk_foe_entry {
 		struct mtk_foe_ipv4_dslite dslite;
 		struct mtk_foe_ipv6 ipv6;
 		struct mtk_foe_ipv6_6rd ipv6_6rd;
+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+		u32 data[23];
+#else
 		u32 data[19];
+#endif
 	};
 };
 
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
index d4a012608..5a4201447 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
@@ -192,7 +192,15 @@ mtk_flow_set_output_device(struct mtk_eth *eth, struct mtk_foe_entry *foe,
 	if (mtk_flow_get_wdma_info(dev, dest_mac, &info) == 0) {
 		mtk_foe_entry_set_wdma(foe, info.wdma_idx, info.queue, info.bss,
 				       info.wcid);
 		pse_port = PSE_PPE0_PORT;
+#if defined(CONFIG_MEDIATEK_NETSYS_V2)
+		if (info.wdma_idx == 0)
+			pse_port = PSE_WDMA0_PORT;
+		else if (info.wdma_idx == 1)
+			pse_port = PSE_WDMA1_PORT;
+		else
+			return -EOPNOTSUPP;
+#endif
 		*wed_index = info.wdma_idx;
 		goto out;
 	}
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_regs.h b/drivers/net/ethernet/mediatek/mtk_ppe_regs.h
index 0c45ea090..d319f1861 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe_regs.h
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_regs.h
@@ -21,6 +21,9 @@
 #define MTK_PPE_GLO_CFG_BUSY			BIT(31)
 
 #define MTK_PPE_FLOW_CFG			0x204
+#define MTK_PPE_MD_TOAP_BYP_CRSN0		BIT(1)
+#define MTK_PPE_MD_TOAP_BYP_CRSN1		BIT(2)
+#define MTK_PPE_MD_TOAP_BYP_CRSN2		BIT(3)
 #define MTK_PPE_FLOW_CFG_IP4_TCP_FRAG		BIT(6)
 #define MTK_PPE_FLOW_CFG_IP4_UDP_FRAG		BIT(7)
 #define MTK_PPE_FLOW_CFG_IP6_3T_ROUTE		BIT(8)
@@ -35,6 +38,8 @@
 #define MTK_PPE_FLOW_CFG_IP4_HASH_FLOW_LABEL	BIT(18)
 #define MTK_PPE_FLOW_CFG_IP4_HASH_GRE_KEY	BIT(19)
 #define MTK_PPE_FLOW_CFG_IP6_HASH_GRE_KEY	BIT(20)
+#define MTK_PPE_FLOW_CFG_IPV4_MAPE_EN		BIT(21)
+#define MTK_PPE_FLOW_CFG_IPV4_MAPT_EN		BIT(22)
 
 #define MTK_PPE_IP_PROTO_CHK			0x208
 #define MTK_PPE_IP_PROTO_CHK_IPV4		GENMASK(15, 0)
@@ -54,6 +59,7 @@
 #define MTK_PPE_TB_CFG_HASH_MODE		GENMASK(15, 14)
 #define MTK_PPE_TB_CFG_SCAN_MODE		GENMASK(17, 16)
 #define MTK_PPE_TB_CFG_HASH_DEBUG		GENMASK(19, 18)
+#define MTK_PPE_TB_CFG_INFO_SEL			BIT(20)
 
 enum {
 	MTK_PPE_SCAN_MODE_DISABLED,
@@ -111,6 +117,8 @@ enum {
 
 #define MTK_PPE_DEFAULT_CPU_PORT		0x248
 #define MTK_PPE_DEFAULT_CPU_PORT_MASK(_n)	(GENMASK(2, 0) << ((_n) * 4))
+#define MTK_PPE_DEFAULT_CPU_PORT1		0x24C
+#define MTK_PPE_DEFAULT_CPU_PORT_MASK(_n)	(GENMASK(2, 0) << ((_n) * 4))
 
 #define MTK_PPE_MTU_DROP			0x308
 
@@ -141,4 +149,6 @@ enum {
 #define MTK_PPE_MIB_CACHE_CTL_EN		BIT(0)
 #define MTK_PPE_MIB_CACHE_CTL_FLUSH		BIT(2)
 
+#define MTK_PPE_SBW_CTRL			0x374
+
 #endif
-- 
2.18.0

