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