1 /***********************license start*************** 2 * Author: Cavium Networks 3 * 4 * Contact: support@caviumnetworks.com 5 * This file is part of the OCTEON SDK 6 * 7 * Copyright (c) 2003-2012 Cavium Networks 8 * 9 * This file is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License, Version 2, as 11 * published by the Free Software Foundation. 12 * 13 * This file is distributed in the hope that it will be useful, but 14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16 * NONINFRINGEMENT. See the GNU General Public License for more 17 * details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this file; if not, write to the Free Software 21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22 * or visit http://www.gnu.org/licenses/. 23 * 24 * This file may also be available under a different license from Cavium. 25 * Contact Cavium Networks for more information 26 ***********************license end**************************************/ 27 28 #ifndef __CVMX_PCSX_DEFS_H__ 29 #define __CVMX_PCSX_DEFS_H__ 30 31 static inline uint64_t CVMX_PCSX_ANX_ADV_REG(unsigned long offset, unsigned long block_id) 32 { 33 switch (cvmx_get_octeon_family()) { 34 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 35 return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 36 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 37 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 38 return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 39 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 40 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 41 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 42 return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 43 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 44 return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 45 } 46 return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 47 } 48 49 static inline uint64_t CVMX_PCSX_ANX_EXT_ST_REG(unsigned long offset, unsigned long block_id) 50 { 51 switch (cvmx_get_octeon_family()) { 52 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 53 return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 54 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 55 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 56 return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 57 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 58 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 59 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 60 return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 61 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 62 return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 63 } 64 return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 65 } 66 67 static inline uint64_t CVMX_PCSX_ANX_LP_ABIL_REG(unsigned long offset, unsigned long block_id) 68 { 69 switch (cvmx_get_octeon_family()) { 70 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 71 return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 72 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 73 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 74 return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 75 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 76 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 77 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 78 return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 79 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 80 return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 81 } 82 return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 83 } 84 85 static inline uint64_t CVMX_PCSX_ANX_RESULTS_REG(unsigned long offset, unsigned long block_id) 86 { 87 switch (cvmx_get_octeon_family()) { 88 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 89 return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 90 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 91 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 92 return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 93 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 94 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 95 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 96 return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 97 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 98 return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 99 } 100 return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 101 } 102 103 static inline uint64_t CVMX_PCSX_INTX_EN_REG(unsigned long offset, unsigned long block_id) 104 { 105 switch (cvmx_get_octeon_family()) { 106 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 107 return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 108 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 109 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 110 return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 111 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 112 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 113 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 114 return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 115 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 116 return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 117 } 118 return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 119 } 120 121 static inline uint64_t CVMX_PCSX_INTX_REG(unsigned long offset, unsigned long block_id) 122 { 123 switch (cvmx_get_octeon_family()) { 124 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 125 return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 126 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 127 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 128 return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 129 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 130 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 131 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 132 return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 133 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 134 return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 135 } 136 return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 137 } 138 139 static inline uint64_t CVMX_PCSX_LINKX_TIMER_COUNT_REG(unsigned long offset, unsigned long block_id) 140 { 141 switch (cvmx_get_octeon_family()) { 142 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 143 return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 144 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 145 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 146 return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 147 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 148 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 149 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 150 return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 151 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 152 return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 153 } 154 return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 155 } 156 157 static inline uint64_t CVMX_PCSX_LOG_ANLX_REG(unsigned long offset, unsigned long block_id) 158 { 159 switch (cvmx_get_octeon_family()) { 160 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 161 return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 162 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 163 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 164 return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 165 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 166 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 167 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 168 return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 169 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 170 return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 171 } 172 return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 173 } 174 175 static inline uint64_t CVMX_PCSX_MISCX_CTL_REG(unsigned long offset, unsigned long block_id) 176 { 177 switch (cvmx_get_octeon_family()) { 178 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 179 return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 180 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 181 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 182 return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 183 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 184 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 185 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 186 return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 187 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 188 return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 189 } 190 return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 191 } 192 193 static inline uint64_t CVMX_PCSX_MRX_CONTROL_REG(unsigned long offset, unsigned long block_id) 194 { 195 switch (cvmx_get_octeon_family()) { 196 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 197 return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 198 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 199 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 200 return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 201 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 202 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 203 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 204 return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 205 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 206 return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 207 } 208 return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 209 } 210 211 static inline uint64_t CVMX_PCSX_MRX_STATUS_REG(unsigned long offset, unsigned long block_id) 212 { 213 switch (cvmx_get_octeon_family()) { 214 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 215 return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 216 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 217 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 218 return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 219 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 220 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 221 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 222 return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 223 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 224 return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 225 } 226 return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 227 } 228 229 static inline uint64_t CVMX_PCSX_RXX_STATES_REG(unsigned long offset, unsigned long block_id) 230 { 231 switch (cvmx_get_octeon_family()) { 232 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 233 return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 234 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 235 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 236 return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 237 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 238 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 239 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 240 return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 241 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 242 return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 243 } 244 return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 245 } 246 247 static inline uint64_t CVMX_PCSX_RXX_SYNC_REG(unsigned long offset, unsigned long block_id) 248 { 249 switch (cvmx_get_octeon_family()) { 250 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 251 return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 252 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 253 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 254 return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 255 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 256 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 257 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 258 return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 259 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 260 return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 261 } 262 return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 263 } 264 265 static inline uint64_t CVMX_PCSX_SGMX_AN_ADV_REG(unsigned long offset, unsigned long block_id) 266 { 267 switch (cvmx_get_octeon_family()) { 268 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 269 return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 270 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 271 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 272 return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 273 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 274 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 275 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 276 return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 277 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 278 return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 279 } 280 return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 281 } 282 283 static inline uint64_t CVMX_PCSX_SGMX_LP_ADV_REG(unsigned long offset, unsigned long block_id) 284 { 285 switch (cvmx_get_octeon_family()) { 286 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 287 return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 288 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 289 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 290 return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 291 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 292 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 293 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 294 return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 295 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 296 return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 297 } 298 return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 299 } 300 301 static inline uint64_t CVMX_PCSX_TXX_STATES_REG(unsigned long offset, unsigned long block_id) 302 { 303 switch (cvmx_get_octeon_family()) { 304 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 305 return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 306 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 307 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 308 return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 309 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 310 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 311 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 312 return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 313 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 314 return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 315 } 316 return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 317 } 318 319 static inline uint64_t CVMX_PCSX_TX_RXX_POLARITY_REG(unsigned long offset, unsigned long block_id) 320 { 321 switch (cvmx_get_octeon_family()) { 322 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 323 return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 324 case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 325 case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 326 return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 327 case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 328 case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 329 case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 330 return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 331 case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 332 return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x4000ull) * 1024; 333 } 334 return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x20000ull) * 1024; 335 } 336 337 union cvmx_pcsx_anx_adv_reg { 338 uint64_t u64; 339 struct cvmx_pcsx_anx_adv_reg_s { 340 #ifdef __BIG_ENDIAN_BITFIELD 341 uint64_t reserved_16_63:48; 342 uint64_t np:1; 343 uint64_t reserved_14_14:1; 344 uint64_t rem_flt:2; 345 uint64_t reserved_9_11:3; 346 uint64_t pause:2; 347 uint64_t hfd:1; 348 uint64_t fd:1; 349 uint64_t reserved_0_4:5; 350 #else 351 uint64_t reserved_0_4:5; 352 uint64_t fd:1; 353 uint64_t hfd:1; 354 uint64_t pause:2; 355 uint64_t reserved_9_11:3; 356 uint64_t rem_flt:2; 357 uint64_t reserved_14_14:1; 358 uint64_t np:1; 359 uint64_t reserved_16_63:48; 360 #endif 361 } s; 362 struct cvmx_pcsx_anx_adv_reg_s cn52xx; 363 struct cvmx_pcsx_anx_adv_reg_s cn52xxp1; 364 struct cvmx_pcsx_anx_adv_reg_s cn56xx; 365 struct cvmx_pcsx_anx_adv_reg_s cn56xxp1; 366 struct cvmx_pcsx_anx_adv_reg_s cn61xx; 367 struct cvmx_pcsx_anx_adv_reg_s cn63xx; 368 struct cvmx_pcsx_anx_adv_reg_s cn63xxp1; 369 struct cvmx_pcsx_anx_adv_reg_s cn66xx; 370 struct cvmx_pcsx_anx_adv_reg_s cn68xx; 371 struct cvmx_pcsx_anx_adv_reg_s cn68xxp1; 372 struct cvmx_pcsx_anx_adv_reg_s cnf71xx; 373 }; 374 375 union cvmx_pcsx_anx_ext_st_reg { 376 uint64_t u64; 377 struct cvmx_pcsx_anx_ext_st_reg_s { 378 #ifdef __BIG_ENDIAN_BITFIELD 379 uint64_t reserved_16_63:48; 380 uint64_t thou_xfd:1; 381 uint64_t thou_xhd:1; 382 uint64_t thou_tfd:1; 383 uint64_t thou_thd:1; 384 uint64_t reserved_0_11:12; 385 #else 386 uint64_t reserved_0_11:12; 387 uint64_t thou_thd:1; 388 uint64_t thou_tfd:1; 389 uint64_t thou_xhd:1; 390 uint64_t thou_xfd:1; 391 uint64_t reserved_16_63:48; 392 #endif 393 } s; 394 struct cvmx_pcsx_anx_ext_st_reg_s cn52xx; 395 struct cvmx_pcsx_anx_ext_st_reg_s cn52xxp1; 396 struct cvmx_pcsx_anx_ext_st_reg_s cn56xx; 397 struct cvmx_pcsx_anx_ext_st_reg_s cn56xxp1; 398 struct cvmx_pcsx_anx_ext_st_reg_s cn61xx; 399 struct cvmx_pcsx_anx_ext_st_reg_s cn63xx; 400 struct cvmx_pcsx_anx_ext_st_reg_s cn63xxp1; 401 struct cvmx_pcsx_anx_ext_st_reg_s cn66xx; 402 struct cvmx_pcsx_anx_ext_st_reg_s cn68xx; 403 struct cvmx_pcsx_anx_ext_st_reg_s cn68xxp1; 404 struct cvmx_pcsx_anx_ext_st_reg_s cnf71xx; 405 }; 406 407 union cvmx_pcsx_anx_lp_abil_reg { 408 uint64_t u64; 409 struct cvmx_pcsx_anx_lp_abil_reg_s { 410 #ifdef __BIG_ENDIAN_BITFIELD 411 uint64_t reserved_16_63:48; 412 uint64_t np:1; 413 uint64_t ack:1; 414 uint64_t rem_flt:2; 415 uint64_t reserved_9_11:3; 416 uint64_t pause:2; 417 uint64_t hfd:1; 418 uint64_t fd:1; 419 uint64_t reserved_0_4:5; 420 #else 421 uint64_t reserved_0_4:5; 422 uint64_t fd:1; 423 uint64_t hfd:1; 424 uint64_t pause:2; 425 uint64_t reserved_9_11:3; 426 uint64_t rem_flt:2; 427 uint64_t ack:1; 428 uint64_t np:1; 429 uint64_t reserved_16_63:48; 430 #endif 431 } s; 432 struct cvmx_pcsx_anx_lp_abil_reg_s cn52xx; 433 struct cvmx_pcsx_anx_lp_abil_reg_s cn52xxp1; 434 struct cvmx_pcsx_anx_lp_abil_reg_s cn56xx; 435 struct cvmx_pcsx_anx_lp_abil_reg_s cn56xxp1; 436 struct cvmx_pcsx_anx_lp_abil_reg_s cn61xx; 437 struct cvmx_pcsx_anx_lp_abil_reg_s cn63xx; 438 struct cvmx_pcsx_anx_lp_abil_reg_s cn63xxp1; 439 struct cvmx_pcsx_anx_lp_abil_reg_s cn66xx; 440 struct cvmx_pcsx_anx_lp_abil_reg_s cn68xx; 441 struct cvmx_pcsx_anx_lp_abil_reg_s cn68xxp1; 442 struct cvmx_pcsx_anx_lp_abil_reg_s cnf71xx; 443 }; 444 445 union cvmx_pcsx_anx_results_reg { 446 uint64_t u64; 447 struct cvmx_pcsx_anx_results_reg_s { 448 #ifdef __BIG_ENDIAN_BITFIELD 449 uint64_t reserved_7_63:57; 450 uint64_t pause:2; 451 uint64_t spd:2; 452 uint64_t an_cpt:1; 453 uint64_t dup:1; 454 uint64_t link_ok:1; 455 #else 456 uint64_t link_ok:1; 457 uint64_t dup:1; 458 uint64_t an_cpt:1; 459 uint64_t spd:2; 460 uint64_t pause:2; 461 uint64_t reserved_7_63:57; 462 #endif 463 } s; 464 struct cvmx_pcsx_anx_results_reg_s cn52xx; 465 struct cvmx_pcsx_anx_results_reg_s cn52xxp1; 466 struct cvmx_pcsx_anx_results_reg_s cn56xx; 467 struct cvmx_pcsx_anx_results_reg_s cn56xxp1; 468 struct cvmx_pcsx_anx_results_reg_s cn61xx; 469 struct cvmx_pcsx_anx_results_reg_s cn63xx; 470 struct cvmx_pcsx_anx_results_reg_s cn63xxp1; 471 struct cvmx_pcsx_anx_results_reg_s cn66xx; 472 struct cvmx_pcsx_anx_results_reg_s cn68xx; 473 struct cvmx_pcsx_anx_results_reg_s cn68xxp1; 474 struct cvmx_pcsx_anx_results_reg_s cnf71xx; 475 }; 476 477 union cvmx_pcsx_intx_en_reg { 478 uint64_t u64; 479 struct cvmx_pcsx_intx_en_reg_s { 480 #ifdef __BIG_ENDIAN_BITFIELD 481 uint64_t reserved_13_63:51; 482 uint64_t dbg_sync_en:1; 483 uint64_t dup:1; 484 uint64_t sync_bad_en:1; 485 uint64_t an_bad_en:1; 486 uint64_t rxlock_en:1; 487 uint64_t rxbad_en:1; 488 uint64_t rxerr_en:1; 489 uint64_t txbad_en:1; 490 uint64_t txfifo_en:1; 491 uint64_t txfifu_en:1; 492 uint64_t an_err_en:1; 493 uint64_t xmit_en:1; 494 uint64_t lnkspd_en:1; 495 #else 496 uint64_t lnkspd_en:1; 497 uint64_t xmit_en:1; 498 uint64_t an_err_en:1; 499 uint64_t txfifu_en:1; 500 uint64_t txfifo_en:1; 501 uint64_t txbad_en:1; 502 uint64_t rxerr_en:1; 503 uint64_t rxbad_en:1; 504 uint64_t rxlock_en:1; 505 uint64_t an_bad_en:1; 506 uint64_t sync_bad_en:1; 507 uint64_t dup:1; 508 uint64_t dbg_sync_en:1; 509 uint64_t reserved_13_63:51; 510 #endif 511 } s; 512 struct cvmx_pcsx_intx_en_reg_cn52xx { 513 #ifdef __BIG_ENDIAN_BITFIELD 514 uint64_t reserved_12_63:52; 515 uint64_t dup:1; 516 uint64_t sync_bad_en:1; 517 uint64_t an_bad_en:1; 518 uint64_t rxlock_en:1; 519 uint64_t rxbad_en:1; 520 uint64_t rxerr_en:1; 521 uint64_t txbad_en:1; 522 uint64_t txfifo_en:1; 523 uint64_t txfifu_en:1; 524 uint64_t an_err_en:1; 525 uint64_t xmit_en:1; 526 uint64_t lnkspd_en:1; 527 #else 528 uint64_t lnkspd_en:1; 529 uint64_t xmit_en:1; 530 uint64_t an_err_en:1; 531 uint64_t txfifu_en:1; 532 uint64_t txfifo_en:1; 533 uint64_t txbad_en:1; 534 uint64_t rxerr_en:1; 535 uint64_t rxbad_en:1; 536 uint64_t rxlock_en:1; 537 uint64_t an_bad_en:1; 538 uint64_t sync_bad_en:1; 539 uint64_t dup:1; 540 uint64_t reserved_12_63:52; 541 #endif 542 } cn52xx; 543 struct cvmx_pcsx_intx_en_reg_cn52xx cn52xxp1; 544 struct cvmx_pcsx_intx_en_reg_cn52xx cn56xx; 545 struct cvmx_pcsx_intx_en_reg_cn52xx cn56xxp1; 546 struct cvmx_pcsx_intx_en_reg_s cn61xx; 547 struct cvmx_pcsx_intx_en_reg_s cn63xx; 548 struct cvmx_pcsx_intx_en_reg_s cn63xxp1; 549 struct cvmx_pcsx_intx_en_reg_s cn66xx; 550 struct cvmx_pcsx_intx_en_reg_s cn68xx; 551 struct cvmx_pcsx_intx_en_reg_s cn68xxp1; 552 struct cvmx_pcsx_intx_en_reg_s cnf71xx; 553 }; 554 555 union cvmx_pcsx_intx_reg { 556 uint64_t u64; 557 struct cvmx_pcsx_intx_reg_s { 558 #ifdef __BIG_ENDIAN_BITFIELD 559 uint64_t reserved_13_63:51; 560 uint64_t dbg_sync:1; 561 uint64_t dup:1; 562 uint64_t sync_bad:1; 563 uint64_t an_bad:1; 564 uint64_t rxlock:1; 565 uint64_t rxbad:1; 566 uint64_t rxerr:1; 567 uint64_t txbad:1; 568 uint64_t txfifo:1; 569 uint64_t txfifu:1; 570 uint64_t an_err:1; 571 uint64_t xmit:1; 572 uint64_t lnkspd:1; 573 #else 574 uint64_t lnkspd:1; 575 uint64_t xmit:1; 576 uint64_t an_err:1; 577 uint64_t txfifu:1; 578 uint64_t txfifo:1; 579 uint64_t txbad:1; 580 uint64_t rxerr:1; 581 uint64_t rxbad:1; 582 uint64_t rxlock:1; 583 uint64_t an_bad:1; 584 uint64_t sync_bad:1; 585 uint64_t dup:1; 586 uint64_t dbg_sync:1; 587 uint64_t reserved_13_63:51; 588 #endif 589 } s; 590 struct cvmx_pcsx_intx_reg_cn52xx { 591 #ifdef __BIG_ENDIAN_BITFIELD 592 uint64_t reserved_12_63:52; 593 uint64_t dup:1; 594 uint64_t sync_bad:1; 595 uint64_t an_bad:1; 596 uint64_t rxlock:1; 597 uint64_t rxbad:1; 598 uint64_t rxerr:1; 599 uint64_t txbad:1; 600 uint64_t txfifo:1; 601 uint64_t txfifu:1; 602 uint64_t an_err:1; 603 uint64_t xmit:1; 604 uint64_t lnkspd:1; 605 #else 606 uint64_t lnkspd:1; 607 uint64_t xmit:1; 608 uint64_t an_err:1; 609 uint64_t txfifu:1; 610 uint64_t txfifo:1; 611 uint64_t txbad:1; 612 uint64_t rxerr:1; 613 uint64_t rxbad:1; 614 uint64_t rxlock:1; 615 uint64_t an_bad:1; 616 uint64_t sync_bad:1; 617 uint64_t dup:1; 618 uint64_t reserved_12_63:52; 619 #endif 620 } cn52xx; 621 struct cvmx_pcsx_intx_reg_cn52xx cn52xxp1; 622 struct cvmx_pcsx_intx_reg_cn52xx cn56xx; 623 struct cvmx_pcsx_intx_reg_cn52xx cn56xxp1; 624 struct cvmx_pcsx_intx_reg_s cn61xx; 625 struct cvmx_pcsx_intx_reg_s cn63xx; 626 struct cvmx_pcsx_intx_reg_s cn63xxp1; 627 struct cvmx_pcsx_intx_reg_s cn66xx; 628 struct cvmx_pcsx_intx_reg_s cn68xx; 629 struct cvmx_pcsx_intx_reg_s cn68xxp1; 630 struct cvmx_pcsx_intx_reg_s cnf71xx; 631 }; 632 633 union cvmx_pcsx_linkx_timer_count_reg { 634 uint64_t u64; 635 struct cvmx_pcsx_linkx_timer_count_reg_s { 636 #ifdef __BIG_ENDIAN_BITFIELD 637 uint64_t reserved_16_63:48; 638 uint64_t count:16; 639 #else 640 uint64_t count:16; 641 uint64_t reserved_16_63:48; 642 #endif 643 } s; 644 struct cvmx_pcsx_linkx_timer_count_reg_s cn52xx; 645 struct cvmx_pcsx_linkx_timer_count_reg_s cn52xxp1; 646 struct cvmx_pcsx_linkx_timer_count_reg_s cn56xx; 647 struct cvmx_pcsx_linkx_timer_count_reg_s cn56xxp1; 648 struct cvmx_pcsx_linkx_timer_count_reg_s cn61xx; 649 struct cvmx_pcsx_linkx_timer_count_reg_s cn63xx; 650 struct cvmx_pcsx_linkx_timer_count_reg_s cn63xxp1; 651 struct cvmx_pcsx_linkx_timer_count_reg_s cn66xx; 652 struct cvmx_pcsx_linkx_timer_count_reg_s cn68xx; 653 struct cvmx_pcsx_linkx_timer_count_reg_s cn68xxp1; 654 struct cvmx_pcsx_linkx_timer_count_reg_s cnf71xx; 655 }; 656 657 union cvmx_pcsx_log_anlx_reg { 658 uint64_t u64; 659 struct cvmx_pcsx_log_anlx_reg_s { 660 #ifdef __BIG_ENDIAN_BITFIELD 661 uint64_t reserved_4_63:60; 662 uint64_t lafifovfl:1; 663 uint64_t la_en:1; 664 uint64_t pkt_sz:2; 665 #else 666 uint64_t pkt_sz:2; 667 uint64_t la_en:1; 668 uint64_t lafifovfl:1; 669 uint64_t reserved_4_63:60; 670 #endif 671 } s; 672 struct cvmx_pcsx_log_anlx_reg_s cn52xx; 673 struct cvmx_pcsx_log_anlx_reg_s cn52xxp1; 674 struct cvmx_pcsx_log_anlx_reg_s cn56xx; 675 struct cvmx_pcsx_log_anlx_reg_s cn56xxp1; 676 struct cvmx_pcsx_log_anlx_reg_s cn61xx; 677 struct cvmx_pcsx_log_anlx_reg_s cn63xx; 678 struct cvmx_pcsx_log_anlx_reg_s cn63xxp1; 679 struct cvmx_pcsx_log_anlx_reg_s cn66xx; 680 struct cvmx_pcsx_log_anlx_reg_s cn68xx; 681 struct cvmx_pcsx_log_anlx_reg_s cn68xxp1; 682 struct cvmx_pcsx_log_anlx_reg_s cnf71xx; 683 }; 684 685 union cvmx_pcsx_miscx_ctl_reg { 686 uint64_t u64; 687 struct cvmx_pcsx_miscx_ctl_reg_s { 688 #ifdef __BIG_ENDIAN_BITFIELD 689 uint64_t reserved_13_63:51; 690 uint64_t sgmii:1; 691 uint64_t gmxeno:1; 692 uint64_t loopbck2:1; 693 uint64_t mac_phy:1; 694 uint64_t mode:1; 695 uint64_t an_ovrd:1; 696 uint64_t samp_pt:7; 697 #else 698 uint64_t samp_pt:7; 699 uint64_t an_ovrd:1; 700 uint64_t mode:1; 701 uint64_t mac_phy:1; 702 uint64_t loopbck2:1; 703 uint64_t gmxeno:1; 704 uint64_t sgmii:1; 705 uint64_t reserved_13_63:51; 706 #endif 707 } s; 708 struct cvmx_pcsx_miscx_ctl_reg_s cn52xx; 709 struct cvmx_pcsx_miscx_ctl_reg_s cn52xxp1; 710 struct cvmx_pcsx_miscx_ctl_reg_s cn56xx; 711 struct cvmx_pcsx_miscx_ctl_reg_s cn56xxp1; 712 struct cvmx_pcsx_miscx_ctl_reg_s cn61xx; 713 struct cvmx_pcsx_miscx_ctl_reg_s cn63xx; 714 struct cvmx_pcsx_miscx_ctl_reg_s cn63xxp1; 715 struct cvmx_pcsx_miscx_ctl_reg_s cn66xx; 716 struct cvmx_pcsx_miscx_ctl_reg_s cn68xx; 717 struct cvmx_pcsx_miscx_ctl_reg_s cn68xxp1; 718 struct cvmx_pcsx_miscx_ctl_reg_s cnf71xx; 719 }; 720 721 union cvmx_pcsx_mrx_control_reg { 722 uint64_t u64; 723 struct cvmx_pcsx_mrx_control_reg_s { 724 #ifdef __BIG_ENDIAN_BITFIELD 725 uint64_t reserved_16_63:48; 726 uint64_t reset:1; 727 uint64_t loopbck1:1; 728 uint64_t spdlsb:1; 729 uint64_t an_en:1; 730 uint64_t pwr_dn:1; 731 uint64_t reserved_10_10:1; 732 uint64_t rst_an:1; 733 uint64_t dup:1; 734 uint64_t coltst:1; 735 uint64_t spdmsb:1; 736 uint64_t uni:1; 737 uint64_t reserved_0_4:5; 738 #else 739 uint64_t reserved_0_4:5; 740 uint64_t uni:1; 741 uint64_t spdmsb:1; 742 uint64_t coltst:1; 743 uint64_t dup:1; 744 uint64_t rst_an:1; 745 uint64_t reserved_10_10:1; 746 uint64_t pwr_dn:1; 747 uint64_t an_en:1; 748 uint64_t spdlsb:1; 749 uint64_t loopbck1:1; 750 uint64_t reset:1; 751 uint64_t reserved_16_63:48; 752 #endif 753 } s; 754 struct cvmx_pcsx_mrx_control_reg_s cn52xx; 755 struct cvmx_pcsx_mrx_control_reg_s cn52xxp1; 756 struct cvmx_pcsx_mrx_control_reg_s cn56xx; 757 struct cvmx_pcsx_mrx_control_reg_s cn56xxp1; 758 struct cvmx_pcsx_mrx_control_reg_s cn61xx; 759 struct cvmx_pcsx_mrx_control_reg_s cn63xx; 760 struct cvmx_pcsx_mrx_control_reg_s cn63xxp1; 761 struct cvmx_pcsx_mrx_control_reg_s cn66xx; 762 struct cvmx_pcsx_mrx_control_reg_s cn68xx; 763 struct cvmx_pcsx_mrx_control_reg_s cn68xxp1; 764 struct cvmx_pcsx_mrx_control_reg_s cnf71xx; 765 }; 766 767 union cvmx_pcsx_mrx_status_reg { 768 uint64_t u64; 769 struct cvmx_pcsx_mrx_status_reg_s { 770 #ifdef __BIG_ENDIAN_BITFIELD 771 uint64_t reserved_16_63:48; 772 uint64_t hun_t4:1; 773 uint64_t hun_xfd:1; 774 uint64_t hun_xhd:1; 775 uint64_t ten_fd:1; 776 uint64_t ten_hd:1; 777 uint64_t hun_t2fd:1; 778 uint64_t hun_t2hd:1; 779 uint64_t ext_st:1; 780 uint64_t reserved_7_7:1; 781 uint64_t prb_sup:1; 782 uint64_t an_cpt:1; 783 uint64_t rm_flt:1; 784 uint64_t an_abil:1; 785 uint64_t lnk_st:1; 786 uint64_t reserved_1_1:1; 787 uint64_t extnd:1; 788 #else 789 uint64_t extnd:1; 790 uint64_t reserved_1_1:1; 791 uint64_t lnk_st:1; 792 uint64_t an_abil:1; 793 uint64_t rm_flt:1; 794 uint64_t an_cpt:1; 795 uint64_t prb_sup:1; 796 uint64_t reserved_7_7:1; 797 uint64_t ext_st:1; 798 uint64_t hun_t2hd:1; 799 uint64_t hun_t2fd:1; 800 uint64_t ten_hd:1; 801 uint64_t ten_fd:1; 802 uint64_t hun_xhd:1; 803 uint64_t hun_xfd:1; 804 uint64_t hun_t4:1; 805 uint64_t reserved_16_63:48; 806 #endif 807 } s; 808 struct cvmx_pcsx_mrx_status_reg_s cn52xx; 809 struct cvmx_pcsx_mrx_status_reg_s cn52xxp1; 810 struct cvmx_pcsx_mrx_status_reg_s cn56xx; 811 struct cvmx_pcsx_mrx_status_reg_s cn56xxp1; 812 struct cvmx_pcsx_mrx_status_reg_s cn61xx; 813 struct cvmx_pcsx_mrx_status_reg_s cn63xx; 814 struct cvmx_pcsx_mrx_status_reg_s cn63xxp1; 815 struct cvmx_pcsx_mrx_status_reg_s cn66xx; 816 struct cvmx_pcsx_mrx_status_reg_s cn68xx; 817 struct cvmx_pcsx_mrx_status_reg_s cn68xxp1; 818 struct cvmx_pcsx_mrx_status_reg_s cnf71xx; 819 }; 820 821 union cvmx_pcsx_rxx_states_reg { 822 uint64_t u64; 823 struct cvmx_pcsx_rxx_states_reg_s { 824 #ifdef __BIG_ENDIAN_BITFIELD 825 uint64_t reserved_16_63:48; 826 uint64_t rx_bad:1; 827 uint64_t rx_st:5; 828 uint64_t sync_bad:1; 829 uint64_t sync:4; 830 uint64_t an_bad:1; 831 uint64_t an_st:4; 832 #else 833 uint64_t an_st:4; 834 uint64_t an_bad:1; 835 uint64_t sync:4; 836 uint64_t sync_bad:1; 837 uint64_t rx_st:5; 838 uint64_t rx_bad:1; 839 uint64_t reserved_16_63:48; 840 #endif 841 } s; 842 struct cvmx_pcsx_rxx_states_reg_s cn52xx; 843 struct cvmx_pcsx_rxx_states_reg_s cn52xxp1; 844 struct cvmx_pcsx_rxx_states_reg_s cn56xx; 845 struct cvmx_pcsx_rxx_states_reg_s cn56xxp1; 846 struct cvmx_pcsx_rxx_states_reg_s cn61xx; 847 struct cvmx_pcsx_rxx_states_reg_s cn63xx; 848 struct cvmx_pcsx_rxx_states_reg_s cn63xxp1; 849 struct cvmx_pcsx_rxx_states_reg_s cn66xx; 850 struct cvmx_pcsx_rxx_states_reg_s cn68xx; 851 struct cvmx_pcsx_rxx_states_reg_s cn68xxp1; 852 struct cvmx_pcsx_rxx_states_reg_s cnf71xx; 853 }; 854 855 union cvmx_pcsx_rxx_sync_reg { 856 uint64_t u64; 857 struct cvmx_pcsx_rxx_sync_reg_s { 858 #ifdef __BIG_ENDIAN_BITFIELD 859 uint64_t reserved_2_63:62; 860 uint64_t sync:1; 861 uint64_t bit_lock:1; 862 #else 863 uint64_t bit_lock:1; 864 uint64_t sync:1; 865 uint64_t reserved_2_63:62; 866 #endif 867 } s; 868 struct cvmx_pcsx_rxx_sync_reg_s cn52xx; 869 struct cvmx_pcsx_rxx_sync_reg_s cn52xxp1; 870 struct cvmx_pcsx_rxx_sync_reg_s cn56xx; 871 struct cvmx_pcsx_rxx_sync_reg_s cn56xxp1; 872 struct cvmx_pcsx_rxx_sync_reg_s cn61xx; 873 struct cvmx_pcsx_rxx_sync_reg_s cn63xx; 874 struct cvmx_pcsx_rxx_sync_reg_s cn63xxp1; 875 struct cvmx_pcsx_rxx_sync_reg_s cn66xx; 876 struct cvmx_pcsx_rxx_sync_reg_s cn68xx; 877 struct cvmx_pcsx_rxx_sync_reg_s cn68xxp1; 878 struct cvmx_pcsx_rxx_sync_reg_s cnf71xx; 879 }; 880 881 union cvmx_pcsx_sgmx_an_adv_reg { 882 uint64_t u64; 883 struct cvmx_pcsx_sgmx_an_adv_reg_s { 884 #ifdef __BIG_ENDIAN_BITFIELD 885 uint64_t reserved_16_63:48; 886 uint64_t link:1; 887 uint64_t ack:1; 888 uint64_t reserved_13_13:1; 889 uint64_t dup:1; 890 uint64_t speed:2; 891 uint64_t reserved_1_9:9; 892 uint64_t one:1; 893 #else 894 uint64_t one:1; 895 uint64_t reserved_1_9:9; 896 uint64_t speed:2; 897 uint64_t dup:1; 898 uint64_t reserved_13_13:1; 899 uint64_t ack:1; 900 uint64_t link:1; 901 uint64_t reserved_16_63:48; 902 #endif 903 } s; 904 struct cvmx_pcsx_sgmx_an_adv_reg_s cn52xx; 905 struct cvmx_pcsx_sgmx_an_adv_reg_s cn52xxp1; 906 struct cvmx_pcsx_sgmx_an_adv_reg_s cn56xx; 907 struct cvmx_pcsx_sgmx_an_adv_reg_s cn56xxp1; 908 struct cvmx_pcsx_sgmx_an_adv_reg_s cn61xx; 909 struct cvmx_pcsx_sgmx_an_adv_reg_s cn63xx; 910 struct cvmx_pcsx_sgmx_an_adv_reg_s cn63xxp1; 911 struct cvmx_pcsx_sgmx_an_adv_reg_s cn66xx; 912 struct cvmx_pcsx_sgmx_an_adv_reg_s cn68xx; 913 struct cvmx_pcsx_sgmx_an_adv_reg_s cn68xxp1; 914 struct cvmx_pcsx_sgmx_an_adv_reg_s cnf71xx; 915 }; 916 917 union cvmx_pcsx_sgmx_lp_adv_reg { 918 uint64_t u64; 919 struct cvmx_pcsx_sgmx_lp_adv_reg_s { 920 #ifdef __BIG_ENDIAN_BITFIELD 921 uint64_t reserved_16_63:48; 922 uint64_t link:1; 923 uint64_t reserved_13_14:2; 924 uint64_t dup:1; 925 uint64_t speed:2; 926 uint64_t reserved_1_9:9; 927 uint64_t one:1; 928 #else 929 uint64_t one:1; 930 uint64_t reserved_1_9:9; 931 uint64_t speed:2; 932 uint64_t dup:1; 933 uint64_t reserved_13_14:2; 934 uint64_t link:1; 935 uint64_t reserved_16_63:48; 936 #endif 937 } s; 938 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn52xx; 939 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn52xxp1; 940 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn56xx; 941 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn56xxp1; 942 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn61xx; 943 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn63xx; 944 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn63xxp1; 945 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn66xx; 946 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn68xx; 947 struct cvmx_pcsx_sgmx_lp_adv_reg_s cn68xxp1; 948 struct cvmx_pcsx_sgmx_lp_adv_reg_s cnf71xx; 949 }; 950 951 union cvmx_pcsx_txx_states_reg { 952 uint64_t u64; 953 struct cvmx_pcsx_txx_states_reg_s { 954 #ifdef __BIG_ENDIAN_BITFIELD 955 uint64_t reserved_7_63:57; 956 uint64_t xmit:2; 957 uint64_t tx_bad:1; 958 uint64_t ord_st:4; 959 #else 960 uint64_t ord_st:4; 961 uint64_t tx_bad:1; 962 uint64_t xmit:2; 963 uint64_t reserved_7_63:57; 964 #endif 965 } s; 966 struct cvmx_pcsx_txx_states_reg_s cn52xx; 967 struct cvmx_pcsx_txx_states_reg_s cn52xxp1; 968 struct cvmx_pcsx_txx_states_reg_s cn56xx; 969 struct cvmx_pcsx_txx_states_reg_s cn56xxp1; 970 struct cvmx_pcsx_txx_states_reg_s cn61xx; 971 struct cvmx_pcsx_txx_states_reg_s cn63xx; 972 struct cvmx_pcsx_txx_states_reg_s cn63xxp1; 973 struct cvmx_pcsx_txx_states_reg_s cn66xx; 974 struct cvmx_pcsx_txx_states_reg_s cn68xx; 975 struct cvmx_pcsx_txx_states_reg_s cn68xxp1; 976 struct cvmx_pcsx_txx_states_reg_s cnf71xx; 977 }; 978 979 union cvmx_pcsx_tx_rxx_polarity_reg { 980 uint64_t u64; 981 struct cvmx_pcsx_tx_rxx_polarity_reg_s { 982 #ifdef __BIG_ENDIAN_BITFIELD 983 uint64_t reserved_4_63:60; 984 uint64_t rxovrd:1; 985 uint64_t autorxpl:1; 986 uint64_t rxplrt:1; 987 uint64_t txplrt:1; 988 #else 989 uint64_t txplrt:1; 990 uint64_t rxplrt:1; 991 uint64_t autorxpl:1; 992 uint64_t rxovrd:1; 993 uint64_t reserved_4_63:60; 994 #endif 995 } s; 996 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn52xx; 997 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn52xxp1; 998 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn56xx; 999 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn56xxp1; 1000 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn61xx; 1001 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn63xx; 1002 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn63xxp1; 1003 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn66xx; 1004 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn68xx; 1005 struct cvmx_pcsx_tx_rxx_polarity_reg_s cn68xxp1; 1006 struct cvmx_pcsx_tx_rxx_polarity_reg_s cnf71xx; 1007 }; 1008 1009 #endif 1010