xref: /linux/drivers/net/dsa/netc/netc_switch_hw.h (revision 1a58ae73dd743bba2895431ee99471d784175244)
1187fbae0SWei Fang /* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
2187fbae0SWei Fang /*
3187fbae0SWei Fang  * Copyright 2025-2026 NXP
4187fbae0SWei Fang  */
5187fbae0SWei Fang 
6187fbae0SWei Fang #ifndef _NETC_SWITCH_HW_H
7187fbae0SWei Fang #define _NETC_SWITCH_HW_H
8187fbae0SWei Fang 
9187fbae0SWei Fang #include <linux/bitops.h>
10187fbae0SWei Fang 
11187fbae0SWei Fang #define NETC_SWITCH_VENDOR_ID		0x1131
12187fbae0SWei Fang #define NETC_SWITCH_DEVICE_ID		0xeef2
13187fbae0SWei Fang 
14187fbae0SWei Fang /* Definition of Switch base registers */
15a5ccb7f5SWei Fang #define NETC_BPCAPR			0x0008
16a5ccb7f5SWei Fang #define  BPCAPR_NUM_BP			GENMASK(7, 0)
17a5ccb7f5SWei Fang 
18a5ccb7f5SWei Fang #define NETC_PBPMCR0			0x0400
19a5ccb7f5SWei Fang #define NETC_PBPMCR1			0x0404
20a5ccb7f5SWei Fang 
21187fbae0SWei Fang #define NETC_CBDRMR(a)			(0x0800 + (a) * 0x30)
22187fbae0SWei Fang #define NETC_CBDRBAR0(a)		(0x0810 + (a) * 0x30)
23187fbae0SWei Fang #define NETC_CBDRBAR1(a)		(0x0814 + (a) * 0x30)
24187fbae0SWei Fang #define NETC_CBDRPIR(a)			(0x0818 + (a) * 0x30)
25187fbae0SWei Fang #define NETC_CBDRCIR(a)			(0x081c + (a) * 0x30)
26187fbae0SWei Fang #define NETC_CBDRLENR(a)		(0x0820 + (a) * 0x30)
27187fbae0SWei Fang 
28187fbae0SWei Fang #define NETC_SWCR			0x1018
29187fbae0SWei Fang #define  SWCR_SWID			GENMASK(2, 0)
30187fbae0SWei Fang 
31187fbae0SWei Fang #define NETC_DOSL2CR			0x1220
32187fbae0SWei Fang #define  DOSL2CR_SAMEADDR		BIT(0)
33187fbae0SWei Fang #define  DOSL2CR_MSAMCC			BIT(1)
34187fbae0SWei Fang 
35187fbae0SWei Fang #define NETC_DOSL3CR			0x1224
36187fbae0SWei Fang #define  DOSL3CR_SAMEADDR		BIT(0)
37187fbae0SWei Fang #define  DOSL3CR_IPSAMCC		BIT(1)
38187fbae0SWei Fang 
39*1a58ae73SWei Fang #define NETC_ETTCAPR			0x18c4
40*1a58ae73SWei Fang #define NETC_ECTCAPR			0x18ec
41*1a58ae73SWei Fang /* Index table NUM_ENTRIES mask */
42*1a58ae73SWei Fang #define NETC_NUM_ENTRIES		GENMASK(15, 0)
43*1a58ae73SWei Fang #define NETC_GET_NUM_ENTRIES(v)		FIELD_GET(NETC_NUM_ENTRIES, (v))
44*1a58ae73SWei Fang 
4546d64076SWei Fang /* Hash table memory capability register, the memory is shared by
4646d64076SWei Fang  * the following tables:
4746d64076SWei Fang  *
4846d64076SWei Fang  * - Ingress Stream Identification table
4946d64076SWei Fang  * - Ingress Stream Filter table
5046d64076SWei Fang  * - VLAN Filter table
5146d64076SWei Fang  * - FDB table
5246d64076SWei Fang  * - L2 IPv4 Multicast Filter table
5346d64076SWei Fang  *
5446d64076SWei Fang  *  Each hash table entry is one word in size.
5546d64076SWei Fang  */
5646d64076SWei Fang #define NETC_HTMCAPR			0x1900
5746d64076SWei Fang #define  HTMCAPR_NUM_WORDS		GENMASK(15, 0)
5846d64076SWei Fang 
59187fbae0SWei Fang #define NETC_VFHTDECR1			0x2014
60187fbae0SWei Fang #define NETC_VFHTDECR2			0x2018
61187fbae0SWei Fang #define  VFHTDECR2_ET_PORT(a)		BIT((a))
62187fbae0SWei Fang #define  VFHTDECR2_MLO			GENMASK(26, 24)
63187fbae0SWei Fang #define  VFHTDECR2_MFO			GENMASK(28, 27)
64187fbae0SWei Fang 
65187fbae0SWei Fang /* Definition of Switch port registers */
66187fbae0SWei Fang #define NETC_PCAPR			0x0000
67187fbae0SWei Fang #define  PCAPR_LINK_TYPE		BIT(4)
68187fbae0SWei Fang #define  PCAPR_NUM_TC			GENMASK(15, 12)
69187fbae0SWei Fang #define  PCAPR_NUM_Q			GENMASK(19, 16)
70187fbae0SWei Fang #define  PCAPR_NUM_CG			GENMASK(27, 24)
71187fbae0SWei Fang #define  PCAPR_TGS			BIT(28)
72187fbae0SWei Fang #define  PCAPR_CBS			BIT(29)
73187fbae0SWei Fang 
74187fbae0SWei Fang #define NETC_PMCAPR			0x0004
75187fbae0SWei Fang #define  PMCAPR_HD			BIT(8)
76187fbae0SWei Fang #define  PMCAPR_FP			GENMASK(10, 9)
77187fbae0SWei Fang #define   FP_SUPPORT			2
78187fbae0SWei Fang 
79187fbae0SWei Fang #define NETC_PCR			0x0010
80187fbae0SWei Fang #define  PCR_HDR_FMT			BIT(0)
81187fbae0SWei Fang #define  PCR_NS_TAG_PORT		BIT(3)
82187fbae0SWei Fang #define  PCR_L2DOSE			BIT(4)
83187fbae0SWei Fang #define  PCR_L3DOSE			BIT(5)
84187fbae0SWei Fang #define  PCR_TIMER_CS			BIT(8)
85187fbae0SWei Fang #define  PCR_PSPEED			GENMASK(29, 16)
86187fbae0SWei Fang #define   PSPEED_SET_VAL(s)		FIELD_PREP(PCR_PSPEED, ((s) / 10 - 1))
87187fbae0SWei Fang 
88187fbae0SWei Fang #define NETC_PQOSMR			0x0054
89187fbae0SWei Fang #define  PQOSMR_VS			BIT(0)
90187fbae0SWei Fang #define  PQOSMR_VE			BIT(1)
91187fbae0SWei Fang #define  PQOSMR_DDR			GENMASK(3, 2)
92187fbae0SWei Fang #define  PQOSMR_DIPV			GENMASK(6, 4)
93187fbae0SWei Fang #define  PQOSMR_VQMP			GENMASK(19, 16)
94187fbae0SWei Fang #define  PQOSMR_QVMP			GENMASK(23, 20)
95187fbae0SWei Fang 
9646d64076SWei Fang #define NETC_PIPFCR			0x0084
9746d64076SWei Fang #define  PIPFCR_EN			BIT(0)
9846d64076SWei Fang 
99bbe97e34SWei Fang #define NETC_POR			0x100
100bbe97e34SWei Fang #define  POR_TXDIS			BIT(0)
101bbe97e34SWei Fang #define  POR_RXDIS			BIT(1)
102bbe97e34SWei Fang 
103bbe97e34SWei Fang #define NETC_PSR			0x104
104bbe97e34SWei Fang #define  PSR_TX_BUSY			BIT(0)
105bbe97e34SWei Fang #define  PSR_RX_BUSY			BIT(1)
106bbe97e34SWei Fang 
107beb0e54fSWei Fang #define NETC_PTGSLACR			0x130
108beb0e54fSWei Fang 
109beb0e54fSWei Fang #define NETC_PRXDCR			0x1c0
110beb0e54fSWei Fang #define NETC_PRXDCRRR			0x1c4
111beb0e54fSWei Fang #define NETC_PRXDCRR0			0x1c8
112beb0e54fSWei Fang #define NETC_PRXDCRR1			0x1cc
113beb0e54fSWei Fang #define NETC_PTXDCR			0x1e0
114beb0e54fSWei Fang 
115187fbae0SWei Fang #define NETC_PTCTMSDUR(a)		(0x208 + (a) * 0x20)
116187fbae0SWei Fang #define  PTCTMSDUR_MAXSDU		GENMASK(15, 0)
117187fbae0SWei Fang #define  PTCTMSDUR_SDU_TYPE		GENMASK(17, 16)
118187fbae0SWei Fang #define   SDU_TYPE_PPDU			0
119187fbae0SWei Fang #define   SDU_TYPE_MPDU			1
120187fbae0SWei Fang #define   SDU_TYPE_MSDU			2
121187fbae0SWei Fang 
122beb0e54fSWei Fang #define NETC_PSDFTCR			0x4c4
123beb0e54fSWei Fang #define NETC_PSDFDDCR			0x4c8
124beb0e54fSWei Fang 
125187fbae0SWei Fang #define NETC_BPCR			0x500
126187fbae0SWei Fang #define  BPCR_DYN_LIMIT			GENMASK(15, 0)
127187fbae0SWei Fang #define  BPCR_MLO			GENMASK(22, 20)
128187fbae0SWei Fang #define  BPCR_UUCASTE			BIT(24)
129187fbae0SWei Fang #define  BPCR_UMCASTE			BIT(25)
130187fbae0SWei Fang #define  BPCR_MCASTE			BIT(26)
131187fbae0SWei Fang #define  BPCR_BCASTE			BIT(27)
132187fbae0SWei Fang #define  BPCR_STAMVD			BIT(28)
133187fbae0SWei Fang #define  BPCR_SRCPRND			BIT(29)
134187fbae0SWei Fang 
135187fbae0SWei Fang /* MAC learning options, see BPCR[MLO], VFHTDECR2[MLO] and
136187fbae0SWei Fang  * VLAN Filter Table CFGE_DATA[MLO]
137187fbae0SWei Fang  */
138187fbae0SWei Fang enum netc_mlo {
139187fbae0SWei Fang 	MLO_NOT_OVERRIDE = 0,
140187fbae0SWei Fang 	MLO_DISABLE,
141187fbae0SWei Fang 	MLO_HW,
142187fbae0SWei Fang 	MLO_SW_SEC,
143187fbae0SWei Fang 	MLO_SW_UNSEC,
144187fbae0SWei Fang 	MLO_DISABLE_SMAC,
145187fbae0SWei Fang };
146187fbae0SWei Fang 
147187fbae0SWei Fang /* MAC forwarding options, see VFHTDECR2[MFO] and VLAN
148187fbae0SWei Fang  * Filter Table CFGE_DATA[MFO]
149187fbae0SWei Fang  */
150187fbae0SWei Fang enum netc_mfo {
151187fbae0SWei Fang 	MFO_NO_FDB_LOOKUP = 1,
152187fbae0SWei Fang 	MFO_NO_MATCH_FLOOD,
153187fbae0SWei Fang 	MFO_NO_MATCH_DISCARD,
154187fbae0SWei Fang };
155187fbae0SWei Fang 
156187fbae0SWei Fang #define NETC_BPDVR			0x510
157187fbae0SWei Fang #define  BPDVR_VID			GENMASK(11, 0)
158187fbae0SWei Fang #define  BPDVR_DEI			BIT(12)
159187fbae0SWei Fang #define  BPDVR_PCP			GENMASK(15, 13)
160187fbae0SWei Fang #define  BPDVR_TPID			BIT(16)
161187fbae0SWei Fang #define  BPDVR_RXTAGA			GENMASK(23, 20)
162187fbae0SWei Fang #define  BPDVR_RXVAM			BIT(24)
163187fbae0SWei Fang #define  BPDVR_TXTAGA			GENMASK(26, 25)
164187fbae0SWei Fang 
16546d64076SWei Fang #define NETC_BPSTGSR			0x520
16646d64076SWei Fang 
16746d64076SWei Fang enum netc_stg_stage {
16846d64076SWei Fang 	NETC_STG_STATE_DISABLED = 0,
16946d64076SWei Fang 	NETC_STG_STATE_LEARNING,
17046d64076SWei Fang 	NETC_STG_STATE_FORWARDING,
17146d64076SWei Fang };
17246d64076SWei Fang 
173beb0e54fSWei Fang #define NETC_BPDCR			0x580
174beb0e54fSWei Fang 
175187fbae0SWei Fang /* Definition of Switch ethernet MAC port registers */
176187fbae0SWei Fang #define NETC_PMAC_OFFSET		0x400
177187fbae0SWei Fang #define NETC_PM_CMD_CFG(a)		(0x1008 + (a) * 0x400)
178187fbae0SWei Fang #define  PM_CMD_CFG_TX_EN		BIT(0)
179187fbae0SWei Fang #define  PM_CMD_CFG_RX_EN		BIT(1)
180a5ccb7f5SWei Fang #define  PM_CMD_CFG_PAUSE_IGN		BIT(8)
181187fbae0SWei Fang 
182187fbae0SWei Fang #define NETC_PM_MAXFRM(a)		(0x1014 + (a) * 0x400)
183187fbae0SWei Fang #define  PM_MAXFRAM			GENMASK(15, 0)
184187fbae0SWei Fang 
185bbe97e34SWei Fang #define NETC_PM_IEVENT(a)		(0x1040 + (a) * 0x400)
186bbe97e34SWei Fang #define  PM_IEVENT_TX_EMPTY		BIT(5)
187bbe97e34SWei Fang #define  PM_IEVENT_RX_EMPTY		BIT(6)
188bbe97e34SWei Fang 
189a5ccb7f5SWei Fang #define NETC_PM_PAUSE_QUANTA(a)		(0x1054 + (a) * 0x400)
190a5ccb7f5SWei Fang #define NETC_PM_PAUSE_THRESH(a)		(0x1064 + (a) * 0x400)
191a5ccb7f5SWei Fang 
192bbe97e34SWei Fang #define NETC_PM_IF_MODE(a)		(0x1300 + (a) * 0x400)
193bbe97e34SWei Fang #define  PM_IF_MODE_IFMODE		GENMASK(2, 0)
194bbe97e34SWei Fang #define   IFMODE_MII			1
195bbe97e34SWei Fang #define   IFMODE_RMII			3
196bbe97e34SWei Fang #define   IFMODE_RGMII			4
197bbe97e34SWei Fang #define   IFMODE_SGMII			5
198bbe97e34SWei Fang #define  PM_IF_MODE_REVMII		BIT(3)
199bbe97e34SWei Fang #define  PM_IF_MODE_M10			BIT(4)
200bbe97e34SWei Fang #define  PM_IF_MODE_HD			BIT(6)
201bbe97e34SWei Fang #define  PM_IF_MODE_SSP			GENMASK(14, 13)
202bbe97e34SWei Fang #define   SSP_100M			0
203bbe97e34SWei Fang #define   SSP_10M			1
204bbe97e34SWei Fang #define   SSP_1G			2
205bbe97e34SWei Fang 
20625049d8bSWei Fang /* Port MAC 0/1 Receive Ethernet Octets Counter */
20725049d8bSWei Fang #define NETC_PM_REOCT(a)		(0x1100 + (a) * 0x400)
20825049d8bSWei Fang 
209beb0e54fSWei Fang /* Port MAC 0/1 Receive Octets Counter */
210beb0e54fSWei Fang #define NETC_PM_ROCT(a)			(0x1108 + (a) * 0x400)
211beb0e54fSWei Fang 
21225049d8bSWei Fang /* Port MAC 0/1 Receive Alignment Error Counter Register */
21325049d8bSWei Fang #define NETC_PM_RALN(a)			(0x1110 + (a) * 0x400)
21425049d8bSWei Fang 
21525049d8bSWei Fang /* Port MAC 0/1 Receive Valid Pause Frame Counter */
21625049d8bSWei Fang #define NETC_PM_RXPF(a)			(0x1118 + (a) * 0x400)
21725049d8bSWei Fang 
21825049d8bSWei Fang /* Port MAC 0/1 Receive Frame Counter */
21925049d8bSWei Fang #define NETC_PM_RFRM(a)			(0x1120 + (a) * 0x400)
22025049d8bSWei Fang 
22125049d8bSWei Fang /* Port MAC 0/1 Receive Frame Check Sequence Error Counter */
22225049d8bSWei Fang #define NETC_PM_RFCS(a)			(0x1128 + (a) * 0x400)
22325049d8bSWei Fang 
224beb0e54fSWei Fang /* Port MAC 0/1 Receive VLAN Frame Counter */
225beb0e54fSWei Fang #define NETC_PM_RVLAN(a)		(0x1130 + (a) * 0x400)
226beb0e54fSWei Fang 
227beb0e54fSWei Fang /* Port MAC 0/1 Receive Frame Error Counter */
228beb0e54fSWei Fang #define NETC_PM_RERR(a)			(0x1138 + (a) * 0x400)
229beb0e54fSWei Fang 
230beb0e54fSWei Fang /* Port MAC 0/1 Receive Unicast Frame Counter */
231beb0e54fSWei Fang #define NETC_PM_RUCA(a)			(0x1140 + (a) * 0x400)
232beb0e54fSWei Fang 
23325049d8bSWei Fang /* Port MAC 0/1 Receive Multicast Frame Counter */
23425049d8bSWei Fang #define NETC_PM_RMCA(a)			(0x1148 + (a) * 0x400)
23525049d8bSWei Fang 
23625049d8bSWei Fang /* Port MAC 0/1 Receive Broadcast Frame Counter */
23725049d8bSWei Fang #define NETC_PM_RBCA(a)			(0x1150 + (a) * 0x400)
23825049d8bSWei Fang 
239beb0e54fSWei Fang /* Port MAC 0/1 Receive Dropped Packets Counter */
240beb0e54fSWei Fang #define NETC_PM_RDRP(a)			(0x1158 + (a) * 0x400)
241beb0e54fSWei Fang 
242beb0e54fSWei Fang /* Port MAC 0/1 Receive Packets Counter */
243beb0e54fSWei Fang #define NETC_PM_RPKT(a)			(0x1160 + (a) * 0x400)
244beb0e54fSWei Fang 
24525049d8bSWei Fang /* Port MAC 0/1 Receive Undersized Packet Counter */
24625049d8bSWei Fang #define NETC_PM_RUND(a)			(0x1168 + (a) * 0x400)
24725049d8bSWei Fang 
24825049d8bSWei Fang /* Port MAC 0/1 Receive 64-Octet Packet Counter */
24925049d8bSWei Fang #define NETC_PM_R64(a)			(0x1170 + (a) * 0x400)
25025049d8bSWei Fang 
25125049d8bSWei Fang /* Port MAC 0/1 Receive 65 to 127-Octet Packet Counter */
25225049d8bSWei Fang #define NETC_PM_R127(a)			(0x1178 + (a) * 0x400)
25325049d8bSWei Fang 
25425049d8bSWei Fang /* Port MAC 0/1 Receive 128 to 255-Octet Packet Counter */
25525049d8bSWei Fang #define NETC_PM_R255(a)			(0x1180 + (a) * 0x400)
25625049d8bSWei Fang 
25725049d8bSWei Fang /* Port MAC 0/1 Receive 256 to 511-Octet Packet Counter */
25825049d8bSWei Fang #define NETC_PM_R511(a)			(0x1188 + (a) * 0x400)
25925049d8bSWei Fang 
26025049d8bSWei Fang /* Port MAC 0/1 Receive 512 to 1023-Octet Packet Counter */
26125049d8bSWei Fang #define NETC_PM_R1023(a)		(0x1190 + (a) * 0x400)
26225049d8bSWei Fang 
26325049d8bSWei Fang /* Port MAC 0/1 Receive 1024 to 1522-Octet Packet Counter */
26425049d8bSWei Fang #define NETC_PM_R1522(a)		(0x1198 + (a) * 0x400)
26525049d8bSWei Fang 
26625049d8bSWei Fang /* Port MAC 0/1 Receive 1523 to Max-Octet Packet Counter */
26725049d8bSWei Fang #define NETC_PM_R1523X(a)		(0x11a0 + (a) * 0x400)
26825049d8bSWei Fang 
26925049d8bSWei Fang /* Port MAC 0/1 Receive Oversized Packet Counter */
27025049d8bSWei Fang #define NETC_PM_ROVR(a)			(0x11a8 + (a) * 0x400)
27125049d8bSWei Fang 
27225049d8bSWei Fang /* Port MAC 0/1 Receive Jabber Packet Counter */
27325049d8bSWei Fang #define NETC_PM_RJBR(a)			(0x11b0 + (a) * 0x400)
27425049d8bSWei Fang 
27525049d8bSWei Fang /* Port MAC 0/1 Receive Fragment Packet Counter */
27625049d8bSWei Fang #define NETC_PM_RFRG(a)			(0x11b8 + (a) * 0x400)
27725049d8bSWei Fang 
27825049d8bSWei Fang /* Port MAC 0/1 Receive Control Packet Counter */
27925049d8bSWei Fang #define NETC_PM_RCNP(a)			(0x11c0 + (a) * 0x400)
28025049d8bSWei Fang 
28125049d8bSWei Fang /* Port MAC 0/1 Receive Dropped Not Truncated Packets Counter */
28225049d8bSWei Fang #define NETC_PM_RDRNTP(a)		(0x11c8 + (a) * 0x400)
28325049d8bSWei Fang 
28425049d8bSWei Fang /* Port MAC 0/1 Transmit Ethernet Octets Counter */
28525049d8bSWei Fang #define NETC_PM_TEOCT(a)		(0x1200 + (a) * 0x400)
28625049d8bSWei Fang 
287beb0e54fSWei Fang /* Port MAC 0/1 Transmit Octets Counter */
288beb0e54fSWei Fang #define NETC_PM_TOCT(a)			(0x1208 + (a) * 0x400)
289beb0e54fSWei Fang 
29025049d8bSWei Fang /* Port MAC 0/1 Transmit Excessive Deferral Packet Counter */
29125049d8bSWei Fang #define NETC_PM_TEDFR(a)		(0x1210 + (a) * 0x400)
29225049d8bSWei Fang 
29325049d8bSWei Fang /* Port MAC 0/1 Transmit Valid Pause Frame Counter */
29425049d8bSWei Fang #define NETC_PM_TXPF(a)			(0x1218 + (a) * 0x400)
29525049d8bSWei Fang 
29625049d8bSWei Fang /* Port MAC 0/1 Transmit Frame Counter */
29725049d8bSWei Fang #define NETC_PM_TFRM(a)			(0x1220 + (a) * 0x400)
29825049d8bSWei Fang 
299beb0e54fSWei Fang /* Port MAC 0/1 Transmit Frame Check Sequence Error Counter */
300beb0e54fSWei Fang #define NETC_PM_TFCS(a)			(0x1228 + (a) * 0x400)
301beb0e54fSWei Fang 
302beb0e54fSWei Fang /* Port MAC 0/1 Transmit VLAN Frame Counter */
303beb0e54fSWei Fang #define NETC_PM_TVLAN(a)		(0x1230 + (a) * 0x400)
304beb0e54fSWei Fang 
30525049d8bSWei Fang /* Port MAC 0/1 Transmit Frame Error Counter */
30625049d8bSWei Fang #define NETC_PM_TERR(a)			(0x1238 + (a) * 0x400)
30725049d8bSWei Fang 
308beb0e54fSWei Fang /* Port MAC 0/1 Transmit Unicast Frame Counter */
309beb0e54fSWei Fang #define NETC_PM_TUCA(a)			(0x1240 + (a) * 0x400)
310beb0e54fSWei Fang 
31125049d8bSWei Fang /* Port MAC 0/1 Transmit Multicast Frame Counter */
31225049d8bSWei Fang #define NETC_PM_TMCA(a)			(0x1248 + (a) * 0x400)
31325049d8bSWei Fang 
31425049d8bSWei Fang /* Port MAC 0/1 Transmit Broadcast Frame Counter */
31525049d8bSWei Fang #define NETC_PM_TBCA(a)			(0x1250 + (a) * 0x400)
31625049d8bSWei Fang 
317beb0e54fSWei Fang /* Port MAC 0/1 Transmit Packets Counter */
318beb0e54fSWei Fang #define NETC_PM_TPKT(a)			(0x1260 + (a) * 0x400)
319beb0e54fSWei Fang 
320beb0e54fSWei Fang /* Port MAC 0/1 Transmit Undersized Packet Counter */
321beb0e54fSWei Fang #define NETC_PM_TUND(a)			(0x1268 + (a) * 0x400)
322beb0e54fSWei Fang 
32325049d8bSWei Fang /* Port MAC 0/1 Transmit 64-Octet Packet Counter */
32425049d8bSWei Fang #define NETC_PM_T64(a)			(0x1270 + (a) * 0x400)
32525049d8bSWei Fang 
32625049d8bSWei Fang /* Port MAC 0/1 Transmit 65 to 127-Octet Packet Counter */
32725049d8bSWei Fang #define NETC_PM_T127(a)			(0x1278 + (a) * 0x400)
32825049d8bSWei Fang 
32925049d8bSWei Fang /* Port MAC 0/1 Transmit 128 to 255-Octet Packet Counter */
33025049d8bSWei Fang #define NETC_PM_T255(a)			(0x1280 + (a) * 0x400)
33125049d8bSWei Fang 
33225049d8bSWei Fang /* Port MAC 0/1 Transmit 256 to 511-Octet Packet Counter */
33325049d8bSWei Fang #define NETC_PM_T511(a)			(0x1288 + (a) * 0x400)
33425049d8bSWei Fang 
33525049d8bSWei Fang /* Port MAC 0/1 Transmit 512 to 1023-Octet Packet Counter */
33625049d8bSWei Fang #define NETC_PM_T1023(a)		(0x1290 + (a) * 0x400)
33725049d8bSWei Fang 
33825049d8bSWei Fang /* Port MAC 0/1 Transmit 1024 to 1522-Octet Packet Counter */
33925049d8bSWei Fang #define NETC_PM_T1522(a)		(0x1298 + (a) * 0x400)
34025049d8bSWei Fang 
34125049d8bSWei Fang /* Port MAC 0/1 Transmit 1523 to TX_MTU-Octet Packet Counter */
34225049d8bSWei Fang #define NETC_PM_T1523X(a)		(0x12a0 + (a) * 0x400)
34325049d8bSWei Fang 
34425049d8bSWei Fang /* Port MAC 0/1 Transmit Control Packet Counter */
34525049d8bSWei Fang #define NETC_PM_TCNP(a)			(0x12c0 + (a) * 0x400)
34625049d8bSWei Fang 
34725049d8bSWei Fang /* Port MAC 0/1 Transmit Deferred Packet Counter */
34825049d8bSWei Fang #define NETC_PM_TDFR(a)			(0x12d0 + (a) * 0x400)
34925049d8bSWei Fang 
35025049d8bSWei Fang /* Port MAC 0/1 Transmit Multiple Collisions Counter */
35125049d8bSWei Fang #define NETC_PM_TMCOL(a)		(0x12d8 + (a) * 0x400)
35225049d8bSWei Fang 
35325049d8bSWei Fang /* Port MAC 0/1 Transmit Single Collision */
35425049d8bSWei Fang #define NETC_PM_TSCOL(a)		(0x12e0 + (a) * 0x400)
35525049d8bSWei Fang 
35625049d8bSWei Fang /* Port MAC 0/1 Transmit Late Collision Counter */
35725049d8bSWei Fang #define NETC_PM_TLCOL(a)		(0x12e8 + (a) * 0x400)
35825049d8bSWei Fang 
35925049d8bSWei Fang /* Port MAC 0/1 Transmit Excessive Collisions Counter */
36025049d8bSWei Fang #define NETC_PM_TECOL(a)		(0x12f0 + (a) * 0x400)
36125049d8bSWei Fang 
362beb0e54fSWei Fang /* Port MAC 0/1 Transmit Invalid Octets Counter */
363beb0e54fSWei Fang #define NETC_PM_TIOCT(a)		(0x12f8 + (a) * 0x400)
364beb0e54fSWei Fang 
365187fbae0SWei Fang #define NETC_PEMDIOCR			0x1c00
366187fbae0SWei Fang #define NETC_EMDIO_BASE			NETC_PEMDIOCR
367187fbae0SWei Fang 
368187fbae0SWei Fang /* Definition of global registers (read only) */
369187fbae0SWei Fang #define NETC_IPBRR0			0x0bf8
370187fbae0SWei Fang #define  IPBRR0_IP_REV			GENMASK(15, 0)
371187fbae0SWei Fang 
372187fbae0SWei Fang #endif
373