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