1af866496SDavid Daney /***********************license start*************** 2af866496SDavid Daney * Author: Cavium Networks 3af866496SDavid Daney * 4af866496SDavid Daney * Contact: support@caviumnetworks.com 5af866496SDavid Daney * This file is part of the OCTEON SDK 6af866496SDavid Daney * 7af866496SDavid Daney * Copyright (c) 2003-2008 Cavium Networks 8af866496SDavid Daney * 9af866496SDavid Daney * This file is free software; you can redistribute it and/or modify 10af866496SDavid Daney * it under the terms of the GNU General Public License, Version 2, as 11af866496SDavid Daney * published by the Free Software Foundation. 12af866496SDavid Daney * 13af866496SDavid Daney * This file is distributed in the hope that it will be useful, but 14af866496SDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15af866496SDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16af866496SDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 17af866496SDavid Daney * details. 18af866496SDavid Daney * 19af866496SDavid Daney * You should have received a copy of the GNU General Public License 20af866496SDavid Daney * along with this file; if not, write to the Free Software 21af866496SDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22af866496SDavid Daney * or visit http://www.gnu.org/licenses/. 23af866496SDavid Daney * 24af866496SDavid Daney * This file may also be available under a different license from Cavium. 25af866496SDavid Daney * Contact Cavium Networks for more information 26af866496SDavid Daney ***********************license end**************************************/ 27af866496SDavid Daney 28af866496SDavid Daney #ifndef __CVMX_PCSXX_DEFS_H__ 29af866496SDavid Daney #define __CVMX_PCSXX_DEFS_H__ 30af866496SDavid Daney 31af866496SDavid Daney #define CVMX_PCSXX_10GBX_STATUS_REG(block_id) \ 32af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000828ull + (((block_id) & 1) * 0x8000000ull)) 33af866496SDavid Daney #define CVMX_PCSXX_BIST_STATUS_REG(block_id) \ 34af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000870ull + (((block_id) & 1) * 0x8000000ull)) 35af866496SDavid Daney #define CVMX_PCSXX_BIT_LOCK_STATUS_REG(block_id) \ 36af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000850ull + (((block_id) & 1) * 0x8000000ull)) 37af866496SDavid Daney #define CVMX_PCSXX_CONTROL1_REG(block_id) \ 38af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000800ull + (((block_id) & 1) * 0x8000000ull)) 39af866496SDavid Daney #define CVMX_PCSXX_CONTROL2_REG(block_id) \ 40af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000818ull + (((block_id) & 1) * 0x8000000ull)) 41af866496SDavid Daney #define CVMX_PCSXX_INT_EN_REG(block_id) \ 42af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000860ull + (((block_id) & 1) * 0x8000000ull)) 43af866496SDavid Daney #define CVMX_PCSXX_INT_REG(block_id) \ 44af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000858ull + (((block_id) & 1) * 0x8000000ull)) 45af866496SDavid Daney #define CVMX_PCSXX_LOG_ANL_REG(block_id) \ 46af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000868ull + (((block_id) & 1) * 0x8000000ull)) 47af866496SDavid Daney #define CVMX_PCSXX_MISC_CTL_REG(block_id) \ 48af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000848ull + (((block_id) & 1) * 0x8000000ull)) 49af866496SDavid Daney #define CVMX_PCSXX_RX_SYNC_STATES_REG(block_id) \ 50af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000838ull + (((block_id) & 1) * 0x8000000ull)) 51af866496SDavid Daney #define CVMX_PCSXX_SPD_ABIL_REG(block_id) \ 52af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000810ull + (((block_id) & 1) * 0x8000000ull)) 53af866496SDavid Daney #define CVMX_PCSXX_STATUS1_REG(block_id) \ 54af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000808ull + (((block_id) & 1) * 0x8000000ull)) 55af866496SDavid Daney #define CVMX_PCSXX_STATUS2_REG(block_id) \ 56af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000820ull + (((block_id) & 1) * 0x8000000ull)) 57af866496SDavid Daney #define CVMX_PCSXX_TX_RX_POLARITY_REG(block_id) \ 58af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000840ull + (((block_id) & 1) * 0x8000000ull)) 59af866496SDavid Daney #define CVMX_PCSXX_TX_RX_STATES_REG(block_id) \ 60af866496SDavid Daney CVMX_ADD_IO_SEG(0x00011800B0000830ull + (((block_id) & 1) * 0x8000000ull)) 61af866496SDavid Daney 62af866496SDavid Daney union cvmx_pcsxx_10gbx_status_reg { 63af866496SDavid Daney uint64_t u64; 64af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s { 65af866496SDavid Daney uint64_t reserved_13_63:51; 66af866496SDavid Daney uint64_t alignd:1; 67af866496SDavid Daney uint64_t pattst:1; 68af866496SDavid Daney uint64_t reserved_4_10:7; 69af866496SDavid Daney uint64_t l3sync:1; 70af866496SDavid Daney uint64_t l2sync:1; 71af866496SDavid Daney uint64_t l1sync:1; 72af866496SDavid Daney uint64_t l0sync:1; 73af866496SDavid Daney } s; 74af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn52xx; 75af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn52xxp1; 76af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn56xx; 77af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn56xxp1; 78af866496SDavid Daney }; 79af866496SDavid Daney 80af866496SDavid Daney union cvmx_pcsxx_bist_status_reg { 81af866496SDavid Daney uint64_t u64; 82af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s { 83af866496SDavid Daney uint64_t reserved_1_63:63; 84af866496SDavid Daney uint64_t bist_status:1; 85af866496SDavid Daney } s; 86af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn52xx; 87af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn52xxp1; 88af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn56xx; 89af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn56xxp1; 90af866496SDavid Daney }; 91af866496SDavid Daney 92af866496SDavid Daney union cvmx_pcsxx_bit_lock_status_reg { 93af866496SDavid Daney uint64_t u64; 94af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s { 95af866496SDavid Daney uint64_t reserved_4_63:60; 96af866496SDavid Daney uint64_t bitlck3:1; 97af866496SDavid Daney uint64_t bitlck2:1; 98af866496SDavid Daney uint64_t bitlck1:1; 99af866496SDavid Daney uint64_t bitlck0:1; 100af866496SDavid Daney } s; 101af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn52xx; 102af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn52xxp1; 103af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn56xx; 104af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn56xxp1; 105af866496SDavid Daney }; 106af866496SDavid Daney 107af866496SDavid Daney union cvmx_pcsxx_control1_reg { 108af866496SDavid Daney uint64_t u64; 109af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s { 110af866496SDavid Daney uint64_t reserved_16_63:48; 111af866496SDavid Daney uint64_t reset:1; 112af866496SDavid Daney uint64_t loopbck1:1; 113af866496SDavid Daney uint64_t spdsel1:1; 114af866496SDavid Daney uint64_t reserved_12_12:1; 115af866496SDavid Daney uint64_t lo_pwr:1; 116af866496SDavid Daney uint64_t reserved_7_10:4; 117af866496SDavid Daney uint64_t spdsel0:1; 118af866496SDavid Daney uint64_t spd:4; 119af866496SDavid Daney uint64_t reserved_0_1:2; 120af866496SDavid Daney } s; 121af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s cn52xx; 122af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s cn52xxp1; 123af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s cn56xx; 124af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s cn56xxp1; 125af866496SDavid Daney }; 126af866496SDavid Daney 127af866496SDavid Daney union cvmx_pcsxx_control2_reg { 128af866496SDavid Daney uint64_t u64; 129af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s { 130af866496SDavid Daney uint64_t reserved_2_63:62; 131af866496SDavid Daney uint64_t type:2; 132af866496SDavid Daney } s; 133af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s cn52xx; 134af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s cn52xxp1; 135af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s cn56xx; 136af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s cn56xxp1; 137af866496SDavid Daney }; 138af866496SDavid Daney 139af866496SDavid Daney union cvmx_pcsxx_int_en_reg { 140af866496SDavid Daney uint64_t u64; 141af866496SDavid Daney struct cvmx_pcsxx_int_en_reg_s { 142af866496SDavid Daney uint64_t reserved_6_63:58; 143af866496SDavid Daney uint64_t algnlos_en:1; 144af866496SDavid Daney uint64_t synlos_en:1; 145af866496SDavid Daney uint64_t bitlckls_en:1; 146af866496SDavid Daney uint64_t rxsynbad_en:1; 147af866496SDavid Daney uint64_t rxbad_en:1; 148af866496SDavid Daney uint64_t txflt_en:1; 149af866496SDavid Daney } s; 150af866496SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn52xx; 151af866496SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn52xxp1; 152af866496SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn56xx; 153af866496SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn56xxp1; 154af866496SDavid Daney }; 155af866496SDavid Daney 156af866496SDavid Daney union cvmx_pcsxx_int_reg { 157af866496SDavid Daney uint64_t u64; 158af866496SDavid Daney struct cvmx_pcsxx_int_reg_s { 159af866496SDavid Daney uint64_t reserved_6_63:58; 160af866496SDavid Daney uint64_t algnlos:1; 161af866496SDavid Daney uint64_t synlos:1; 162af866496SDavid Daney uint64_t bitlckls:1; 163af866496SDavid Daney uint64_t rxsynbad:1; 164af866496SDavid Daney uint64_t rxbad:1; 165af866496SDavid Daney uint64_t txflt:1; 166af866496SDavid Daney } s; 167af866496SDavid Daney struct cvmx_pcsxx_int_reg_s cn52xx; 168af866496SDavid Daney struct cvmx_pcsxx_int_reg_s cn52xxp1; 169af866496SDavid Daney struct cvmx_pcsxx_int_reg_s cn56xx; 170af866496SDavid Daney struct cvmx_pcsxx_int_reg_s cn56xxp1; 171af866496SDavid Daney }; 172af866496SDavid Daney 173af866496SDavid Daney union cvmx_pcsxx_log_anl_reg { 174af866496SDavid Daney uint64_t u64; 175af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s { 176af866496SDavid Daney uint64_t reserved_7_63:57; 177af866496SDavid Daney uint64_t enc_mode:1; 178af866496SDavid Daney uint64_t drop_ln:2; 179af866496SDavid Daney uint64_t lafifovfl:1; 180af866496SDavid Daney uint64_t la_en:1; 181af866496SDavid Daney uint64_t pkt_sz:2; 182af866496SDavid Daney } s; 183af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn52xx; 184af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn52xxp1; 185af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn56xx; 186af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn56xxp1; 187af866496SDavid Daney }; 188af866496SDavid Daney 189af866496SDavid Daney union cvmx_pcsxx_misc_ctl_reg { 190af866496SDavid Daney uint64_t u64; 191af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s { 192af866496SDavid Daney uint64_t reserved_4_63:60; 193af866496SDavid Daney uint64_t tx_swap:1; 194af866496SDavid Daney uint64_t rx_swap:1; 195af866496SDavid Daney uint64_t xaui:1; 196af866496SDavid Daney uint64_t gmxeno:1; 197af866496SDavid Daney } s; 198af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn52xx; 199af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn52xxp1; 200af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn56xx; 201af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn56xxp1; 202af866496SDavid Daney }; 203af866496SDavid Daney 204af866496SDavid Daney union cvmx_pcsxx_rx_sync_states_reg { 205af866496SDavid Daney uint64_t u64; 206af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s { 207af866496SDavid Daney uint64_t reserved_16_63:48; 208af866496SDavid Daney uint64_t sync3st:4; 209af866496SDavid Daney uint64_t sync2st:4; 210af866496SDavid Daney uint64_t sync1st:4; 211af866496SDavid Daney uint64_t sync0st:4; 212af866496SDavid Daney } s; 213af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn52xx; 214af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn52xxp1; 215af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn56xx; 216af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn56xxp1; 217af866496SDavid Daney }; 218af866496SDavid Daney 219af866496SDavid Daney union cvmx_pcsxx_spd_abil_reg { 220af866496SDavid Daney uint64_t u64; 221af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s { 222af866496SDavid Daney uint64_t reserved_2_63:62; 223af866496SDavid Daney uint64_t tenpasst:1; 224af866496SDavid Daney uint64_t tengb:1; 225af866496SDavid Daney } s; 226af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn52xx; 227af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn52xxp1; 228af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn56xx; 229af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn56xxp1; 230af866496SDavid Daney }; 231af866496SDavid Daney 232af866496SDavid Daney union cvmx_pcsxx_status1_reg { 233af866496SDavid Daney uint64_t u64; 234af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s { 235af866496SDavid Daney uint64_t reserved_8_63:56; 236af866496SDavid Daney uint64_t flt:1; 237af866496SDavid Daney uint64_t reserved_3_6:4; 238af866496SDavid Daney uint64_t rcv_lnk:1; 239af866496SDavid Daney uint64_t lpable:1; 240af866496SDavid Daney uint64_t reserved_0_0:1; 241af866496SDavid Daney } s; 242af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s cn52xx; 243af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s cn52xxp1; 244af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s cn56xx; 245af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s cn56xxp1; 246af866496SDavid Daney }; 247af866496SDavid Daney 248af866496SDavid Daney union cvmx_pcsxx_status2_reg { 249af866496SDavid Daney uint64_t u64; 250af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s { 251af866496SDavid Daney uint64_t reserved_16_63:48; 252af866496SDavid Daney uint64_t dev:2; 253af866496SDavid Daney uint64_t reserved_12_13:2; 254af866496SDavid Daney uint64_t xmtflt:1; 255af866496SDavid Daney uint64_t rcvflt:1; 256af866496SDavid Daney uint64_t reserved_3_9:7; 257af866496SDavid Daney uint64_t tengb_w:1; 258af866496SDavid Daney uint64_t tengb_x:1; 259af866496SDavid Daney uint64_t tengb_r:1; 260af866496SDavid Daney } s; 261af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s cn52xx; 262af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s cn52xxp1; 263af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s cn56xx; 264af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s cn56xxp1; 265af866496SDavid Daney }; 266af866496SDavid Daney 267af866496SDavid Daney union cvmx_pcsxx_tx_rx_polarity_reg { 268af866496SDavid Daney uint64_t u64; 269af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s { 270af866496SDavid Daney uint64_t reserved_10_63:54; 271af866496SDavid Daney uint64_t xor_rxplrt:4; 272af866496SDavid Daney uint64_t xor_txplrt:4; 273af866496SDavid Daney uint64_t rxplrt:1; 274af866496SDavid Daney uint64_t txplrt:1; 275af866496SDavid Daney } s; 276af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn52xx; 277af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_cn52xxp1 { 278af866496SDavid Daney uint64_t reserved_2_63:62; 279af866496SDavid Daney uint64_t rxplrt:1; 280af866496SDavid Daney uint64_t txplrt:1; 281af866496SDavid Daney } cn52xxp1; 282af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn56xx; 283af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_cn52xxp1 cn56xxp1; 284af866496SDavid Daney }; 285af866496SDavid Daney 286af866496SDavid Daney union cvmx_pcsxx_tx_rx_states_reg { 287af866496SDavid Daney uint64_t u64; 288af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s { 289af866496SDavid Daney uint64_t reserved_14_63:50; 290af866496SDavid Daney uint64_t term_err:1; 291af866496SDavid Daney uint64_t syn3bad:1; 292af866496SDavid Daney uint64_t syn2bad:1; 293af866496SDavid Daney uint64_t syn1bad:1; 294af866496SDavid Daney uint64_t syn0bad:1; 295af866496SDavid Daney uint64_t rxbad:1; 296af866496SDavid Daney uint64_t algn_st:3; 297af866496SDavid Daney uint64_t rx_st:2; 298af866496SDavid Daney uint64_t tx_st:3; 299af866496SDavid Daney } s; 300af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn52xx; 301af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_cn52xxp1 { 302af866496SDavid Daney uint64_t reserved_13_63:51; 303af866496SDavid Daney uint64_t syn3bad:1; 304af866496SDavid Daney uint64_t syn2bad:1; 305af866496SDavid Daney uint64_t syn1bad:1; 306af866496SDavid Daney uint64_t syn0bad:1; 307af866496SDavid Daney uint64_t rxbad:1; 308af866496SDavid Daney uint64_t algn_st:3; 309af866496SDavid Daney uint64_t rx_st:2; 310af866496SDavid Daney uint64_t tx_st:3; 311af866496SDavid Daney } cn52xxp1; 312af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn56xx; 313af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_cn52xxp1 cn56xxp1; 314af866496SDavid Daney }; 315af866496SDavid Daney 316af866496SDavid Daney #endif 317