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 * 7840267e4SSteven J. Hill * Copyright (C) 2003-2018 Cavium, Inc. 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 31c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_10GBX_STATUS_REG(unsigned long block_id) 32c5aa59e8SDavid Daney { 33c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 34c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 35c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 36c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 37c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000828ull) + (block_id) * 0x8000000ull; 38c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 39c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 40c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000828ull) + (block_id) * 0x8000000ull; 41c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 42c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000828ull) + (block_id) * 0x1000000ull; 43c5aa59e8SDavid Daney } 44c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000828ull) + (block_id) * 0x1000000ull; 45c5aa59e8SDavid Daney } 46c5aa59e8SDavid Daney 47c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_BIST_STATUS_REG(unsigned long block_id) 48c5aa59e8SDavid Daney { 49c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 50c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 51c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 52c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 53c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000870ull) + (block_id) * 0x8000000ull; 54c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 55c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 56c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000870ull) + (block_id) * 0x8000000ull; 57c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 58c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000870ull) + (block_id) * 0x1000000ull; 59c5aa59e8SDavid Daney } 60c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000870ull) + (block_id) * 0x1000000ull; 61c5aa59e8SDavid Daney } 62c5aa59e8SDavid Daney 63c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_BIT_LOCK_STATUS_REG(unsigned long block_id) 64c5aa59e8SDavid Daney { 65c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 66c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 67c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 68c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 69c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000850ull) + (block_id) * 0x8000000ull; 70c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 71c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 72c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000850ull) + (block_id) * 0x8000000ull; 73c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 74c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000850ull) + (block_id) * 0x1000000ull; 75c5aa59e8SDavid Daney } 76c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000850ull) + (block_id) * 0x1000000ull; 77c5aa59e8SDavid Daney } 78c5aa59e8SDavid Daney 79c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_CONTROL1_REG(unsigned long block_id) 80c5aa59e8SDavid Daney { 81c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 82c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 83c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 84c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 85c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000800ull) + (block_id) * 0x8000000ull; 86c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 87c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 88c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000800ull) + (block_id) * 0x8000000ull; 89c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 90c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000800ull) + (block_id) * 0x1000000ull; 91c5aa59e8SDavid Daney } 92c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000800ull) + (block_id) * 0x1000000ull; 93c5aa59e8SDavid Daney } 94c5aa59e8SDavid Daney 95c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_CONTROL2_REG(unsigned long block_id) 96c5aa59e8SDavid Daney { 97c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 98c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 99c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 100c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 101c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000818ull) + (block_id) * 0x8000000ull; 102c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 103c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 104c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000818ull) + (block_id) * 0x8000000ull; 105c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 106c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000818ull) + (block_id) * 0x1000000ull; 107c5aa59e8SDavid Daney } 108c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000818ull) + (block_id) * 0x1000000ull; 109c5aa59e8SDavid Daney } 110c5aa59e8SDavid Daney 111c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_INT_EN_REG(unsigned long block_id) 112c5aa59e8SDavid Daney { 113c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 114c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 115c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 116c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 117c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000860ull) + (block_id) * 0x8000000ull; 118c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 119c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 120c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000860ull) + (block_id) * 0x8000000ull; 121c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 122c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000860ull) + (block_id) * 0x1000000ull; 123c5aa59e8SDavid Daney } 124c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000860ull) + (block_id) * 0x1000000ull; 125c5aa59e8SDavid Daney } 126c5aa59e8SDavid Daney 127c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_INT_REG(unsigned long block_id) 128c5aa59e8SDavid Daney { 129c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 130c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 131c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 132c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 133c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000858ull) + (block_id) * 0x8000000ull; 134c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 135c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 136c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000858ull) + (block_id) * 0x8000000ull; 137c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 138c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000858ull) + (block_id) * 0x1000000ull; 139c5aa59e8SDavid Daney } 140c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000858ull) + (block_id) * 0x1000000ull; 141c5aa59e8SDavid Daney } 142c5aa59e8SDavid Daney 143c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_LOG_ANL_REG(unsigned long block_id) 144c5aa59e8SDavid Daney { 145c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 146c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 147c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 148c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 149c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000868ull) + (block_id) * 0x8000000ull; 150c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 151c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 152c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000868ull) + (block_id) * 0x8000000ull; 153c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 154c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000868ull) + (block_id) * 0x1000000ull; 155c5aa59e8SDavid Daney } 156c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000868ull) + (block_id) * 0x1000000ull; 157c5aa59e8SDavid Daney } 158c5aa59e8SDavid Daney 159c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_MISC_CTL_REG(unsigned long block_id) 160c5aa59e8SDavid Daney { 161c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 162c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 163c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 164c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 165c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000848ull) + (block_id) * 0x8000000ull; 166c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 167c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 168c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000848ull) + (block_id) * 0x8000000ull; 169c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 170c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000848ull) + (block_id) * 0x1000000ull; 171c5aa59e8SDavid Daney } 172c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000848ull) + (block_id) * 0x1000000ull; 173c5aa59e8SDavid Daney } 174c5aa59e8SDavid Daney 175c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_RX_SYNC_STATES_REG(unsigned long block_id) 176c5aa59e8SDavid Daney { 177c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 178c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 179c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 180c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 181c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000838ull) + (block_id) * 0x8000000ull; 182c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 183c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 184c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000838ull) + (block_id) * 0x8000000ull; 185c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 186c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000838ull) + (block_id) * 0x1000000ull; 187c5aa59e8SDavid Daney } 188c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000838ull) + (block_id) * 0x1000000ull; 189c5aa59e8SDavid Daney } 190c5aa59e8SDavid Daney 191c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_SPD_ABIL_REG(unsigned long block_id) 192c5aa59e8SDavid Daney { 193c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 194c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 195c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 196c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 197c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000810ull) + (block_id) * 0x8000000ull; 198c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 199c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 200c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000810ull) + (block_id) * 0x8000000ull; 201c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 202c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000810ull) + (block_id) * 0x1000000ull; 203c5aa59e8SDavid Daney } 204c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000810ull) + (block_id) * 0x1000000ull; 205c5aa59e8SDavid Daney } 206c5aa59e8SDavid Daney 207c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_STATUS1_REG(unsigned long block_id) 208c5aa59e8SDavid Daney { 209c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 210c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 211c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 212c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 213c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000808ull) + (block_id) * 0x8000000ull; 214c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 215c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 216c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000808ull) + (block_id) * 0x8000000ull; 217c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 218c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000808ull) + (block_id) * 0x1000000ull; 219c5aa59e8SDavid Daney } 220c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000808ull) + (block_id) * 0x1000000ull; 221c5aa59e8SDavid Daney } 222c5aa59e8SDavid Daney 223c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_STATUS2_REG(unsigned long block_id) 224c5aa59e8SDavid Daney { 225c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 226c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 227c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 228c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 229c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000820ull) + (block_id) * 0x8000000ull; 230c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 231c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 232c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000820ull) + (block_id) * 0x8000000ull; 233c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 234c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000820ull) + (block_id) * 0x1000000ull; 235c5aa59e8SDavid Daney } 236c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000820ull) + (block_id) * 0x1000000ull; 237c5aa59e8SDavid Daney } 238c5aa59e8SDavid Daney 239c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_TX_RX_POLARITY_REG(unsigned long block_id) 240c5aa59e8SDavid Daney { 241c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 242c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 243c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 244c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 245c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000840ull) + (block_id) * 0x8000000ull; 246c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 247c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 248c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000840ull) + (block_id) * 0x8000000ull; 249c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 250c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000840ull) + (block_id) * 0x1000000ull; 251c5aa59e8SDavid Daney } 252c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000840ull) + (block_id) * 0x1000000ull; 253c5aa59e8SDavid Daney } 254c5aa59e8SDavid Daney 255c5aa59e8SDavid Daney static inline uint64_t CVMX_PCSXX_TX_RX_STATES_REG(unsigned long block_id) 256c5aa59e8SDavid Daney { 257c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 258c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 259c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 260c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 261c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000830ull) + (block_id) * 0x8000000ull; 262c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 263c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 264c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000830ull) + (block_id) * 0x8000000ull; 265c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 266c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000830ull) + (block_id) * 0x1000000ull; 267c5aa59e8SDavid Daney } 268c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x00011800B0000830ull) + (block_id) * 0x1000000ull; 269c5aa59e8SDavid Daney } 270af866496SDavid Daney 271840267e4SSteven J. Hill void __cvmx_interrupt_pcsxx_int_en_reg_enable(int index); 272840267e4SSteven J. Hill 273af866496SDavid Daney union cvmx_pcsxx_10gbx_status_reg { 274af866496SDavid Daney uint64_t u64; 275af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s { 276c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 277af866496SDavid Daney uint64_t reserved_13_63:51; 278af866496SDavid Daney uint64_t alignd:1; 279af866496SDavid Daney uint64_t pattst:1; 280af866496SDavid Daney uint64_t reserved_4_10:7; 281af866496SDavid Daney uint64_t l3sync:1; 282af866496SDavid Daney uint64_t l2sync:1; 283af866496SDavid Daney uint64_t l1sync:1; 284af866496SDavid Daney uint64_t l0sync:1; 285c5aa59e8SDavid Daney #else 286c5aa59e8SDavid Daney uint64_t l0sync:1; 287c5aa59e8SDavid Daney uint64_t l1sync:1; 288c5aa59e8SDavid Daney uint64_t l2sync:1; 289c5aa59e8SDavid Daney uint64_t l3sync:1; 290c5aa59e8SDavid Daney uint64_t reserved_4_10:7; 291c5aa59e8SDavid Daney uint64_t pattst:1; 292c5aa59e8SDavid Daney uint64_t alignd:1; 293c5aa59e8SDavid Daney uint64_t reserved_13_63:51; 294c5aa59e8SDavid Daney #endif 295af866496SDavid Daney } s; 296af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn52xx; 297af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn52xxp1; 298af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn56xx; 299af866496SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn56xxp1; 300c5aa59e8SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn61xx; 301c5aa59e8SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn63xx; 302c5aa59e8SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn63xxp1; 303c5aa59e8SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn66xx; 304c5aa59e8SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn68xx; 305c5aa59e8SDavid Daney struct cvmx_pcsxx_10gbx_status_reg_s cn68xxp1; 306af866496SDavid Daney }; 307af866496SDavid Daney 308af866496SDavid Daney union cvmx_pcsxx_bist_status_reg { 309af866496SDavid Daney uint64_t u64; 310af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s { 311c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 312af866496SDavid Daney uint64_t reserved_1_63:63; 313af866496SDavid Daney uint64_t bist_status:1; 314c5aa59e8SDavid Daney #else 315c5aa59e8SDavid Daney uint64_t bist_status:1; 316c5aa59e8SDavid Daney uint64_t reserved_1_63:63; 317c5aa59e8SDavid Daney #endif 318af866496SDavid Daney } s; 319af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn52xx; 320af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn52xxp1; 321af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn56xx; 322af866496SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn56xxp1; 323c5aa59e8SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn61xx; 324c5aa59e8SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn63xx; 325c5aa59e8SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn63xxp1; 326c5aa59e8SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn66xx; 327c5aa59e8SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn68xx; 328c5aa59e8SDavid Daney struct cvmx_pcsxx_bist_status_reg_s cn68xxp1; 329af866496SDavid Daney }; 330af866496SDavid Daney 331af866496SDavid Daney union cvmx_pcsxx_bit_lock_status_reg { 332af866496SDavid Daney uint64_t u64; 333af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s { 334c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 335af866496SDavid Daney uint64_t reserved_4_63:60; 336af866496SDavid Daney uint64_t bitlck3:1; 337af866496SDavid Daney uint64_t bitlck2:1; 338af866496SDavid Daney uint64_t bitlck1:1; 339af866496SDavid Daney uint64_t bitlck0:1; 340c5aa59e8SDavid Daney #else 341c5aa59e8SDavid Daney uint64_t bitlck0:1; 342c5aa59e8SDavid Daney uint64_t bitlck1:1; 343c5aa59e8SDavid Daney uint64_t bitlck2:1; 344c5aa59e8SDavid Daney uint64_t bitlck3:1; 345c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 346c5aa59e8SDavid Daney #endif 347af866496SDavid Daney } s; 348af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn52xx; 349af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn52xxp1; 350af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn56xx; 351af866496SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn56xxp1; 352c5aa59e8SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn61xx; 353c5aa59e8SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn63xx; 354c5aa59e8SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn63xxp1; 355c5aa59e8SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn66xx; 356c5aa59e8SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn68xx; 357c5aa59e8SDavid Daney struct cvmx_pcsxx_bit_lock_status_reg_s cn68xxp1; 358af866496SDavid Daney }; 359af866496SDavid Daney 360af866496SDavid Daney union cvmx_pcsxx_control1_reg { 361af866496SDavid Daney uint64_t u64; 362af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s { 363c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 364af866496SDavid Daney uint64_t reserved_16_63:48; 365af866496SDavid Daney uint64_t reset:1; 366af866496SDavid Daney uint64_t loopbck1:1; 367af866496SDavid Daney uint64_t spdsel1:1; 368af866496SDavid Daney uint64_t reserved_12_12:1; 369af866496SDavid Daney uint64_t lo_pwr:1; 370af866496SDavid Daney uint64_t reserved_7_10:4; 371af866496SDavid Daney uint64_t spdsel0:1; 372af866496SDavid Daney uint64_t spd:4; 373af866496SDavid Daney uint64_t reserved_0_1:2; 374c5aa59e8SDavid Daney #else 375c5aa59e8SDavid Daney uint64_t reserved_0_1:2; 376c5aa59e8SDavid Daney uint64_t spd:4; 377c5aa59e8SDavid Daney uint64_t spdsel0:1; 378c5aa59e8SDavid Daney uint64_t reserved_7_10:4; 379c5aa59e8SDavid Daney uint64_t lo_pwr:1; 380c5aa59e8SDavid Daney uint64_t reserved_12_12:1; 381c5aa59e8SDavid Daney uint64_t spdsel1:1; 382c5aa59e8SDavid Daney uint64_t loopbck1:1; 383c5aa59e8SDavid Daney uint64_t reset:1; 384c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 385c5aa59e8SDavid Daney #endif 386af866496SDavid Daney } s; 387af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s cn52xx; 388af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s cn52xxp1; 389af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s cn56xx; 390af866496SDavid Daney struct cvmx_pcsxx_control1_reg_s cn56xxp1; 391c5aa59e8SDavid Daney struct cvmx_pcsxx_control1_reg_s cn61xx; 392c5aa59e8SDavid Daney struct cvmx_pcsxx_control1_reg_s cn63xx; 393c5aa59e8SDavid Daney struct cvmx_pcsxx_control1_reg_s cn63xxp1; 394c5aa59e8SDavid Daney struct cvmx_pcsxx_control1_reg_s cn66xx; 395c5aa59e8SDavid Daney struct cvmx_pcsxx_control1_reg_s cn68xx; 396c5aa59e8SDavid Daney struct cvmx_pcsxx_control1_reg_s cn68xxp1; 397af866496SDavid Daney }; 398af866496SDavid Daney 399af866496SDavid Daney union cvmx_pcsxx_control2_reg { 400af866496SDavid Daney uint64_t u64; 401af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s { 402c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 403af866496SDavid Daney uint64_t reserved_2_63:62; 404af866496SDavid Daney uint64_t type:2; 405c5aa59e8SDavid Daney #else 406c5aa59e8SDavid Daney uint64_t type:2; 407c5aa59e8SDavid Daney uint64_t reserved_2_63:62; 408c5aa59e8SDavid Daney #endif 409af866496SDavid Daney } s; 410af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s cn52xx; 411af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s cn52xxp1; 412af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s cn56xx; 413af866496SDavid Daney struct cvmx_pcsxx_control2_reg_s cn56xxp1; 414c5aa59e8SDavid Daney struct cvmx_pcsxx_control2_reg_s cn61xx; 415c5aa59e8SDavid Daney struct cvmx_pcsxx_control2_reg_s cn63xx; 416c5aa59e8SDavid Daney struct cvmx_pcsxx_control2_reg_s cn63xxp1; 417c5aa59e8SDavid Daney struct cvmx_pcsxx_control2_reg_s cn66xx; 418c5aa59e8SDavid Daney struct cvmx_pcsxx_control2_reg_s cn68xx; 419c5aa59e8SDavid Daney struct cvmx_pcsxx_control2_reg_s cn68xxp1; 420af866496SDavid Daney }; 421af866496SDavid Daney 422af866496SDavid Daney union cvmx_pcsxx_int_en_reg { 423af866496SDavid Daney uint64_t u64; 424af866496SDavid Daney struct cvmx_pcsxx_int_en_reg_s { 425c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 426c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 427c5aa59e8SDavid Daney uint64_t dbg_sync_en:1; 428c5aa59e8SDavid Daney uint64_t algnlos_en:1; 429c5aa59e8SDavid Daney uint64_t synlos_en:1; 430c5aa59e8SDavid Daney uint64_t bitlckls_en:1; 431c5aa59e8SDavid Daney uint64_t rxsynbad_en:1; 432c5aa59e8SDavid Daney uint64_t rxbad_en:1; 433c5aa59e8SDavid Daney uint64_t txflt_en:1; 434c5aa59e8SDavid Daney #else 435c5aa59e8SDavid Daney uint64_t txflt_en:1; 436c5aa59e8SDavid Daney uint64_t rxbad_en:1; 437c5aa59e8SDavid Daney uint64_t rxsynbad_en:1; 438c5aa59e8SDavid Daney uint64_t bitlckls_en:1; 439c5aa59e8SDavid Daney uint64_t synlos_en:1; 440c5aa59e8SDavid Daney uint64_t algnlos_en:1; 441c5aa59e8SDavid Daney uint64_t dbg_sync_en:1; 442c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 443c5aa59e8SDavid Daney #endif 444c5aa59e8SDavid Daney } s; 445c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_cn52xx { 446c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 447af866496SDavid Daney uint64_t reserved_6_63:58; 448af866496SDavid Daney uint64_t algnlos_en:1; 449af866496SDavid Daney uint64_t synlos_en:1; 450af866496SDavid Daney uint64_t bitlckls_en:1; 451af866496SDavid Daney uint64_t rxsynbad_en:1; 452af866496SDavid Daney uint64_t rxbad_en:1; 453af866496SDavid Daney uint64_t txflt_en:1; 454c5aa59e8SDavid Daney #else 455c5aa59e8SDavid Daney uint64_t txflt_en:1; 456c5aa59e8SDavid Daney uint64_t rxbad_en:1; 457c5aa59e8SDavid Daney uint64_t rxsynbad_en:1; 458c5aa59e8SDavid Daney uint64_t bitlckls_en:1; 459c5aa59e8SDavid Daney uint64_t synlos_en:1; 460c5aa59e8SDavid Daney uint64_t algnlos_en:1; 461c5aa59e8SDavid Daney uint64_t reserved_6_63:58; 462c5aa59e8SDavid Daney #endif 463c5aa59e8SDavid Daney } cn52xx; 464c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_cn52xx cn52xxp1; 465c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_cn52xx cn56xx; 466c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_cn52xx cn56xxp1; 467c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn61xx; 468c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn63xx; 469c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn63xxp1; 470c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn66xx; 471c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn68xx; 472c5aa59e8SDavid Daney struct cvmx_pcsxx_int_en_reg_s cn68xxp1; 473af866496SDavid Daney }; 474af866496SDavid Daney 475af866496SDavid Daney union cvmx_pcsxx_int_reg { 476af866496SDavid Daney uint64_t u64; 477af866496SDavid Daney struct cvmx_pcsxx_int_reg_s { 478c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 479c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 480c5aa59e8SDavid Daney uint64_t dbg_sync:1; 481c5aa59e8SDavid Daney uint64_t algnlos:1; 482c5aa59e8SDavid Daney uint64_t synlos:1; 483c5aa59e8SDavid Daney uint64_t bitlckls:1; 484c5aa59e8SDavid Daney uint64_t rxsynbad:1; 485c5aa59e8SDavid Daney uint64_t rxbad:1; 486c5aa59e8SDavid Daney uint64_t txflt:1; 487c5aa59e8SDavid Daney #else 488c5aa59e8SDavid Daney uint64_t txflt:1; 489c5aa59e8SDavid Daney uint64_t rxbad:1; 490c5aa59e8SDavid Daney uint64_t rxsynbad:1; 491c5aa59e8SDavid Daney uint64_t bitlckls:1; 492c5aa59e8SDavid Daney uint64_t synlos:1; 493c5aa59e8SDavid Daney uint64_t algnlos:1; 494c5aa59e8SDavid Daney uint64_t dbg_sync:1; 495c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 496c5aa59e8SDavid Daney #endif 497c5aa59e8SDavid Daney } s; 498c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_cn52xx { 499c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 500af866496SDavid Daney uint64_t reserved_6_63:58; 501af866496SDavid Daney uint64_t algnlos:1; 502af866496SDavid Daney uint64_t synlos:1; 503af866496SDavid Daney uint64_t bitlckls:1; 504af866496SDavid Daney uint64_t rxsynbad:1; 505af866496SDavid Daney uint64_t rxbad:1; 506af866496SDavid Daney uint64_t txflt:1; 507c5aa59e8SDavid Daney #else 508c5aa59e8SDavid Daney uint64_t txflt:1; 509c5aa59e8SDavid Daney uint64_t rxbad:1; 510c5aa59e8SDavid Daney uint64_t rxsynbad:1; 511c5aa59e8SDavid Daney uint64_t bitlckls:1; 512c5aa59e8SDavid Daney uint64_t synlos:1; 513c5aa59e8SDavid Daney uint64_t algnlos:1; 514c5aa59e8SDavid Daney uint64_t reserved_6_63:58; 515c5aa59e8SDavid Daney #endif 516c5aa59e8SDavid Daney } cn52xx; 517c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_cn52xx cn52xxp1; 518c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_cn52xx cn56xx; 519c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_cn52xx cn56xxp1; 520c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_s cn61xx; 521c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_s cn63xx; 522c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_s cn63xxp1; 523c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_s cn66xx; 524c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_s cn68xx; 525c5aa59e8SDavid Daney struct cvmx_pcsxx_int_reg_s cn68xxp1; 526af866496SDavid Daney }; 527af866496SDavid Daney 528af866496SDavid Daney union cvmx_pcsxx_log_anl_reg { 529af866496SDavid Daney uint64_t u64; 530af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s { 531c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 532af866496SDavid Daney uint64_t reserved_7_63:57; 533af866496SDavid Daney uint64_t enc_mode:1; 534af866496SDavid Daney uint64_t drop_ln:2; 535af866496SDavid Daney uint64_t lafifovfl:1; 536af866496SDavid Daney uint64_t la_en:1; 537af866496SDavid Daney uint64_t pkt_sz:2; 538c5aa59e8SDavid Daney #else 539c5aa59e8SDavid Daney uint64_t pkt_sz:2; 540c5aa59e8SDavid Daney uint64_t la_en:1; 541c5aa59e8SDavid Daney uint64_t lafifovfl:1; 542c5aa59e8SDavid Daney uint64_t drop_ln:2; 543c5aa59e8SDavid Daney uint64_t enc_mode:1; 544c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 545c5aa59e8SDavid Daney #endif 546af866496SDavid Daney } s; 547af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn52xx; 548af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn52xxp1; 549af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn56xx; 550af866496SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn56xxp1; 551c5aa59e8SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn61xx; 552c5aa59e8SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn63xx; 553c5aa59e8SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn63xxp1; 554c5aa59e8SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn66xx; 555c5aa59e8SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn68xx; 556c5aa59e8SDavid Daney struct cvmx_pcsxx_log_anl_reg_s cn68xxp1; 557af866496SDavid Daney }; 558af866496SDavid Daney 559af866496SDavid Daney union cvmx_pcsxx_misc_ctl_reg { 560af866496SDavid Daney uint64_t u64; 561af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s { 562c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 563af866496SDavid Daney uint64_t reserved_4_63:60; 564af866496SDavid Daney uint64_t tx_swap:1; 565af866496SDavid Daney uint64_t rx_swap:1; 566af866496SDavid Daney uint64_t xaui:1; 567af866496SDavid Daney uint64_t gmxeno:1; 568c5aa59e8SDavid Daney #else 569c5aa59e8SDavid Daney uint64_t gmxeno:1; 570c5aa59e8SDavid Daney uint64_t xaui:1; 571c5aa59e8SDavid Daney uint64_t rx_swap:1; 572c5aa59e8SDavid Daney uint64_t tx_swap:1; 573c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 574c5aa59e8SDavid Daney #endif 575af866496SDavid Daney } s; 576af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn52xx; 577af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn52xxp1; 578af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn56xx; 579af866496SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn56xxp1; 580c5aa59e8SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn61xx; 581c5aa59e8SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn63xx; 582c5aa59e8SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn63xxp1; 583c5aa59e8SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn66xx; 584c5aa59e8SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn68xx; 585c5aa59e8SDavid Daney struct cvmx_pcsxx_misc_ctl_reg_s cn68xxp1; 586af866496SDavid Daney }; 587af866496SDavid Daney 588af866496SDavid Daney union cvmx_pcsxx_rx_sync_states_reg { 589af866496SDavid Daney uint64_t u64; 590af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s { 591c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 592af866496SDavid Daney uint64_t reserved_16_63:48; 593af866496SDavid Daney uint64_t sync3st:4; 594af866496SDavid Daney uint64_t sync2st:4; 595af866496SDavid Daney uint64_t sync1st:4; 596af866496SDavid Daney uint64_t sync0st:4; 597c5aa59e8SDavid Daney #else 598c5aa59e8SDavid Daney uint64_t sync0st:4; 599c5aa59e8SDavid Daney uint64_t sync1st:4; 600c5aa59e8SDavid Daney uint64_t sync2st:4; 601c5aa59e8SDavid Daney uint64_t sync3st:4; 602c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 603c5aa59e8SDavid Daney #endif 604af866496SDavid Daney } s; 605af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn52xx; 606af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn52xxp1; 607af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn56xx; 608af866496SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn56xxp1; 609c5aa59e8SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn61xx; 610c5aa59e8SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn63xx; 611c5aa59e8SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn63xxp1; 612c5aa59e8SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn66xx; 613c5aa59e8SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn68xx; 614c5aa59e8SDavid Daney struct cvmx_pcsxx_rx_sync_states_reg_s cn68xxp1; 615af866496SDavid Daney }; 616af866496SDavid Daney 617af866496SDavid Daney union cvmx_pcsxx_spd_abil_reg { 618af866496SDavid Daney uint64_t u64; 619af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s { 620c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 621af866496SDavid Daney uint64_t reserved_2_63:62; 622af866496SDavid Daney uint64_t tenpasst:1; 623af866496SDavid Daney uint64_t tengb:1; 624c5aa59e8SDavid Daney #else 625c5aa59e8SDavid Daney uint64_t tengb:1; 626c5aa59e8SDavid Daney uint64_t tenpasst:1; 627c5aa59e8SDavid Daney uint64_t reserved_2_63:62; 628c5aa59e8SDavid Daney #endif 629af866496SDavid Daney } s; 630af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn52xx; 631af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn52xxp1; 632af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn56xx; 633af866496SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn56xxp1; 634c5aa59e8SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn61xx; 635c5aa59e8SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn63xx; 636c5aa59e8SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn63xxp1; 637c5aa59e8SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn66xx; 638c5aa59e8SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn68xx; 639c5aa59e8SDavid Daney struct cvmx_pcsxx_spd_abil_reg_s cn68xxp1; 640af866496SDavid Daney }; 641af866496SDavid Daney 642af866496SDavid Daney union cvmx_pcsxx_status1_reg { 643af866496SDavid Daney uint64_t u64; 644af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s { 645c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 646af866496SDavid Daney uint64_t reserved_8_63:56; 647af866496SDavid Daney uint64_t flt:1; 648af866496SDavid Daney uint64_t reserved_3_6:4; 649af866496SDavid Daney uint64_t rcv_lnk:1; 650af866496SDavid Daney uint64_t lpable:1; 651af866496SDavid Daney uint64_t reserved_0_0:1; 652c5aa59e8SDavid Daney #else 653c5aa59e8SDavid Daney uint64_t reserved_0_0:1; 654c5aa59e8SDavid Daney uint64_t lpable:1; 655c5aa59e8SDavid Daney uint64_t rcv_lnk:1; 656c5aa59e8SDavid Daney uint64_t reserved_3_6:4; 657c5aa59e8SDavid Daney uint64_t flt:1; 658c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 659c5aa59e8SDavid Daney #endif 660af866496SDavid Daney } s; 661af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s cn52xx; 662af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s cn52xxp1; 663af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s cn56xx; 664af866496SDavid Daney struct cvmx_pcsxx_status1_reg_s cn56xxp1; 665c5aa59e8SDavid Daney struct cvmx_pcsxx_status1_reg_s cn61xx; 666c5aa59e8SDavid Daney struct cvmx_pcsxx_status1_reg_s cn63xx; 667c5aa59e8SDavid Daney struct cvmx_pcsxx_status1_reg_s cn63xxp1; 668c5aa59e8SDavid Daney struct cvmx_pcsxx_status1_reg_s cn66xx; 669c5aa59e8SDavid Daney struct cvmx_pcsxx_status1_reg_s cn68xx; 670c5aa59e8SDavid Daney struct cvmx_pcsxx_status1_reg_s cn68xxp1; 671af866496SDavid Daney }; 672af866496SDavid Daney 673af866496SDavid Daney union cvmx_pcsxx_status2_reg { 674af866496SDavid Daney uint64_t u64; 675af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s { 676c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 677af866496SDavid Daney uint64_t reserved_16_63:48; 678af866496SDavid Daney uint64_t dev:2; 679af866496SDavid Daney uint64_t reserved_12_13:2; 680af866496SDavid Daney uint64_t xmtflt:1; 681af866496SDavid Daney uint64_t rcvflt:1; 682af866496SDavid Daney uint64_t reserved_3_9:7; 683af866496SDavid Daney uint64_t tengb_w:1; 684af866496SDavid Daney uint64_t tengb_x:1; 685af866496SDavid Daney uint64_t tengb_r:1; 686c5aa59e8SDavid Daney #else 687c5aa59e8SDavid Daney uint64_t tengb_r:1; 688c5aa59e8SDavid Daney uint64_t tengb_x:1; 689c5aa59e8SDavid Daney uint64_t tengb_w:1; 690c5aa59e8SDavid Daney uint64_t reserved_3_9:7; 691c5aa59e8SDavid Daney uint64_t rcvflt:1; 692c5aa59e8SDavid Daney uint64_t xmtflt:1; 693c5aa59e8SDavid Daney uint64_t reserved_12_13:2; 694c5aa59e8SDavid Daney uint64_t dev:2; 695c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 696c5aa59e8SDavid Daney #endif 697af866496SDavid Daney } s; 698af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s cn52xx; 699af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s cn52xxp1; 700af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s cn56xx; 701af866496SDavid Daney struct cvmx_pcsxx_status2_reg_s cn56xxp1; 702c5aa59e8SDavid Daney struct cvmx_pcsxx_status2_reg_s cn61xx; 703c5aa59e8SDavid Daney struct cvmx_pcsxx_status2_reg_s cn63xx; 704c5aa59e8SDavid Daney struct cvmx_pcsxx_status2_reg_s cn63xxp1; 705c5aa59e8SDavid Daney struct cvmx_pcsxx_status2_reg_s cn66xx; 706c5aa59e8SDavid Daney struct cvmx_pcsxx_status2_reg_s cn68xx; 707c5aa59e8SDavid Daney struct cvmx_pcsxx_status2_reg_s cn68xxp1; 708af866496SDavid Daney }; 709af866496SDavid Daney 710af866496SDavid Daney union cvmx_pcsxx_tx_rx_polarity_reg { 711af866496SDavid Daney uint64_t u64; 712af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s { 713c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 714af866496SDavid Daney uint64_t reserved_10_63:54; 715af866496SDavid Daney uint64_t xor_rxplrt:4; 716af866496SDavid Daney uint64_t xor_txplrt:4; 717af866496SDavid Daney uint64_t rxplrt:1; 718af866496SDavid Daney uint64_t txplrt:1; 719c5aa59e8SDavid Daney #else 720c5aa59e8SDavid Daney uint64_t txplrt:1; 721c5aa59e8SDavid Daney uint64_t rxplrt:1; 722c5aa59e8SDavid Daney uint64_t xor_txplrt:4; 723c5aa59e8SDavid Daney uint64_t xor_rxplrt:4; 724c5aa59e8SDavid Daney uint64_t reserved_10_63:54; 725c5aa59e8SDavid Daney #endif 726af866496SDavid Daney } s; 727af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn52xx; 728af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_cn52xxp1 { 729c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 730af866496SDavid Daney uint64_t reserved_2_63:62; 731af866496SDavid Daney uint64_t rxplrt:1; 732af866496SDavid Daney uint64_t txplrt:1; 733c5aa59e8SDavid Daney #else 734c5aa59e8SDavid Daney uint64_t txplrt:1; 735c5aa59e8SDavid Daney uint64_t rxplrt:1; 736c5aa59e8SDavid Daney uint64_t reserved_2_63:62; 737c5aa59e8SDavid Daney #endif 738af866496SDavid Daney } cn52xxp1; 739af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn56xx; 740af866496SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_cn52xxp1 cn56xxp1; 741c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn61xx; 742c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn63xx; 743c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn63xxp1; 744c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn66xx; 745c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn68xx; 746c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_polarity_reg_s cn68xxp1; 747af866496SDavid Daney }; 748af866496SDavid Daney 749af866496SDavid Daney union cvmx_pcsxx_tx_rx_states_reg { 750af866496SDavid Daney uint64_t u64; 751af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s { 752c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 753af866496SDavid Daney uint64_t reserved_14_63:50; 754af866496SDavid Daney uint64_t term_err:1; 755af866496SDavid Daney uint64_t syn3bad:1; 756af866496SDavid Daney uint64_t syn2bad:1; 757af866496SDavid Daney uint64_t syn1bad:1; 758af866496SDavid Daney uint64_t syn0bad:1; 759af866496SDavid Daney uint64_t rxbad:1; 760af866496SDavid Daney uint64_t algn_st:3; 761af866496SDavid Daney uint64_t rx_st:2; 762af866496SDavid Daney uint64_t tx_st:3; 763c5aa59e8SDavid Daney #else 764c5aa59e8SDavid Daney uint64_t tx_st:3; 765c5aa59e8SDavid Daney uint64_t rx_st:2; 766c5aa59e8SDavid Daney uint64_t algn_st:3; 767c5aa59e8SDavid Daney uint64_t rxbad:1; 768c5aa59e8SDavid Daney uint64_t syn0bad:1; 769c5aa59e8SDavid Daney uint64_t syn1bad:1; 770c5aa59e8SDavid Daney uint64_t syn2bad:1; 771c5aa59e8SDavid Daney uint64_t syn3bad:1; 772c5aa59e8SDavid Daney uint64_t term_err:1; 773c5aa59e8SDavid Daney uint64_t reserved_14_63:50; 774c5aa59e8SDavid Daney #endif 775af866496SDavid Daney } s; 776af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn52xx; 777af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_cn52xxp1 { 778c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 779af866496SDavid Daney uint64_t reserved_13_63:51; 780af866496SDavid Daney uint64_t syn3bad:1; 781af866496SDavid Daney uint64_t syn2bad:1; 782af866496SDavid Daney uint64_t syn1bad:1; 783af866496SDavid Daney uint64_t syn0bad:1; 784af866496SDavid Daney uint64_t rxbad:1; 785af866496SDavid Daney uint64_t algn_st:3; 786af866496SDavid Daney uint64_t rx_st:2; 787af866496SDavid Daney uint64_t tx_st:3; 788c5aa59e8SDavid Daney #else 789c5aa59e8SDavid Daney uint64_t tx_st:3; 790c5aa59e8SDavid Daney uint64_t rx_st:2; 791c5aa59e8SDavid Daney uint64_t algn_st:3; 792c5aa59e8SDavid Daney uint64_t rxbad:1; 793c5aa59e8SDavid Daney uint64_t syn0bad:1; 794c5aa59e8SDavid Daney uint64_t syn1bad:1; 795c5aa59e8SDavid Daney uint64_t syn2bad:1; 796c5aa59e8SDavid Daney uint64_t syn3bad:1; 797c5aa59e8SDavid Daney uint64_t reserved_13_63:51; 798c5aa59e8SDavid Daney #endif 799af866496SDavid Daney } cn52xxp1; 800af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn56xx; 801af866496SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_cn52xxp1 cn56xxp1; 802c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn61xx; 803c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn63xx; 804c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn63xxp1; 805c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn66xx; 806c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn68xx; 807c5aa59e8SDavid Daney struct cvmx_pcsxx_tx_rx_states_reg_s cn68xxp1; 808af866496SDavid Daney }; 809af866496SDavid Daney 810af866496SDavid Daney #endif 811