1 1.7 andvar /* $NetBSD: octeon_gmxreg.h,v 1.7 2022/05/23 21:46:12 andvar Exp $ */ 2 1.1 hikaru 3 1.1 hikaru /* 4 1.1 hikaru * Copyright (c) 2007 Internet Initiative Japan, Inc. 5 1.1 hikaru * All rights reserved. 6 1.1 hikaru * 7 1.1 hikaru * Redistribution and use in source and binary forms, with or without 8 1.1 hikaru * modification, are permitted provided that the following conditions 9 1.1 hikaru * are met: 10 1.1 hikaru * 1. Redistributions of source code must retain the above copyright 11 1.1 hikaru * notice, this list of conditions and the following disclaimer. 12 1.1 hikaru * 2. Redistributions in binary form must reproduce the above copyright 13 1.1 hikaru * notice, this list of conditions and the following disclaimer in the 14 1.1 hikaru * documentation and/or other materials provided with the distribution. 15 1.1 hikaru * 16 1.1 hikaru * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17 1.1 hikaru * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 1.1 hikaru * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 1.1 hikaru * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20 1.1 hikaru * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 1.1 hikaru * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 1.1 hikaru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 1.1 hikaru * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 1.1 hikaru * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 1.1 hikaru * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 1.1 hikaru * SUCH DAMAGE. 27 1.1 hikaru */ 28 1.1 hikaru 29 1.1 hikaru /* 30 1.1 hikaru * GMX Registers 31 1.1 hikaru */ 32 1.1 hikaru 33 1.1 hikaru #ifndef _OCTEON_GMXREG_H_ 34 1.1 hikaru #define _OCTEON_GMXREG_H_ 35 1.1 hikaru 36 1.1 hikaru #define GMX0_RX0_INT_REG 0x000 37 1.1 hikaru #define GMX0_RX0_INT_EN 0x008 38 1.1 hikaru #define GMX0_PRT0_CFG 0x010 39 1.1 hikaru #define GMX0_RX0_FRM_CTL 0x018 40 1.1 hikaru #define GMX0_RX0_FRM_CHK 0x020 41 1.1 hikaru #define GMX0_RX0_FRM_MIN 0x028 42 1.1 hikaru #define GMX0_RX0_FRM_MAX 0x030 43 1.1 hikaru #define GMX0_RX0_JABBER 0x038 44 1.1 hikaru #define GMX0_RX0_DECISION 0x040 45 1.1 hikaru #define GMX0_RX0_UDD_SKP 0x048 46 1.1 hikaru #define GMX0_RX0_STATS_CTL 0x050 47 1.1 hikaru #define GMX0_RX0_IFG 0x058 48 1.1 hikaru #define GMX0_RX0_RX_INBND 0x060 49 1.1 hikaru #define GMX0_RX0_STATS_PKTS 0x080 50 1.1 hikaru #define GMX0_RX0_STATS_OCTS 0x088 51 1.1 hikaru #define GMX0_RX0_STATS_PKTS_CTL 0x090 52 1.1 hikaru #define GMX0_RX0_STATS_OCTS_CTL 0x098 53 1.1 hikaru #define GMX0_RX0_STATS_PKTS_DMAC 0x0a0 54 1.1 hikaru #define GMX0_RX0_STATS_OCTS_DMAC 0x0a8 55 1.1 hikaru #define GMX0_RX0_STATS_PKTS_DRP 0x0b0 56 1.1 hikaru #define GMX0_RX0_STATS_OCTS_DRP 0x0b8 57 1.1 hikaru #define GMX0_RX0_STATS_PKTS_BAD 0x0c0 58 1.1 hikaru #define GMX0_RX0_ADR_CTL 0x100 59 1.1 hikaru #define GMX0_RX0_ADR_CAM_EN 0x108 60 1.1 hikaru #define GMX0_RX0_ADR_CAM0 0x180 61 1.1 hikaru #define GMX0_RX0_ADR_CAM1 0x188 62 1.1 hikaru #define GMX0_RX0_ADR_CAM2 0x190 63 1.1 hikaru #define GMX0_RX0_ADR_CAM3 0x198 64 1.1 hikaru #define GMX0_RX0_ADR_CAM4 0x1a0 65 1.1 hikaru #define GMX0_RX0_ADR_CAM5 0x1a8 66 1.1 hikaru #define GMX0_TX0_CLK 0x208 67 1.1 hikaru #define GMX0_TX0_THRESH 0x210 68 1.1 hikaru #define GMX0_TX0_APPEND 0x218 69 1.1 hikaru #define GMX0_TX0_SLOT 0x220 70 1.1 hikaru #define GMX0_TX0_BURST 0x228 71 1.1 hikaru #define GMX0_SMAC0 0x230 72 1.1 hikaru #define GMX0_TX0_PAUSE_PKT_TIME 0x238 73 1.1 hikaru #define GMX0_TX0_MIN_PKT 0x240 74 1.1 hikaru #define GMX0_TX0_PAUSE_PKT_INTERVAL 0x248 75 1.1 hikaru #define GMX0_TX0_SOFT_PAUSE 0x250 76 1.1 hikaru #define GMX0_TX0_PAUSE_TOGO 0x258 77 1.1 hikaru #define GMX0_TX0_PAUSE_ZERO 0x260 78 1.1 hikaru #define GMX0_TX0_STATS_CTL 0x268 79 1.1 hikaru #define GMX0_TX0_CTL 0x270 80 1.1 hikaru #define GMX0_TX0_STAT0 0x280 81 1.1 hikaru #define GMX0_TX0_STAT1 0x288 82 1.1 hikaru #define GMX0_TX0_STAT2 0x290 83 1.1 hikaru #define GMX0_TX0_STAT3 0x298 84 1.1 hikaru #define GMX0_TX0_STAT4 0x2a0 85 1.1 hikaru #define GMX0_TX0_STAT5 0x2a8 86 1.1 hikaru #define GMX0_TX0_STAT6 0x2b0 87 1.1 hikaru #define GMX0_TX0_STAT7 0x2b8 88 1.1 hikaru #define GMX0_TX0_STAT8 0x2c0 89 1.1 hikaru #define GMX0_TX0_STAT9 0x2c8 90 1.1 hikaru #define GMX0_BIST0 0x400 91 1.1 hikaru #define GMX0_RX_PRTS 0x410 92 1.1 hikaru #define GMX0_RX_BP_DROP0 0x420 93 1.1 hikaru #define GMX0_RX_BP_DROP1 0x428 94 1.1 hikaru #define GMX0_RX_BP_DROP2 0x430 95 1.1 hikaru #define GMX0_RX_BP_ON0 0x440 96 1.1 hikaru #define GMX0_RX_BP_ON1 0x448 97 1.1 hikaru #define GMX0_RX_BP_ON2 0x450 98 1.1 hikaru #define GMX0_RX_BP_OFF0 0x460 99 1.1 hikaru #define GMX0_RX_BP_OFF1 0x468 100 1.1 hikaru #define GMX0_RX_BP_OFF2 0x470 101 1.1 hikaru #define GMX0_TX_PRTS 0x480 102 1.1 hikaru #define GMX0_TX_IFG 0x488 103 1.1 hikaru #define GMX0_TX_JAM 0x490 104 1.1 hikaru #define GMX0_TX_COL_ATTEMPT 0x498 105 1.1 hikaru #define GMX0_TX_PAUSE_PKT_DMAC 0x4a0 106 1.1 hikaru #define GMX0_TX_PAUSE_PKT_TYPE 0x4a8 107 1.1 hikaru #define GMX0_TX_OVR_BP 0x4c8 108 1.1 hikaru #define GMX0_TX_BP 0x4d0 109 1.1 hikaru #define GMX0_TX_CORRUPT 0x4d8 110 1.1 hikaru #define GMX0_RX_PRT_INFO 0x4e8 111 1.1 hikaru #define GMX0_TX_LFSR 0x4f8 112 1.1 hikaru #define GMX0_TX_INT_REG 0x500 113 1.1 hikaru #define GMX0_TX_INT_EN 0x508 114 1.1 hikaru #define GMX0_NXA_ADR 0x510 115 1.1 hikaru #define GMX0_BAD_REG 0x518 116 1.1 hikaru #define GMX0_STAT_BP 0x520 117 1.1 hikaru #define GMX0_TX_CLK_MSK0 0x780 118 1.1 hikaru #define GMX0_TX_CLK_MSK1 0x788 119 1.1 hikaru #define GMX0_RX_TX_STATUS 0x7e8 120 1.1 hikaru #define GMX0_INF_MODE 0x7f8 121 1.1 hikaru 122 1.1 hikaru /* -------------------------------------------------------------------------- */ 123 1.1 hikaru 124 1.1 hikaru /* GMX Interrupt Registers */ 125 1.1 hikaru 126 1.1 hikaru #define RXN_INT_REG_XXX_63_19 UINT64_C(0xfffffffffff80000) 127 1.1 hikaru #define RXN_INT_REG_PHY_DUPX UINT64_C(0x0000000000040000) 128 1.1 hikaru #define RXN_INT_REG_PHY_SPD UINT64_C(0x0000000000020000) 129 1.1 hikaru #define RXN_INT_REG_PHY_LINK UINT64_C(0x0000000000010000) 130 1.1 hikaru #define RXN_INT_REG_IFGERR UINT64_C(0x0000000000008000) 131 1.1 hikaru #define RXN_INT_REG_COLDET UINT64_C(0x0000000000004000) 132 1.1 hikaru #define RXN_INT_REG_FALERR UINT64_C(0x0000000000002000) 133 1.1 hikaru #define RXN_INT_REG_RSVERR UINT64_C(0x0000000000001000) 134 1.1 hikaru #define RXN_INT_REG_PCTERR UINT64_C(0x0000000000000800) 135 1.1 hikaru #define RXN_INT_REG_OVRERR UINT64_C(0x0000000000000400) 136 1.1 hikaru #define RXN_INT_REG_NIBERR UINT64_C(0x0000000000000200) 137 1.1 hikaru #define RXN_INT_REG_SKPERR UINT64_C(0x0000000000000100) 138 1.1 hikaru #define RXN_INT_REG_RCVERR UINT64_C(0x0000000000000080) 139 1.1 hikaru #define RXN_INT_REG_LENERR UINT64_C(0x0000000000000040) 140 1.1 hikaru #define RXN_INT_REG_ALNERR UINT64_C(0x0000000000000020) 141 1.1 hikaru #define RXN_INT_REG_FCSERR UINT64_C(0x0000000000000010) 142 1.1 hikaru #define RXN_INT_REG_JABBER UINT64_C(0x0000000000000008) 143 1.1 hikaru #define RXN_INT_REG_MAXERR UINT64_C(0x0000000000000004) 144 1.1 hikaru #define RXN_INT_REG_CAREXT UINT64_C(0x0000000000000002) 145 1.1 hikaru #define RXN_INT_REG_MINERR UINT64_C(0x0000000000000001) 146 1.1 hikaru 147 1.1 hikaru /* GMX Interrupt-Enable Registers */ 148 1.1 hikaru 149 1.1 hikaru #define RXN_INT_EN_XXX_63_19 UINT64_C(0xfffffffffff80000) 150 1.1 hikaru #define RXN_INT_EN_PHY_DUPX UINT64_C(0x0000000000040000) 151 1.1 hikaru #define RXN_INT_EN_PHY_SPD UINT64_C(0x0000000000020000) 152 1.1 hikaru #define RXN_INT_EN_PHY_LINK UINT64_C(0x0000000000010000) 153 1.1 hikaru #define RXN_INT_EN_IFGERR UINT64_C(0x0000000000008000) 154 1.1 hikaru #define RXN_INT_EN_COLDET UINT64_C(0x0000000000004000) 155 1.1 hikaru #define RXN_INT_EN_FALERR UINT64_C(0x0000000000002000) 156 1.1 hikaru #define RXN_INT_EN_RSVERR UINT64_C(0x0000000000001000) 157 1.1 hikaru #define RXN_INT_EN_PCTERR UINT64_C(0x0000000000000800) 158 1.1 hikaru #define RXN_INT_EN_OVRERR UINT64_C(0x0000000000000400) 159 1.1 hikaru #define RXN_INT_EN_NIBERR UINT64_C(0x0000000000000200) 160 1.1 hikaru #define RXN_INT_EN_SKPERR UINT64_C(0x0000000000000100) 161 1.1 hikaru #define RXN_INT_EN_RCVERR UINT64_C(0x0000000000000080) 162 1.1 hikaru #define RXN_INT_EN_LENERR UINT64_C(0x0000000000000040) 163 1.1 hikaru #define RXN_INT_EN_ALNERR UINT64_C(0x0000000000000020) 164 1.1 hikaru #define RXN_INT_EN_FCSERR UINT64_C(0x0000000000000010) 165 1.1 hikaru #define RXN_INT_EN_JABBER UINT64_C(0x0000000000000008) 166 1.1 hikaru #define RXN_INT_EN_MAXERR UINT64_C(0x0000000000000004) 167 1.1 hikaru #define RXN_INT_EN_CAREXT UINT64_C(0x0000000000000002) 168 1.1 hikaru #define RXN_INT_EN_MINERR UINT64_C(0x0000000000000001) 169 1.1 hikaru 170 1.1 hikaru /* GMX Port Configuration Registers */ 171 1.1 hikaru 172 1.5 simonb #define PRTN_CFG_XXX_63_9 UINT64_C(0xfffffffffffffe00) 173 1.5 simonb #define PRTN_CFG_SPEED_MSB UINT64_C(0x0000000000000100) 174 1.5 simonb #define PRTN_CFG_XXX_7_4 UINT64_C(0x00000000000000f0) 175 1.1 hikaru #define PRTN_CFG_SLOTTIME UINT64_C(0x0000000000000008) 176 1.1 hikaru #define PRTN_CFG_DUPLEX UINT64_C(0x0000000000000004) 177 1.1 hikaru #define PRTN_CFG_SPEED UINT64_C(0x0000000000000002) 178 1.1 hikaru #define PRTN_CFG_EN UINT64_C(0x0000000000000001) 179 1.1 hikaru 180 1.1 hikaru /* Frame Control Registers */ 181 1.1 hikaru 182 1.1 hikaru #define RXN_FRM_CTL_XXX_63_11 UINT64_C(0xfffffffffffff800) 183 1.1 hikaru #define RXN_FRM_CTL_NULL_DIS UINT64_C(0x0000000000000400) 184 1.1 hikaru #define RXN_FRM_CTL_PRE_ALIGN UINT64_C(0x0000000000000200) 185 1.1 hikaru #define RXN_FRM_CTL_PAD_LEN UINT64_C(0x0000000000000100) 186 1.1 hikaru #define RXN_FRM_CTL_VLAN_LEN UINT64_C(0x0000000000000080) 187 1.1 hikaru #define RXN_FRM_CTL_PRE_FREE UINT64_C(0x0000000000000040) 188 1.1 hikaru #define RXN_FRM_CTL_CTL_SMAC UINT64_C(0x0000000000000020) 189 1.1 hikaru #define RXN_FRM_CTL_CTL_MCST UINT64_C(0x0000000000000010) 190 1.1 hikaru #define RXN_FRM_CTL_CTL_BCK UINT64_C(0x0000000000000008) 191 1.1 hikaru #define RXN_FRM_CTL_CTL_DRP UINT64_C(0x0000000000000004) 192 1.1 hikaru #define RXN_FRM_CTL_PRE_STRP UINT64_C(0x0000000000000002) 193 1.1 hikaru #define RXN_FRM_CTL_PRE_CHK UINT64_C(0x0000000000000001) 194 1.1 hikaru 195 1.1 hikaru /* Frame Check Registers */ 196 1.1 hikaru 197 1.1 hikaru #define RXN_FRM_CKK_XXX_63_10 UINT64_C(0xfffffffffffffc00) 198 1.1 hikaru #define RXN_FRM_CHK_NIBERR UINT64_C(0x0000000000000200) 199 1.1 hikaru #define RXN_FRM_CHK_SKPERR UINT64_C(0x0000000000000100) 200 1.1 hikaru #define RXN_FRM_CHK_RCVERR UINT64_C(0x0000000000000080) 201 1.1 hikaru #define RXN_FRM_CHK_LENERR UINT64_C(0x0000000000000040) 202 1.1 hikaru #define RXN_FRM_CHK_ALNERR UINT64_C(0x0000000000000020) 203 1.1 hikaru #define RXN_FRM_CHK_FCSERR UINT64_C(0x0000000000000010) 204 1.1 hikaru #define RXN_FRM_CHK_JABBER UINT64_C(0x0000000000000008) 205 1.1 hikaru #define RXN_FRM_CHK_MAXERR UINT64_C(0x0000000000000004) 206 1.1 hikaru #define RXN_FRM_CHK_CAREXT UINT64_C(0x0000000000000002) 207 1.1 hikaru #define RXN_FRM_CHK_MINERR UINT64_C(0x0000000000000001) 208 1.1 hikaru 209 1.1 hikaru /* Frame Minimum-Length Registers */ 210 1.1 hikaru 211 1.1 hikaru #define RXN_RRM_MIN_XXX_63_16 UINT64_C(0xffffffffffff0000) 212 1.1 hikaru #define RXN_RRM_MIN_LEN UINT64_C(0x000000000000ffff) 213 1.1 hikaru 214 1.1 hikaru /* Frame Maximun-Length Registers */ 215 1.1 hikaru 216 1.1 hikaru #define RXN_RRM_MAX_XXX_63_16 UINT64_C(0xffffffffffff0000) 217 1.1 hikaru #define RXN_RRM_MAX_LEN UINT64_C(0x000000000000ffff) 218 1.1 hikaru 219 1.1 hikaru /* GMX Maximun Packet-Size Registers */ 220 1.1 hikaru 221 1.1 hikaru #define RXN_JABBER_XXX_63_16 UINT64_C(0xffffffffffff0000) 222 1.1 hikaru #define RXN_JABBER_CNT UINT64_C(0x000000000000ffff) 223 1.1 hikaru 224 1.1 hikaru /* GMX Packet Decision Registers */ 225 1.1 hikaru 226 1.1 hikaru #define RXN_DECISION_XXX_63_5 UINT64_C(0xffffffffffffffe0) 227 1.1 hikaru #define RXN_DECISION_CNT UINT64_C(0x000000000000001f) 228 1.1 hikaru 229 1.1 hikaru /* GMX User-Defined Data Skip Registers */ 230 1.1 hikaru 231 1.1 hikaru #define RXN_UDD_SKP_XXX_63_9 UINT64_C(0xfffffffffffffe00) 232 1.1 hikaru #define RXN_UDD_SKP_FCSSEL UINT64_C(0x0000000000000100) 233 1.1 hikaru #define RXN_UDD_SKP_XXX_7 UINT64_C(0x0000000000000080) 234 1.1 hikaru #define RXN_UDD_SKP_LEN UINT64_C(0x000000000000007f) 235 1.1 hikaru 236 1.1 hikaru /* GMX RX Statistics Control Registers */ 237 1.1 hikaru 238 1.1 hikaru #define RXN_STATS_CTL_XXX_63_1 UINT64_C(0xfffffffffffffffe) 239 1.1 hikaru #define RXN_STATS_CTL_RD_CLR UINT64_C(0x0000000000000001) 240 1.1 hikaru 241 1.6 andvar /* GMX Minimum Interface-Gap Cycles Registers */ 242 1.1 hikaru 243 1.1 hikaru #define RXN_IFG_XXX_63_4 UINT64_C(0xfffffffffffffff0) 244 1.1 hikaru #define RXN_IFG_IFG UINT64_C(0x000000000000000f) 245 1.1 hikaru 246 1.1 hikaru /* InBand Link Status Registers */ 247 1.1 hikaru 248 1.1 hikaru #define RXN_RX_INBND_XXX_63_4 UINT64_C(0xfffffffffffffff0) 249 1.1 hikaru #define RXN_RX_INBND_DUPLEX UINT64_C(0x0000000000000008) 250 1.2 simonb #define RXN_RX_INBND_DUPLEX_HALF 0 251 1.2 simonb #define RXN_RX_INBND_DUPLEX_FULL 1 252 1.1 hikaru #define RXN_RX_INBND_SPEED UINT64_C(0x0000000000000006) 253 1.2 simonb #define RXN_RX_INBND_SPEED_2_5 0 254 1.2 simonb #define RXN_RX_INBND_SPEED_25 1 255 1.2 simonb #define RXN_RX_INBND_SPEED_125 2 256 1.2 simonb #define RXN_RX_INBND_SPEED_XXX_3 3 257 1.1 hikaru #define RXN_RX_INBND_STATUS UINT64_C(0x0000000000000001) 258 1.1 hikaru 259 1.1 hikaru /* GMX RX Good Packets Registers */ 260 1.1 hikaru 261 1.1 hikaru #define RXN_STATS_PKTS_XXX_63_32 UINT64_C(0xffffffff00000000) 262 1.1 hikaru #define RXN_STATS_PKTS_CNT UINT64_C(0x00000000ffffffff) 263 1.1 hikaru 264 1.1 hikaru /* GMX RX Good Packets Octet Registers */ 265 1.1 hikaru 266 1.1 hikaru #define RXN_STATS_OCTS_XXX_63_48 UINT64_C(0xffff000000000000) 267 1.1 hikaru #define RXN_STATS_OCTS_CNT UINT64_C(0x0000ffffffffffff) 268 1.1 hikaru 269 1.1 hikaru /* GMX RX Pause Packets Registers */ 270 1.1 hikaru 271 1.1 hikaru #define RXN_STATS_PKTS_CTL_XXX_63_32 UINT64_C(0xffffffff00000000) 272 1.1 hikaru #define RXN_STATS_PKTS_CTL_CNT UINT64_C(0x00000000ffffffff) 273 1.1 hikaru 274 1.1 hikaru /* GMX RX Pause Packets Octet Registers */ 275 1.1 hikaru 276 1.1 hikaru #define RXN_STATS_OCTS_CTL_XXX_63_48 UINT64_C(0xffff000000000000) 277 1.1 hikaru #define RXN_STATS_OCTS_CTL_CNT UINT64_C(0x0000ffffffffffff) 278 1.1 hikaru 279 1.1 hikaru /* GMX RX DMAC Packets Registers */ 280 1.1 hikaru 281 1.1 hikaru #define RXN_STATS_PKTS_DMAC_XXX_63_32 UINT64_C(0xffffffff00000000) 282 1.1 hikaru #define RXN_STATS_PKTS_DMAC_CNT UINT64_C(0x00000000ffffffff) 283 1.1 hikaru 284 1.1 hikaru /* GMX RX DMAC Packets Octet Registers */ 285 1.1 hikaru 286 1.1 hikaru #define RXN_STATS_OCTS_DMAC_XXX_63_48 UINT64_C(0xffff000000000000) 287 1.1 hikaru #define RXN_STATS_OCTS_DMAC_CNT UINT64_C(0x0000ffffffffffff) 288 1.1 hikaru 289 1.1 hikaru /* GMX RX Overflow Packets Registers */ 290 1.1 hikaru 291 1.1 hikaru #define RXN_STATS_PKTS_DRP_XXX_63_48 UINT64_C(0xffffffff00000000) 292 1.1 hikaru #define RXN_STATS_PKTS_DRP_CNT UINT64_C(0x00000000ffffffff) 293 1.1 hikaru 294 1.1 hikaru /* GMX RX Overflow Packets Octet Registers */ 295 1.1 hikaru 296 1.1 hikaru #define RXN_STATS_OCTS_DRP_XXX_63_48 UINT64_C(0xffff000000000000) 297 1.1 hikaru #define RXN_STATS_OCTS_DRP_CNT UINT64_C(0x0000ffffffffffff) 298 1.1 hikaru 299 1.1 hikaru /* GMX RX Bad Packets Registers */ 300 1.1 hikaru 301 1.1 hikaru #define RXN_STATS_PKTS_BAD_XXX_63_48 UINT64_C(0xffffffff00000000) 302 1.1 hikaru #define RXN_STATS_PKTS_BAD_CNT UINT64_C(0x00000000ffffffff) 303 1.1 hikaru 304 1.1 hikaru /* Address-Filtering Control Registers */ 305 1.1 hikaru 306 1.1 hikaru #define RXN_ADR_CTL_XXX_63_4 UINT64_C(0xfffffffffffffff0) 307 1.1 hikaru #define RXN_ADR_CTL_CAM_MODE UINT64_C(0x0000000000000008) 308 1.2 simonb #define RXN_ADR_CTL_CAM_MODE_REJECT 0 309 1.2 simonb #define RXN_ADR_CTL_CAM_MODE_ACCEPT 1 310 1.1 hikaru #define RXN_ADR_CTL_MCST UINT64_C(0x0000000000000006) 311 1.2 simonb #define RXN_ADR_CTL_MCST_AFCAM 0 312 1.2 simonb #define RXN_ADR_CTL_MCST_REJECT 1 313 1.2 simonb #define RXN_ADR_CTL_MCST_ACCEPT 2 314 1.2 simonb #define RXN_ADR_CTL_MCST_XXX_3 3 315 1.1 hikaru #define RXN_ADR_CTL_BCST UINT64_C(0x0000000000000001) 316 1.1 hikaru 317 1.1 hikaru /* Address-Filtering Control Enable Registers */ 318 1.1 hikaru 319 1.1 hikaru #define RXN_ADR_CAM_EN_XXX_63_8 UINT64_C(0xffffffffffffff00) 320 1.1 hikaru #define RXN_ADR_CAM_EN_EN UINT64_C(0x00000000000000ff) 321 1.1 hikaru 322 1.1 hikaru /* Address-Filtering CAM Control Registers */ 323 1.1 hikaru #define RXN_ADR_CAMN_ADR UINT64_C(0xffffffffffffffff) 324 1.1 hikaru 325 1.1 hikaru /* GMX TX Clock Generation Registers */ 326 1.1 hikaru 327 1.1 hikaru #define TXN_CLK_XXX_63_6 UINT64_C(0xffffffffffffffc0) 328 1.1 hikaru #define TXN_CLK_CLK_CNT UINT64_C(0x000000000000003f) 329 1.1 hikaru 330 1.1 hikaru /* TX Threshold Registers */ 331 1.1 hikaru 332 1.1 hikaru #define TXN_THRESH_XXX_63_6 UINT64_C(0xffffffffffffffc0) 333 1.1 hikaru #define TXN_THRESH_CNT UINT64_C(0x000000000000003f) 334 1.1 hikaru 335 1.1 hikaru /* TX Append Control Registers */ 336 1.1 hikaru 337 1.1 hikaru #define TXN_APPEND_XXX_63_4 UINT64_C(0xfffffffffffffff0) 338 1.1 hikaru #define TXN_APPEND_FORCE_FCS UINT64_C(0x0000000000000008) 339 1.1 hikaru #define TXN_APPEND_FCS UINT64_C(0x0000000000000004) 340 1.1 hikaru #define TXN_APPEND_PAD UINT64_C(0x0000000000000002) 341 1.1 hikaru #define TXN_APPEND_PREAMBLE UINT64_C(0x0000000000000001) 342 1.1 hikaru 343 1.1 hikaru /* TX Slottime Counter Registers */ 344 1.1 hikaru 345 1.1 hikaru #define TXN_SLOT_XXX_63_10 UINT64_C(0xfffffffffffffc00) 346 1.1 hikaru #define TXN_SLOT_SLOT UINT64_C(0x00000000000003ff) 347 1.1 hikaru 348 1.1 hikaru /* TX Burst-Counter Registers */ 349 1.1 hikaru 350 1.1 hikaru #define TXN_BURST_XXX_63_16 UINT64_C(0xffffffffffff0000) 351 1.1 hikaru #define TXN_BURST_BURST UINT64_C(0x000000000000ffff) 352 1.1 hikaru 353 1.1 hikaru /* RGMII SMAC Registers */ 354 1.1 hikaru 355 1.1 hikaru #define SMACN_XXX_63_48 UINT64_C(0xffff000000000000) 356 1.1 hikaru #define SMACN_SMAC UINT64_C(0x0000ffffffffffff) 357 1.1 hikaru 358 1.1 hikaru /* TX Pause Packet Pause-Time Registers */ 359 1.1 hikaru 360 1.1 hikaru #define TXN_PAUSE_PKT_TIME_XXX_63_16 UINT64_C(0xffffffffffff0000) 361 1.1 hikaru #define TXN_PAUSE_PKT_TIME_TIME UINT64_C(0x000000000000ffff) 362 1.1 hikaru 363 1.1 hikaru /* RGMII TX Minimum-Size-Packet Registers */ 364 1.1 hikaru 365 1.1 hikaru #define TXN_MIN_PKT_XXX_63_8 UINT64_C(0xffffffffffffff00) 366 1.1 hikaru #define TXN_MIN_PKT_MIN_SIZE UINT64_C(0x00000000000000ff) 367 1.1 hikaru 368 1.1 hikaru /* TX Pause-Packet Transmission-Interval Registers */ 369 1.1 hikaru 370 1.1 hikaru #define TXN_PAUSE_PKT_INTERVAL_XXX_63_16 UINT64_C(0xffffffffffff0000) 371 1.1 hikaru #define TXN_PAUSE_PKT_INTERVAL_INTERVAL UINT64_C(0x000000000000ffff) 372 1.1 hikaru 373 1.1 hikaru /* TX Software-Pause Registers */ 374 1.1 hikaru 375 1.1 hikaru #define TXN_SOFT_PAUSE_XXX_63_16 UINT64_C(0xffffffffffff0000) 376 1.1 hikaru #define TXN_SOFT_PAUSE_TIME UINT64_C(0x000000000000ffff) 377 1.1 hikaru 378 1.1 hikaru /* TX Time-to-Backpressure Registers */ 379 1.1 hikaru 380 1.1 hikaru #define TXN_PAUSE_TOGO_XXX_63_16 UINT64_C(0xffffffffffff0000) 381 1.1 hikaru #define TXN_PAUSE_TOGO_TIME UINT64_C(0x000000000000ffff) 382 1.1 hikaru 383 1.1 hikaru /* TX Pause-Zero-Enable Registers */ 384 1.1 hikaru 385 1.1 hikaru #define TXN_PAUSE_ZERO_XXX_63_1 UINT64_C(0xfffffffffffffffe) 386 1.1 hikaru #define TXN_PAUSE_ZERO_SEND UINT64_C(0x0000000000000001) 387 1.1 hikaru 388 1.1 hikaru /* GMX TX Statistics Control Registers */ 389 1.1 hikaru 390 1.1 hikaru #define TXN_STATS_CTL_XXX_63_1 UINT64_C(0xfffffffffffffffe) 391 1.1 hikaru #define TXN_STATS_CTL_RD_CLR UINT64_C(0x0000000000000001) 392 1.1 hikaru 393 1.1 hikaru /* GMX TX Transmit Control Registers */ 394 1.1 hikaru 395 1.1 hikaru #define TXN_CTL_XXX_63_2 UINT64_C(0xfffffffffffffffc) 396 1.1 hikaru #define TXN_CTL_XSDEF_EN UINT64_C(0x0000000000000002) 397 1.1 hikaru #define TXN_CTL_XSCOL_EN UINT64_C(0x0000000000000001) 398 1.1 hikaru 399 1.1 hikaru /* Transmit Statistics Registers 0 */ 400 1.1 hikaru 401 1.1 hikaru #define TXN_STAT0_XSDEF UINT64_C(0xffffffff00000000) 402 1.1 hikaru #define TXN_STAT0_XSCOL UINT64_C(0x00000000ffffffff) 403 1.1 hikaru 404 1.1 hikaru /* Transmit Statistics Registers 1 */ 405 1.1 hikaru 406 1.1 hikaru #define TXN_STAT1_SCOL UINT64_C(0xffffffff00000000) 407 1.1 hikaru #define TXN_STAT1_MSCOL UINT64_C(0x00000000ffffffff) 408 1.1 hikaru 409 1.1 hikaru /* Transmit Statistics Registers 2 */ 410 1.1 hikaru 411 1.1 hikaru #define TXN_STAT2_XXX_63_48 UINT64_C(0xffff000000000000) 412 1.1 hikaru #define TXN_STAT2_OCTS UINT64_C(0x0000ffffffffffff) 413 1.1 hikaru 414 1.1 hikaru /* Transmit Statistics Registers 3 */ 415 1.1 hikaru 416 1.1 hikaru #define TXN_STAT3_XXX_63_48 UINT64_C(0xffffffff00000000) 417 1.1 hikaru #define TXN_STAT3_PKTS UINT64_C(0x00000000ffffffff) 418 1.1 hikaru 419 1.1 hikaru /* Transmit Statistics Registers 4 */ 420 1.1 hikaru 421 1.1 hikaru #define TXN_STAT4_HIST1 UINT64_C(0xffffffff00000000) 422 1.1 hikaru #define TXN_STAT4_HIST0 UINT64_C(0x00000000ffffffff) 423 1.1 hikaru 424 1.1 hikaru /* Transmit Statistics Registers 5 */ 425 1.1 hikaru 426 1.1 hikaru #define TXN_STAT5_HIST3 UINT64_C(0xffffffff00000000) 427 1.1 hikaru #define TXN_STAT5_HIST2 UINT64_C(0x00000000ffffffff) 428 1.1 hikaru 429 1.1 hikaru /* Transmit Statistics Registers 6 */ 430 1.1 hikaru 431 1.1 hikaru #define TXN_STAT6_HIST5 UINT64_C(0xffffffff00000000) 432 1.1 hikaru #define TXN_STAT6_HIST4 UINT64_C(0x00000000ffffffff) 433 1.1 hikaru 434 1.1 hikaru /* Transmit Statistics Registers 7 */ 435 1.1 hikaru 436 1.1 hikaru #define TXN_STAT7_HIST7 UINT64_C(0xffffffff00000000) 437 1.1 hikaru #define TXN_STAT7_HIST6 UINT64_C(0x00000000ffffffff) 438 1.1 hikaru 439 1.1 hikaru /* Transmit Statistics Registers 8 */ 440 1.1 hikaru 441 1.1 hikaru #define TXN_STAT8_MCST UINT64_C(0xffffffff00000000) 442 1.1 hikaru #define TXN_STAT8_BCST UINT64_C(0x00000000ffffffff) 443 1.1 hikaru 444 1.1 hikaru /* Transmit Statistics Register 9 */ 445 1.1 hikaru 446 1.1 hikaru #define TXN_STAT9_UNDFLW UINT64_C(0xffffffff00000000) 447 1.1 hikaru #define TXN_STAT9_CTL UINT64_C(0x00000000ffffffff) 448 1.1 hikaru 449 1.1 hikaru /* BMX BIST Results Register */ 450 1.1 hikaru 451 1.1 hikaru #define BIST_XXX_63_10 UINT64_C(0xfffffffffffffc00) 452 1.1 hikaru #define BIST_STATUS UINT64_C(0x00000000000003ff) 453 1.1 hikaru 454 1.1 hikaru /* RX Ports Register */ 455 1.1 hikaru 456 1.1 hikaru #define RX_PRTS_XXX_63_3 UINT64_C(0xfffffffffffffff8) 457 1.1 hikaru #define RX_PRTS_PRTS UINT64_C(0x0000000000000007) 458 1.1 hikaru 459 1.1 hikaru /* RX FIFO Packet-Drop Registers */ 460 1.1 hikaru 461 1.1 hikaru #define RX_BP_DROPN_XXX_63_6 UINT64_C(0xffffffffffffffc0) 462 1.1 hikaru #define RX_BP_DROPN_MARK UINT64_C(0x000000000000003f) 463 1.1 hikaru 464 1.1 hikaru /* RX Backpressure On Registers */ 465 1.1 hikaru 466 1.1 hikaru #define RX_BP_ONN_XXX_63_9 UINT64_C(0xfffffffffffffe00) 467 1.1 hikaru #define RX_BP_ONN_MARK UINT64_C(0x00000000000001ff) 468 1.1 hikaru 469 1.1 hikaru /* RX Backpressure Off Registers */ 470 1.1 hikaru 471 1.1 hikaru #define RX_BP_OFFN_XXX_63_6 UINT64_C(0xffffffffffffffc0) 472 1.1 hikaru #define RX_BP_OFFN_MARK UINT64_C(0x000000000000003f) 473 1.1 hikaru 474 1.1 hikaru /* TX Ports Register */ 475 1.1 hikaru 476 1.1 hikaru #define TX_PRTS_XXX_63_5 UINT64_C(0xffffffffffffffe0) 477 1.1 hikaru #define TX_PRTS_PRTS UINT64_C(0x000000000000001f) 478 1.1 hikaru 479 1.1 hikaru /* TX Interframe Gap Register */ 480 1.1 hikaru 481 1.1 hikaru #define TX_IFG_XXX_63_8 UINT64_C(0xffffffffffffff00) 482 1.1 hikaru #define TX_IFG_IFG2 UINT64_C(0x00000000000000f0) 483 1.1 hikaru #define TX_IFG_IFG1 UINT64_C(0x000000000000000f) 484 1.1 hikaru 485 1.1 hikaru /* TX Jam Pattern Register */ 486 1.1 hikaru 487 1.1 hikaru #define TX_JAM_XXX_63_8 UINT64_C(0xffffffffffffff00) 488 1.1 hikaru #define TX_JAM_JAM UINT64_C(0x00000000000000ff) 489 1.1 hikaru 490 1.1 hikaru /* TX Collision Attempts Before Dropping Frame Register */ 491 1.1 hikaru 492 1.1 hikaru #define TX_COL_ATTEMPT_XXX_63_5 UINT64_C(0xffffffffffffffe0) 493 1.1 hikaru #define TX_COL_ATTEMPT_LIMIT UINT64_C(0x000000000000001f) 494 1.1 hikaru 495 1.1 hikaru /* TX Pause-Packet DMAC-Field Register */ 496 1.1 hikaru 497 1.1 hikaru #define TX_PAUSE_PKT_DMAC_XXX_63_48 UINT64_C(0xffff000000000000) 498 1.1 hikaru #define TX_PAUSE_PKT_DMAC_DMAC UINT64_C(0x0000ffffffffffff) 499 1.1 hikaru 500 1.1 hikaru /* TX Pause Packet Type Field Register */ 501 1.1 hikaru 502 1.1 hikaru #define TX_PAUSE_PKT_TYPE_XXX_63_16 UINT64_C(0xffffffffffff0000) 503 1.1 hikaru #define TX_PAUSE_PKT_TYPE_TYPE UINT64_C(0x000000000000ffff) 504 1.1 hikaru 505 1.1 hikaru /* TX Override Backpressure Register */ 506 1.1 hikaru 507 1.1 hikaru #define TX_OVR_BP_XXX_63_12 UINT64_C(0xfffffffffffff000) 508 1.1 hikaru #define TX_OVR_BP_XXX_11 UINT64_C(0x0000000000000800) 509 1.1 hikaru #define TX_OVR_BP_EN UINT64_C(0x0000000000000700) 510 1.1 hikaru #define TX_OVR_BP_XXX_7 UINT64_C(0x0000000000000080) 511 1.1 hikaru #define TX_OVR_BP_BP UINT64_C(0x0000000000000070) 512 1.1 hikaru #define TX_OVR_BP_XXX_3 UINT64_C(0x0000000000000008) 513 1.1 hikaru #define TX_OVR_BP_IGN_FULL UINT64_C(0x0000000000000007) 514 1.1 hikaru 515 1.1 hikaru /* TX Override Backpressure Register */ 516 1.1 hikaru 517 1.1 hikaru #define TX_OVR_BP_XXX_63_12 UINT64_C(0xfffffffffffff000) 518 1.1 hikaru #define TX_OVR_BP_XXX_11 UINT64_C(0x0000000000000800) 519 1.1 hikaru #define TX_OVR_BP_EN UINT64_C(0x0000000000000700) 520 1.1 hikaru #define TX_OVR_BP_XXX_7 UINT64_C(0x0000000000000080) 521 1.1 hikaru #define TX_OVR_BP_BP UINT64_C(0x0000000000000070) 522 1.1 hikaru #define TX_OVR_BP_XXX_3 UINT64_C(0x0000000000000008) 523 1.1 hikaru #define TX_OVR_BP_IGN_FULL UINT64_C(0x0000000000000007) 524 1.1 hikaru 525 1.1 hikaru /* TX Backpressure Status Register */ 526 1.1 hikaru 527 1.1 hikaru #define TX_BP_SR_XXX_63_3 UINT64_C(0xfffffffffffffff8) 528 1.1 hikaru #define TX_BP_SR_BP UINT64_C(0x0000000000000007) 529 1.1 hikaru 530 1.1 hikaru /* TX Corrupt Packets Register */ 531 1.1 hikaru 532 1.1 hikaru #define TX_CORRUPT_XXX_63_3 UINT64_C(0xfffffffffffffff8) 533 1.1 hikaru #define TX_CORRUPT_CORRUPT UINT64_C(0x0000000000000007) 534 1.1 hikaru 535 1.1 hikaru /* RX Port State Information Register */ 536 1.1 hikaru 537 1.1 hikaru #define RX_PRT_INFO_XXX_63_19 UINT64_C(0xfffffffffff80000) 538 1.1 hikaru #define RX_PRT_INFO_DROP UINT64_C(0x0000000000070000) 539 1.1 hikaru #define RX_PRT_INFO_XXX_15_3 UINT64_C(0x000000000000fff8) 540 1.1 hikaru #define RX_PRT_INFO_COMMIT UINT64_C(0x0000000000000007) 541 1.1 hikaru 542 1.1 hikaru /* TX LFSR Register */ 543 1.1 hikaru 544 1.1 hikaru #define TX_LFSR_XXX_63_16 UINT64_C(0xffffffffffff0000) 545 1.1 hikaru #define TX_LFSR_LFSR UINT64_C(0x000000000000ffff) 546 1.1 hikaru 547 1.1 hikaru /* TX Interrupt Register */ 548 1.1 hikaru 549 1.1 hikaru #define TX_INT_REG_XXX_63_20 UINT64_C(0xfffffffffff00000) 550 1.1 hikaru #define TX_INT_REG_XXX_19 UINT64_C(0x0000000000080000) 551 1.1 hikaru #define TX_INT_REG_LATE_COL UINT64_C(0x0000000000070000) 552 1.1 hikaru #define TX_INT_REG_XXX_15 UINT64_C(0x0000000000008000) 553 1.1 hikaru #define TX_INT_REG_XSDEF UINT64_C(0x0000000000007000) 554 1.1 hikaru #define TX_INT_REG_XXX_11 UINT64_C(0x0000000000000800) 555 1.1 hikaru #define TX_INT_REG_XSCOL UINT64_C(0x0000000000000700) 556 1.1 hikaru #define TX_INT_REG_XXX_7_5 UINT64_C(0x00000000000000e0) 557 1.1 hikaru #define TX_INT_REG_UNDFLW UINT64_C(0x000000000000001c) 558 1.1 hikaru #define TX_INT_REG_XXX_1 UINT64_C(0x0000000000000002) 559 1.1 hikaru #define TX_INT_REG_PKO_NXA UINT64_C(0x0000000000000001) 560 1.1 hikaru 561 1.1 hikaru /* TX Interrupt Register */ 562 1.1 hikaru 563 1.1 hikaru #define TX_INT_EN_XXX_63_20 UINT64_C(0xfffffffffff00000) 564 1.1 hikaru #define TX_INT_EN_XXX_19 UINT64_C(0x0000000000080000) 565 1.1 hikaru #define TX_INT_EN_LATE_COL UINT64_C(0x0000000000070000) 566 1.1 hikaru #define TX_INT_EN_XXX_15 UINT64_C(0x0000000000008000) 567 1.1 hikaru #define TX_INT_EN_XSDEF UINT64_C(0x0000000000007000) 568 1.1 hikaru #define TX_INT_EN_XXX_11 UINT64_C(0x0000000000000800) 569 1.1 hikaru #define TX_INT_EN_XSCOL UINT64_C(0x0000000000000700) 570 1.1 hikaru #define TX_INT_EN_XXX_7_5 UINT64_C(0x00000000000000e0) 571 1.1 hikaru #define TX_INT_EN_UNDFLW UINT64_C(0x000000000000001c) 572 1.1 hikaru #define TX_INT_EN_XXX_1 UINT64_C(0x0000000000000002) 573 1.1 hikaru #define TX_INT_EN_PKO_NXA UINT64_C(0x0000000000000001) 574 1.1 hikaru 575 1.1 hikaru /* Address-out-of-Range Error Register */ 576 1.1 hikaru 577 1.1 hikaru #define NXA_ADR_XXX_63_6 UINT64_C(0xffffffffffffffc0) 578 1.1 hikaru #define NXA_ADR_PRT UINT64_C(0x000000000000003f) 579 1.1 hikaru 580 1.1 hikaru /* GMX Miscellaneous Error Register */ 581 1.1 hikaru 582 1.1 hikaru #define BAD_REG_XXX_63_31 UINT64_C(0xffffffff80000000) 583 1.1 hikaru #define BAD_REG_INB_NXA UINT64_C(0x0000000078000000) 584 1.1 hikaru #define BAD_REG_STATOVR UINT64_C(0x0000000004000000) 585 1.1 hikaru #define BAD_REG_XXX_25 UINT64_C(0x0000000002000000) 586 1.1 hikaru #define BAD_REG_LOSTSTAT UINT64_C(0x0000000001c00000) 587 1.1 hikaru #define BAD_REG_XXX_21_18 UINT64_C(0x00000000003c0000) 588 1.1 hikaru #define BAD_REG_XXX_17_5 UINT64_C(0x000000000003ffe0) 589 1.1 hikaru #define BAD_REG_OUT_OVR UINT64_C(0x000000000000001c) 590 1.1 hikaru #define BAD_REG_XXX_1_0 UINT64_C(0x0000000000000003) 591 1.1 hikaru 592 1.1 hikaru /* GMX Backpressure Statistics Register */ 593 1.1 hikaru 594 1.1 hikaru #define STAT_BP_XXX_63_17 UINT64_C(0xfffffffffffe0000) 595 1.1 hikaru #define STAT_BP_BP UINT64_C(0x0000000000010000) 596 1.1 hikaru #define STAT_BP_CNT UINT64_C(0x000000000000ffff) 597 1.1 hikaru 598 1.1 hikaru /* Mode Change Mask Registers */ 599 1.1 hikaru 600 1.1 hikaru #define TX_CLK_MSKN_XXX_63_1 UINT64_C(0xfffffffffffffffe) 601 1.1 hikaru #define TX_CLK_MSKN_MSK UINT64_C(0x0000000000000001) 602 1.1 hikaru 603 1.1 hikaru /* GMX RX/TX Status Register */ 604 1.1 hikaru 605 1.1 hikaru #define RX_TX_STATUS_XXX_63_7 UINT64_C(0xffffffffffffff80) 606 1.1 hikaru #define RX_TX_STATUS_TX UINT64_C(0x0000000000000070) 607 1.1 hikaru #define RX_TX_STATUS_XXX_3 UINT64_C(0x0000000000000008) 608 1.1 hikaru #define RX_TX_STATUS_RX UINT64_C(0x0000000000000007) 609 1.1 hikaru 610 1.1 hikaru /* Interface Mode Register */ 611 1.1 hikaru 612 1.1 hikaru #define INF_MODE_XXX_63_3 UINT64_C(0xfffffffffffffff8) 613 1.1 hikaru #define INF_MODE_P0MII UINT64_C(0x0000000000000004) 614 1.1 hikaru #define INF_MODE_EN UINT64_C(0x0000000000000002) 615 1.1 hikaru #define INF_MODE_TYPE UINT64_C(0x0000000000000001) 616 1.5 simonb /* Interface mode, applicable on CN68xx and CN7xxx (?) */ 617 1.5 simonb #define INF_MODE_MODE UINT64_C(0x0000000000000070) 618 1.5 simonb #define INF_MODE_MODE_SGMII UINT64_C(0x0000000000000020) 619 1.5 simonb #define INF_MODE_MODE_XAUI UINT64_C(0x0000000000000030) 620 1.5 simonb 621 1.5 simonb #define MIO_QLM_CFG(x) (UINT64_C(0x0001180000001590) + (x)*8) 622 1.5 simonb 623 1.5 simonb #define MIO_QLM_CFG_CFG UINT64_C(0x000000000000000f) 624 1.1 hikaru 625 1.1 hikaru /* -------------------------------------------------------------------------- */ 626 1.1 hikaru 627 1.1 hikaru /* for bus_space(9) */ 628 1.1 hikaru 629 1.5 simonb #define GMX_PORT_NUNITS (5 * 16) 630 1.5 simonb #define GMX_PORT_NUM(g, i) ((g) * 16 + (i)) 631 1.5 simonb #define GMX_PORT_IFACE(port) ((port) / 16) 632 1.5 simonb #define GMX_PORT_INDEX(port) ((port) % 16) 633 1.5 simonb 634 1.5 simonb #define GMX_BLOCK_SIZE 0x8000000 635 1.5 simonb #define GMX_CN68XX_BLOCK_SIZE 0x100000 /* different on CN68XX only */ 636 1.5 simonb 637 1.5 simonb #define GMX0_BASE_PORT0 UINT64_C(0x0001180008000000) 638 1.5 simonb #define GMX_PORT_SIZE 0x800 639 1.5 simonb #define GMX_IF_SIZE(n) (GMX_PORT_SIZE * (n)) 640 1.5 simonb #define GMX_BASE_PORT(n, m) /* address of GMX(n) * PORT(m) */ \ 641 1.5 simonb (GMX0_BASE_PORT0 + (n) * GMX_BLOCK_SIZE + GMX_IF_SIZE(m)) 642 1.5 simonb #define GMX_CN68XX_BASE_PORT(n, m) /* address of GMX(n) * PORT(m) */ \ 643 1.5 simonb (GMX0_BASE_PORT0 + (n) * GMX_CN68XX_BLOCK_SIZE + GMX_IF_SIZE(m)) 644 1.5 simonb 645 1.5 simonb /* -------------------------------------------------------------------------- */ 646 1.5 simonb 647 1.7 andvar /* Low-level SGMII link control */ 648 1.5 simonb 649 1.5 simonb #define PCS_BASE(g, i) (UINT64_C(0x00011800b0001000) + 0x8000000 * (g) + 0x400 * (i)) 650 1.5 simonb #define PCS_SIZE 0x98 651 1.1 hikaru 652 1.5 simonb #define PCS_MR_CONTROL 0x00 653 1.5 simonb #define PCS_MR_STATUS 0x08 654 1.5 simonb #define PCS_LINK_TIMER_COUNT 0x40 655 1.5 simonb #define PCS_MISC_CTL 0x78 656 1.5 simonb 657 1.5 simonb #define PCS_MR_CONTROL_RES_16_63 UINT64_C(0xffffffffffff0000) 658 1.5 simonb #define PCS_MR_CONTROL_RESET UINT64_C(0x0000000000008000) 659 1.5 simonb #define PCS_MR_CONTROL_LOOPBCK1 UINT64_C(0x0000000000004000) 660 1.5 simonb #define PCS_MR_CONTROL_SPDLSB UINT64_C(0x0000000000002000) 661 1.5 simonb #define PCS_MR_CONTROL_AN_EN UINT64_C(0x0000000000001000) 662 1.5 simonb #define PCS_MR_CONTROL_PWR_DN UINT64_C(0x0000000000000800) 663 1.5 simonb #define PCS_MR_CONTROL_RES_10_10 UINT64_C(0x0000000000000400) 664 1.5 simonb #define PCS_MR_CONTROL_RST_AN UINT64_C(0x0000000000000200) 665 1.5 simonb #define PCS_MR_CONTROL_DUPLEX UINT64_C(0x0000000000000100) 666 1.5 simonb #define PCS_MR_CONTROL_COLTST UINT64_C(0x0000000000000080) 667 1.5 simonb #define PCS_MR_CONTROL_SPDMSB UINT64_C(0x0000000000000040) 668 1.5 simonb #define PCS_MR_CONTROL_UNI UINT64_C(0x0000000000000020) 669 1.5 simonb #define PCS_MR_CONTROL_RES_0_4 UINT64_C(0x000000000000001f) 670 1.5 simonb 671 1.5 simonb #define PCS_MR_STATUS_RES_16_63 UINT64_C(0xffffffffffff0000) 672 1.5 simonb #define PCS_MR_STATUS_HUN_T4 UINT64_C(0x0000000000008000) 673 1.5 simonb #define PCS_MR_STATUS_HUN_XFD UINT64_C(0x0000000000004000) 674 1.5 simonb #define PCS_MR_STATUS_HUN_XHD UINT64_C(0x0000000000002000) 675 1.5 simonb #define PCS_MR_STATUS_TEN_FD UINT64_C(0x0000000000001000) 676 1.5 simonb #define PCS_MR_STATUS_TEN_HD UINT64_C(0x0000000000000800) 677 1.5 simonb #define PCS_MR_STATUS_HUN_T2FD UINT64_C(0x0000000000000400) 678 1.5 simonb #define PCS_MR_STATUS_HUN_T2HD UINT64_C(0x0000000000000200) 679 1.5 simonb #define PCS_MR_STATUS_EXT_ST UINT64_C(0x0000000000000100) 680 1.5 simonb #define PCS_MR_STATUS_RES_7_7 UINT64_C(0x0000000000000080) 681 1.5 simonb #define PCS_MR_STATUS_PRB_SUP UINT64_C(0x0000000000000040) 682 1.5 simonb #define PCS_MR_STATUS_AN_CPT UINT64_C(0x0000000000000020) 683 1.5 simonb #define PCS_MR_STATUS_RM_FLT UINT64_C(0x0000000000000010) 684 1.5 simonb #define PCS_MR_STATUS_AN_ABIL UINT64_C(0x0000000000000008) 685 1.5 simonb #define PCS_MR_STATUS_LNK_ST UINT64_C(0x0000000000000004) 686 1.5 simonb #define PCS_MR_STATUS_RES_1_1 UINT64_C(0x0000000000000002) 687 1.5 simonb #define PCS_MR_STATUS_EXTND UINT64_C(0x0000000000000001) 688 1.5 simonb 689 1.5 simonb #define PCS_LINK_TIMER_COUNT_MASK UINT64_C(0x000000000000ffff) 690 1.5 simonb 691 1.5 simonb #define PCS_MISC_CTL_SGMII UINT64_C(0x0000000000001000) 692 1.5 simonb #define PCS_MISC_CTL_GMXENO UINT64_C(0x0000000000000800) 693 1.5 simonb #define PCS_MISC_CTL_LOOPBCK2 UINT64_C(0x0000000000000400) 694 1.5 simonb #define PCS_MISC_CTL_MAC_PHY UINT64_C(0x0000000000000200) 695 1.5 simonb #define PCS_MISC_CTL_MODE UINT64_C(0x0000000000000100) 696 1.5 simonb #define PCS_MISC_CTL_AN_OVRD UINT64_C(0x0000000000000080) 697 1.5 simonb #define PCS_MISC_CTL_SAMP_PT UINT64_C(0x000000000000007f) 698 1.1 hikaru 699 1.1 hikaru #endif /* _OCTEON_GMXREG_H_ */ 700