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_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 337840267e4SSteven J. Hill void __cvmx_interrupt_pcsx_intx_en_reg_enable(int index, int block); 338840267e4SSteven J. Hill 339af866496SDavid Daney union cvmx_pcsx_anx_adv_reg { 340af866496SDavid Daney uint64_t u64; 341af866496SDavid Daney struct cvmx_pcsx_anx_adv_reg_s { 342c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 343af866496SDavid Daney uint64_t reserved_16_63:48; 344af866496SDavid Daney uint64_t np:1; 345af866496SDavid Daney uint64_t reserved_14_14:1; 346af866496SDavid Daney uint64_t rem_flt:2; 347af866496SDavid Daney uint64_t reserved_9_11:3; 348af866496SDavid Daney uint64_t pause:2; 349af866496SDavid Daney uint64_t hfd:1; 350af866496SDavid Daney uint64_t fd:1; 351af866496SDavid Daney uint64_t reserved_0_4:5; 352c5aa59e8SDavid Daney #else 353c5aa59e8SDavid Daney uint64_t reserved_0_4:5; 354c5aa59e8SDavid Daney uint64_t fd:1; 355c5aa59e8SDavid Daney uint64_t hfd:1; 356c5aa59e8SDavid Daney uint64_t pause:2; 357c5aa59e8SDavid Daney uint64_t reserved_9_11:3; 358c5aa59e8SDavid Daney uint64_t rem_flt:2; 359c5aa59e8SDavid Daney uint64_t reserved_14_14:1; 360c5aa59e8SDavid Daney uint64_t np:1; 361c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 362c5aa59e8SDavid Daney #endif 363af866496SDavid Daney } s; 364af866496SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn52xx; 365af866496SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn52xxp1; 366af866496SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn56xx; 367af866496SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn56xxp1; 368c5aa59e8SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn61xx; 369c5aa59e8SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn63xx; 370c5aa59e8SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn63xxp1; 371c5aa59e8SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn66xx; 372c5aa59e8SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn68xx; 373c5aa59e8SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cn68xxp1; 374c5aa59e8SDavid Daney struct cvmx_pcsx_anx_adv_reg_s cnf71xx; 375af866496SDavid Daney }; 376af866496SDavid Daney 377af866496SDavid Daney union cvmx_pcsx_anx_ext_st_reg { 378af866496SDavid Daney uint64_t u64; 379af866496SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s { 380c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 381af866496SDavid Daney uint64_t reserved_16_63:48; 382af866496SDavid Daney uint64_t thou_xfd:1; 383af866496SDavid Daney uint64_t thou_xhd:1; 384af866496SDavid Daney uint64_t thou_tfd:1; 385af866496SDavid Daney uint64_t thou_thd:1; 386af866496SDavid Daney uint64_t reserved_0_11:12; 387c5aa59e8SDavid Daney #else 388c5aa59e8SDavid Daney uint64_t reserved_0_11:12; 389c5aa59e8SDavid Daney uint64_t thou_thd:1; 390c5aa59e8SDavid Daney uint64_t thou_tfd:1; 391c5aa59e8SDavid Daney uint64_t thou_xhd:1; 392c5aa59e8SDavid Daney uint64_t thou_xfd:1; 393c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 394c5aa59e8SDavid Daney #endif 395af866496SDavid Daney } s; 396af866496SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn52xx; 397af866496SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn52xxp1; 398af866496SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn56xx; 399af866496SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn56xxp1; 400c5aa59e8SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn61xx; 401c5aa59e8SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn63xx; 402c5aa59e8SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn63xxp1; 403c5aa59e8SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn66xx; 404c5aa59e8SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn68xx; 405c5aa59e8SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cn68xxp1; 406c5aa59e8SDavid Daney struct cvmx_pcsx_anx_ext_st_reg_s cnf71xx; 407af866496SDavid Daney }; 408af866496SDavid Daney 409af866496SDavid Daney union cvmx_pcsx_anx_lp_abil_reg { 410af866496SDavid Daney uint64_t u64; 411af866496SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s { 412c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 413af866496SDavid Daney uint64_t reserved_16_63:48; 414af866496SDavid Daney uint64_t np:1; 415af866496SDavid Daney uint64_t ack:1; 416af866496SDavid Daney uint64_t rem_flt:2; 417af866496SDavid Daney uint64_t reserved_9_11:3; 418af866496SDavid Daney uint64_t pause:2; 419af866496SDavid Daney uint64_t hfd:1; 420af866496SDavid Daney uint64_t fd:1; 421af866496SDavid Daney uint64_t reserved_0_4:5; 422c5aa59e8SDavid Daney #else 423c5aa59e8SDavid Daney uint64_t reserved_0_4:5; 424c5aa59e8SDavid Daney uint64_t fd:1; 425c5aa59e8SDavid Daney uint64_t hfd:1; 426c5aa59e8SDavid Daney uint64_t pause:2; 427c5aa59e8SDavid Daney uint64_t reserved_9_11:3; 428c5aa59e8SDavid Daney uint64_t rem_flt:2; 429c5aa59e8SDavid Daney uint64_t ack:1; 430c5aa59e8SDavid Daney uint64_t np:1; 431c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 432c5aa59e8SDavid Daney #endif 433af866496SDavid Daney } s; 434af866496SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn52xx; 435af866496SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn52xxp1; 436af866496SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn56xx; 437af866496SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn56xxp1; 438c5aa59e8SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn61xx; 439c5aa59e8SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn63xx; 440c5aa59e8SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn63xxp1; 441c5aa59e8SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn66xx; 442c5aa59e8SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn68xx; 443c5aa59e8SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cn68xxp1; 444c5aa59e8SDavid Daney struct cvmx_pcsx_anx_lp_abil_reg_s cnf71xx; 445af866496SDavid Daney }; 446af866496SDavid Daney 447af866496SDavid Daney union cvmx_pcsx_anx_results_reg { 448af866496SDavid Daney uint64_t u64; 449af866496SDavid Daney struct cvmx_pcsx_anx_results_reg_s { 450c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 451af866496SDavid Daney uint64_t reserved_7_63:57; 452af866496SDavid Daney uint64_t pause:2; 453af866496SDavid Daney uint64_t spd:2; 454af866496SDavid Daney uint64_t an_cpt:1; 455af866496SDavid Daney uint64_t dup:1; 456af866496SDavid Daney uint64_t link_ok:1; 457c5aa59e8SDavid Daney #else 458c5aa59e8SDavid Daney uint64_t link_ok:1; 459c5aa59e8SDavid Daney uint64_t dup:1; 460c5aa59e8SDavid Daney uint64_t an_cpt:1; 461c5aa59e8SDavid Daney uint64_t spd:2; 462c5aa59e8SDavid Daney uint64_t pause:2; 463c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 464c5aa59e8SDavid Daney #endif 465af866496SDavid Daney } s; 466af866496SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn52xx; 467af866496SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn52xxp1; 468af866496SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn56xx; 469af866496SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn56xxp1; 470c5aa59e8SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn61xx; 471c5aa59e8SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn63xx; 472c5aa59e8SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn63xxp1; 473c5aa59e8SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn66xx; 474c5aa59e8SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn68xx; 475c5aa59e8SDavid Daney struct cvmx_pcsx_anx_results_reg_s cn68xxp1; 476c5aa59e8SDavid Daney struct cvmx_pcsx_anx_results_reg_s cnf71xx; 477af866496SDavid Daney }; 478af866496SDavid Daney 479af866496SDavid Daney union cvmx_pcsx_intx_en_reg { 480af866496SDavid Daney uint64_t u64; 481af866496SDavid Daney struct cvmx_pcsx_intx_en_reg_s { 482c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 483c5aa59e8SDavid Daney uint64_t reserved_13_63:51; 484c5aa59e8SDavid Daney uint64_t dbg_sync_en:1; 485c5aa59e8SDavid Daney uint64_t dup:1; 486c5aa59e8SDavid Daney uint64_t sync_bad_en:1; 487c5aa59e8SDavid Daney uint64_t an_bad_en:1; 488c5aa59e8SDavid Daney uint64_t rxlock_en:1; 489c5aa59e8SDavid Daney uint64_t rxbad_en:1; 490c5aa59e8SDavid Daney uint64_t rxerr_en:1; 491c5aa59e8SDavid Daney uint64_t txbad_en:1; 492c5aa59e8SDavid Daney uint64_t txfifo_en:1; 493c5aa59e8SDavid Daney uint64_t txfifu_en:1; 494c5aa59e8SDavid Daney uint64_t an_err_en:1; 495c5aa59e8SDavid Daney uint64_t xmit_en:1; 496c5aa59e8SDavid Daney uint64_t lnkspd_en:1; 497c5aa59e8SDavid Daney #else 498c5aa59e8SDavid Daney uint64_t lnkspd_en:1; 499c5aa59e8SDavid Daney uint64_t xmit_en:1; 500c5aa59e8SDavid Daney uint64_t an_err_en:1; 501c5aa59e8SDavid Daney uint64_t txfifu_en:1; 502c5aa59e8SDavid Daney uint64_t txfifo_en:1; 503c5aa59e8SDavid Daney uint64_t txbad_en:1; 504c5aa59e8SDavid Daney uint64_t rxerr_en:1; 505c5aa59e8SDavid Daney uint64_t rxbad_en:1; 506c5aa59e8SDavid Daney uint64_t rxlock_en:1; 507c5aa59e8SDavid Daney uint64_t an_bad_en:1; 508c5aa59e8SDavid Daney uint64_t sync_bad_en:1; 509c5aa59e8SDavid Daney uint64_t dup:1; 510c5aa59e8SDavid Daney uint64_t dbg_sync_en:1; 511c5aa59e8SDavid Daney uint64_t reserved_13_63:51; 512c5aa59e8SDavid Daney #endif 513c5aa59e8SDavid Daney } s; 514c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_cn52xx { 515c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 516af866496SDavid Daney uint64_t reserved_12_63:52; 517af866496SDavid Daney uint64_t dup:1; 518af866496SDavid Daney uint64_t sync_bad_en:1; 519af866496SDavid Daney uint64_t an_bad_en:1; 520af866496SDavid Daney uint64_t rxlock_en:1; 521af866496SDavid Daney uint64_t rxbad_en:1; 522af866496SDavid Daney uint64_t rxerr_en:1; 523af866496SDavid Daney uint64_t txbad_en:1; 524af866496SDavid Daney uint64_t txfifo_en:1; 525af866496SDavid Daney uint64_t txfifu_en:1; 526af866496SDavid Daney uint64_t an_err_en:1; 527af866496SDavid Daney uint64_t xmit_en:1; 528af866496SDavid Daney uint64_t lnkspd_en:1; 529c5aa59e8SDavid Daney #else 530c5aa59e8SDavid Daney uint64_t lnkspd_en:1; 531c5aa59e8SDavid Daney uint64_t xmit_en:1; 532c5aa59e8SDavid Daney uint64_t an_err_en:1; 533c5aa59e8SDavid Daney uint64_t txfifu_en:1; 534c5aa59e8SDavid Daney uint64_t txfifo_en:1; 535c5aa59e8SDavid Daney uint64_t txbad_en:1; 536c5aa59e8SDavid Daney uint64_t rxerr_en:1; 537c5aa59e8SDavid Daney uint64_t rxbad_en:1; 538c5aa59e8SDavid Daney uint64_t rxlock_en:1; 539c5aa59e8SDavid Daney uint64_t an_bad_en:1; 540c5aa59e8SDavid Daney uint64_t sync_bad_en:1; 541c5aa59e8SDavid Daney uint64_t dup:1; 542c5aa59e8SDavid Daney uint64_t reserved_12_63:52; 543c5aa59e8SDavid Daney #endif 544c5aa59e8SDavid Daney } cn52xx; 545c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_cn52xx cn52xxp1; 546c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_cn52xx cn56xx; 547c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_cn52xx cn56xxp1; 548c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_s cn61xx; 549c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_s cn63xx; 550c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_s cn63xxp1; 551c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_s cn66xx; 552c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_s cn68xx; 553c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_s cn68xxp1; 554c5aa59e8SDavid Daney struct cvmx_pcsx_intx_en_reg_s cnf71xx; 555af866496SDavid Daney }; 556af866496SDavid Daney 557af866496SDavid Daney union cvmx_pcsx_intx_reg { 558af866496SDavid Daney uint64_t u64; 559af866496SDavid Daney struct cvmx_pcsx_intx_reg_s { 560c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 561c5aa59e8SDavid Daney uint64_t reserved_13_63:51; 562c5aa59e8SDavid Daney uint64_t dbg_sync:1; 563c5aa59e8SDavid Daney uint64_t dup:1; 564c5aa59e8SDavid Daney uint64_t sync_bad:1; 565c5aa59e8SDavid Daney uint64_t an_bad:1; 566c5aa59e8SDavid Daney uint64_t rxlock:1; 567c5aa59e8SDavid Daney uint64_t rxbad:1; 568c5aa59e8SDavid Daney uint64_t rxerr:1; 569c5aa59e8SDavid Daney uint64_t txbad:1; 570c5aa59e8SDavid Daney uint64_t txfifo:1; 571c5aa59e8SDavid Daney uint64_t txfifu:1; 572c5aa59e8SDavid Daney uint64_t an_err:1; 573c5aa59e8SDavid Daney uint64_t xmit:1; 574c5aa59e8SDavid Daney uint64_t lnkspd:1; 575c5aa59e8SDavid Daney #else 576c5aa59e8SDavid Daney uint64_t lnkspd:1; 577c5aa59e8SDavid Daney uint64_t xmit:1; 578c5aa59e8SDavid Daney uint64_t an_err:1; 579c5aa59e8SDavid Daney uint64_t txfifu:1; 580c5aa59e8SDavid Daney uint64_t txfifo:1; 581c5aa59e8SDavid Daney uint64_t txbad:1; 582c5aa59e8SDavid Daney uint64_t rxerr:1; 583c5aa59e8SDavid Daney uint64_t rxbad:1; 584c5aa59e8SDavid Daney uint64_t rxlock:1; 585c5aa59e8SDavid Daney uint64_t an_bad:1; 586c5aa59e8SDavid Daney uint64_t sync_bad:1; 587c5aa59e8SDavid Daney uint64_t dup:1; 588c5aa59e8SDavid Daney uint64_t dbg_sync:1; 589c5aa59e8SDavid Daney uint64_t reserved_13_63:51; 590c5aa59e8SDavid Daney #endif 591c5aa59e8SDavid Daney } s; 592c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_cn52xx { 593c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 594af866496SDavid Daney uint64_t reserved_12_63:52; 595af866496SDavid Daney uint64_t dup:1; 596af866496SDavid Daney uint64_t sync_bad:1; 597af866496SDavid Daney uint64_t an_bad:1; 598af866496SDavid Daney uint64_t rxlock:1; 599af866496SDavid Daney uint64_t rxbad:1; 600af866496SDavid Daney uint64_t rxerr:1; 601af866496SDavid Daney uint64_t txbad:1; 602af866496SDavid Daney uint64_t txfifo:1; 603af866496SDavid Daney uint64_t txfifu:1; 604af866496SDavid Daney uint64_t an_err:1; 605af866496SDavid Daney uint64_t xmit:1; 606af866496SDavid Daney uint64_t lnkspd:1; 607c5aa59e8SDavid Daney #else 608c5aa59e8SDavid Daney uint64_t lnkspd:1; 609c5aa59e8SDavid Daney uint64_t xmit:1; 610c5aa59e8SDavid Daney uint64_t an_err:1; 611c5aa59e8SDavid Daney uint64_t txfifu:1; 612c5aa59e8SDavid Daney uint64_t txfifo:1; 613c5aa59e8SDavid Daney uint64_t txbad:1; 614c5aa59e8SDavid Daney uint64_t rxerr:1; 615c5aa59e8SDavid Daney uint64_t rxbad:1; 616c5aa59e8SDavid Daney uint64_t rxlock:1; 617c5aa59e8SDavid Daney uint64_t an_bad:1; 618c5aa59e8SDavid Daney uint64_t sync_bad:1; 619c5aa59e8SDavid Daney uint64_t dup:1; 620c5aa59e8SDavid Daney uint64_t reserved_12_63:52; 621c5aa59e8SDavid Daney #endif 622c5aa59e8SDavid Daney } cn52xx; 623c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_cn52xx cn52xxp1; 624c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_cn52xx cn56xx; 625c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_cn52xx cn56xxp1; 626c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_s cn61xx; 627c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_s cn63xx; 628c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_s cn63xxp1; 629c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_s cn66xx; 630c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_s cn68xx; 631c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_s cn68xxp1; 632c5aa59e8SDavid Daney struct cvmx_pcsx_intx_reg_s cnf71xx; 633af866496SDavid Daney }; 634af866496SDavid Daney 635af866496SDavid Daney union cvmx_pcsx_linkx_timer_count_reg { 636af866496SDavid Daney uint64_t u64; 637af866496SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s { 638c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 639af866496SDavid Daney uint64_t reserved_16_63:48; 640af866496SDavid Daney uint64_t count:16; 641c5aa59e8SDavid Daney #else 642c5aa59e8SDavid Daney uint64_t count:16; 643c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 644c5aa59e8SDavid Daney #endif 645af866496SDavid Daney } s; 646af866496SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn52xx; 647af866496SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn52xxp1; 648af866496SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn56xx; 649af866496SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn56xxp1; 650c5aa59e8SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn61xx; 651c5aa59e8SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn63xx; 652c5aa59e8SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn63xxp1; 653c5aa59e8SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn66xx; 654c5aa59e8SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn68xx; 655c5aa59e8SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cn68xxp1; 656c5aa59e8SDavid Daney struct cvmx_pcsx_linkx_timer_count_reg_s cnf71xx; 657af866496SDavid Daney }; 658af866496SDavid Daney 659af866496SDavid Daney union cvmx_pcsx_log_anlx_reg { 660af866496SDavid Daney uint64_t u64; 661af866496SDavid Daney struct cvmx_pcsx_log_anlx_reg_s { 662c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 663af866496SDavid Daney uint64_t reserved_4_63:60; 664af866496SDavid Daney uint64_t lafifovfl:1; 665af866496SDavid Daney uint64_t la_en:1; 666af866496SDavid Daney uint64_t pkt_sz:2; 667c5aa59e8SDavid Daney #else 668c5aa59e8SDavid Daney uint64_t pkt_sz:2; 669c5aa59e8SDavid Daney uint64_t la_en:1; 670c5aa59e8SDavid Daney uint64_t lafifovfl:1; 671c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 672c5aa59e8SDavid Daney #endif 673af866496SDavid Daney } s; 674af866496SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn52xx; 675af866496SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn52xxp1; 676af866496SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn56xx; 677af866496SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn56xxp1; 678c5aa59e8SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn61xx; 679c5aa59e8SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn63xx; 680c5aa59e8SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn63xxp1; 681c5aa59e8SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn66xx; 682c5aa59e8SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn68xx; 683c5aa59e8SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cn68xxp1; 684c5aa59e8SDavid Daney struct cvmx_pcsx_log_anlx_reg_s cnf71xx; 685af866496SDavid Daney }; 686af866496SDavid Daney 687af866496SDavid Daney union cvmx_pcsx_miscx_ctl_reg { 688af866496SDavid Daney uint64_t u64; 689af866496SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s { 690c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 691af866496SDavid Daney uint64_t reserved_13_63:51; 692af866496SDavid Daney uint64_t sgmii:1; 693af866496SDavid Daney uint64_t gmxeno:1; 694af866496SDavid Daney uint64_t loopbck2:1; 695af866496SDavid Daney uint64_t mac_phy:1; 696af866496SDavid Daney uint64_t mode:1; 697af866496SDavid Daney uint64_t an_ovrd:1; 698af866496SDavid Daney uint64_t samp_pt:7; 699c5aa59e8SDavid Daney #else 700c5aa59e8SDavid Daney uint64_t samp_pt:7; 701c5aa59e8SDavid Daney uint64_t an_ovrd:1; 702c5aa59e8SDavid Daney uint64_t mode:1; 703c5aa59e8SDavid Daney uint64_t mac_phy:1; 704c5aa59e8SDavid Daney uint64_t loopbck2:1; 705c5aa59e8SDavid Daney uint64_t gmxeno:1; 706c5aa59e8SDavid Daney uint64_t sgmii:1; 707c5aa59e8SDavid Daney uint64_t reserved_13_63:51; 708c5aa59e8SDavid Daney #endif 709af866496SDavid Daney } s; 710af866496SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn52xx; 711af866496SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn52xxp1; 712af866496SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn56xx; 713af866496SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn56xxp1; 714c5aa59e8SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn61xx; 715c5aa59e8SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn63xx; 716c5aa59e8SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn63xxp1; 717c5aa59e8SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn66xx; 718c5aa59e8SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn68xx; 719c5aa59e8SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cn68xxp1; 720c5aa59e8SDavid Daney struct cvmx_pcsx_miscx_ctl_reg_s cnf71xx; 721af866496SDavid Daney }; 722af866496SDavid Daney 723af866496SDavid Daney union cvmx_pcsx_mrx_control_reg { 724af866496SDavid Daney uint64_t u64; 725af866496SDavid Daney struct cvmx_pcsx_mrx_control_reg_s { 726c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 727af866496SDavid Daney uint64_t reserved_16_63:48; 728af866496SDavid Daney uint64_t reset:1; 729af866496SDavid Daney uint64_t loopbck1:1; 730af866496SDavid Daney uint64_t spdlsb:1; 731af866496SDavid Daney uint64_t an_en:1; 732af866496SDavid Daney uint64_t pwr_dn:1; 733af866496SDavid Daney uint64_t reserved_10_10:1; 734af866496SDavid Daney uint64_t rst_an:1; 735af866496SDavid Daney uint64_t dup:1; 736af866496SDavid Daney uint64_t coltst:1; 737af866496SDavid Daney uint64_t spdmsb:1; 738af866496SDavid Daney uint64_t uni:1; 739af866496SDavid Daney uint64_t reserved_0_4:5; 740c5aa59e8SDavid Daney #else 741c5aa59e8SDavid Daney uint64_t reserved_0_4:5; 742c5aa59e8SDavid Daney uint64_t uni:1; 743c5aa59e8SDavid Daney uint64_t spdmsb:1; 744c5aa59e8SDavid Daney uint64_t coltst:1; 745c5aa59e8SDavid Daney uint64_t dup:1; 746c5aa59e8SDavid Daney uint64_t rst_an:1; 747c5aa59e8SDavid Daney uint64_t reserved_10_10:1; 748c5aa59e8SDavid Daney uint64_t pwr_dn:1; 749c5aa59e8SDavid Daney uint64_t an_en:1; 750c5aa59e8SDavid Daney uint64_t spdlsb:1; 751c5aa59e8SDavid Daney uint64_t loopbck1:1; 752c5aa59e8SDavid Daney uint64_t reset:1; 753c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 754c5aa59e8SDavid Daney #endif 755af866496SDavid Daney } s; 756af866496SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn52xx; 757af866496SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn52xxp1; 758af866496SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn56xx; 759af866496SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn56xxp1; 760c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn61xx; 761c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn63xx; 762c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn63xxp1; 763c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn66xx; 764c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn68xx; 765c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cn68xxp1; 766c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_control_reg_s cnf71xx; 767af866496SDavid Daney }; 768af866496SDavid Daney 769af866496SDavid Daney union cvmx_pcsx_mrx_status_reg { 770af866496SDavid Daney uint64_t u64; 771af866496SDavid Daney struct cvmx_pcsx_mrx_status_reg_s { 772c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 773af866496SDavid Daney uint64_t reserved_16_63:48; 774af866496SDavid Daney uint64_t hun_t4:1; 775af866496SDavid Daney uint64_t hun_xfd:1; 776af866496SDavid Daney uint64_t hun_xhd:1; 777af866496SDavid Daney uint64_t ten_fd:1; 778af866496SDavid Daney uint64_t ten_hd:1; 779af866496SDavid Daney uint64_t hun_t2fd:1; 780af866496SDavid Daney uint64_t hun_t2hd:1; 781af866496SDavid Daney uint64_t ext_st:1; 782af866496SDavid Daney uint64_t reserved_7_7:1; 783af866496SDavid Daney uint64_t prb_sup:1; 784af866496SDavid Daney uint64_t an_cpt:1; 785af866496SDavid Daney uint64_t rm_flt:1; 786af866496SDavid Daney uint64_t an_abil:1; 787af866496SDavid Daney uint64_t lnk_st:1; 788af866496SDavid Daney uint64_t reserved_1_1:1; 789af866496SDavid Daney uint64_t extnd:1; 790c5aa59e8SDavid Daney #else 791c5aa59e8SDavid Daney uint64_t extnd:1; 792c5aa59e8SDavid Daney uint64_t reserved_1_1:1; 793c5aa59e8SDavid Daney uint64_t lnk_st:1; 794c5aa59e8SDavid Daney uint64_t an_abil:1; 795c5aa59e8SDavid Daney uint64_t rm_flt:1; 796c5aa59e8SDavid Daney uint64_t an_cpt:1; 797c5aa59e8SDavid Daney uint64_t prb_sup:1; 798c5aa59e8SDavid Daney uint64_t reserved_7_7:1; 799c5aa59e8SDavid Daney uint64_t ext_st:1; 800c5aa59e8SDavid Daney uint64_t hun_t2hd:1; 801c5aa59e8SDavid Daney uint64_t hun_t2fd:1; 802c5aa59e8SDavid Daney uint64_t ten_hd:1; 803c5aa59e8SDavid Daney uint64_t ten_fd:1; 804c5aa59e8SDavid Daney uint64_t hun_xhd:1; 805c5aa59e8SDavid Daney uint64_t hun_xfd:1; 806c5aa59e8SDavid Daney uint64_t hun_t4:1; 807c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 808c5aa59e8SDavid Daney #endif 809af866496SDavid Daney } s; 810af866496SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn52xx; 811af866496SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn52xxp1; 812af866496SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn56xx; 813af866496SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn56xxp1; 814c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn61xx; 815c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn63xx; 816c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn63xxp1; 817c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn66xx; 818c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn68xx; 819c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cn68xxp1; 820c5aa59e8SDavid Daney struct cvmx_pcsx_mrx_status_reg_s cnf71xx; 821af866496SDavid Daney }; 822af866496SDavid Daney 823af866496SDavid Daney union cvmx_pcsx_rxx_states_reg { 824af866496SDavid Daney uint64_t u64; 825af866496SDavid Daney struct cvmx_pcsx_rxx_states_reg_s { 826c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 827af866496SDavid Daney uint64_t reserved_16_63:48; 828af866496SDavid Daney uint64_t rx_bad:1; 829af866496SDavid Daney uint64_t rx_st:5; 830af866496SDavid Daney uint64_t sync_bad:1; 831af866496SDavid Daney uint64_t sync:4; 832af866496SDavid Daney uint64_t an_bad:1; 833af866496SDavid Daney uint64_t an_st:4; 834c5aa59e8SDavid Daney #else 835c5aa59e8SDavid Daney uint64_t an_st:4; 836c5aa59e8SDavid Daney uint64_t an_bad:1; 837c5aa59e8SDavid Daney uint64_t sync:4; 838c5aa59e8SDavid Daney uint64_t sync_bad:1; 839c5aa59e8SDavid Daney uint64_t rx_st:5; 840c5aa59e8SDavid Daney uint64_t rx_bad:1; 841c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 842c5aa59e8SDavid Daney #endif 843af866496SDavid Daney } s; 844af866496SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn52xx; 845af866496SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn52xxp1; 846af866496SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn56xx; 847af866496SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn56xxp1; 848c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn61xx; 849c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn63xx; 850c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn63xxp1; 851c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn66xx; 852c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn68xx; 853c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cn68xxp1; 854c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_states_reg_s cnf71xx; 855af866496SDavid Daney }; 856af866496SDavid Daney 857af866496SDavid Daney union cvmx_pcsx_rxx_sync_reg { 858af866496SDavid Daney uint64_t u64; 859af866496SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s { 860c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 861af866496SDavid Daney uint64_t reserved_2_63:62; 862af866496SDavid Daney uint64_t sync:1; 863af866496SDavid Daney uint64_t bit_lock:1; 864c5aa59e8SDavid Daney #else 865c5aa59e8SDavid Daney uint64_t bit_lock:1; 866c5aa59e8SDavid Daney uint64_t sync:1; 867c5aa59e8SDavid Daney uint64_t reserved_2_63:62; 868c5aa59e8SDavid Daney #endif 869af866496SDavid Daney } s; 870af866496SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn52xx; 871af866496SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn52xxp1; 872af866496SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn56xx; 873af866496SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn56xxp1; 874c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn61xx; 875c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn63xx; 876c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn63xxp1; 877c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn66xx; 878c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn68xx; 879c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cn68xxp1; 880c5aa59e8SDavid Daney struct cvmx_pcsx_rxx_sync_reg_s cnf71xx; 881af866496SDavid Daney }; 882af866496SDavid Daney 883af866496SDavid Daney union cvmx_pcsx_sgmx_an_adv_reg { 884af866496SDavid Daney uint64_t u64; 885af866496SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s { 886c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 887af866496SDavid Daney uint64_t reserved_16_63:48; 888af866496SDavid Daney uint64_t link:1; 889af866496SDavid Daney uint64_t ack:1; 890af866496SDavid Daney uint64_t reserved_13_13:1; 891af866496SDavid Daney uint64_t dup:1; 892af866496SDavid Daney uint64_t speed:2; 893af866496SDavid Daney uint64_t reserved_1_9:9; 894af866496SDavid Daney uint64_t one:1; 895c5aa59e8SDavid Daney #else 896c5aa59e8SDavid Daney uint64_t one:1; 897c5aa59e8SDavid Daney uint64_t reserved_1_9:9; 898c5aa59e8SDavid Daney uint64_t speed:2; 899c5aa59e8SDavid Daney uint64_t dup:1; 900c5aa59e8SDavid Daney uint64_t reserved_13_13:1; 901c5aa59e8SDavid Daney uint64_t ack:1; 902c5aa59e8SDavid Daney uint64_t link:1; 903c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 904c5aa59e8SDavid Daney #endif 905af866496SDavid Daney } s; 906af866496SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn52xx; 907af866496SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn52xxp1; 908af866496SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn56xx; 909af866496SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn56xxp1; 910c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn61xx; 911c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn63xx; 912c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn63xxp1; 913c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn66xx; 914c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn68xx; 915c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cn68xxp1; 916c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_an_adv_reg_s cnf71xx; 917af866496SDavid Daney }; 918af866496SDavid Daney 919af866496SDavid Daney union cvmx_pcsx_sgmx_lp_adv_reg { 920af866496SDavid Daney uint64_t u64; 921af866496SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s { 922c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 923af866496SDavid Daney uint64_t reserved_16_63:48; 924af866496SDavid Daney uint64_t link:1; 925af866496SDavid Daney uint64_t reserved_13_14:2; 926af866496SDavid Daney uint64_t dup:1; 927af866496SDavid Daney uint64_t speed:2; 928af866496SDavid Daney uint64_t reserved_1_9:9; 929af866496SDavid Daney uint64_t one:1; 930c5aa59e8SDavid Daney #else 931c5aa59e8SDavid Daney uint64_t one:1; 932c5aa59e8SDavid Daney uint64_t reserved_1_9:9; 933c5aa59e8SDavid Daney uint64_t speed:2; 934c5aa59e8SDavid Daney uint64_t dup:1; 935c5aa59e8SDavid Daney uint64_t reserved_13_14:2; 936c5aa59e8SDavid Daney uint64_t link:1; 937c5aa59e8SDavid Daney uint64_t reserved_16_63:48; 938c5aa59e8SDavid Daney #endif 939af866496SDavid Daney } s; 940af866496SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn52xx; 941af866496SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn52xxp1; 942af866496SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn56xx; 943af866496SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn56xxp1; 944c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn61xx; 945c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn63xx; 946c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn63xxp1; 947c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn66xx; 948c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn68xx; 949c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cn68xxp1; 950c5aa59e8SDavid Daney struct cvmx_pcsx_sgmx_lp_adv_reg_s cnf71xx; 951af866496SDavid Daney }; 952af866496SDavid Daney 953af866496SDavid Daney union cvmx_pcsx_txx_states_reg { 954af866496SDavid Daney uint64_t u64; 955af866496SDavid Daney struct cvmx_pcsx_txx_states_reg_s { 956c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 957af866496SDavid Daney uint64_t reserved_7_63:57; 958af866496SDavid Daney uint64_t xmit:2; 959af866496SDavid Daney uint64_t tx_bad:1; 960af866496SDavid Daney uint64_t ord_st:4; 961c5aa59e8SDavid Daney #else 962c5aa59e8SDavid Daney uint64_t ord_st:4; 963c5aa59e8SDavid Daney uint64_t tx_bad:1; 964c5aa59e8SDavid Daney uint64_t xmit:2; 965c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 966c5aa59e8SDavid Daney #endif 967af866496SDavid Daney } s; 968af866496SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn52xx; 969af866496SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn52xxp1; 970af866496SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn56xx; 971af866496SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn56xxp1; 972c5aa59e8SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn61xx; 973c5aa59e8SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn63xx; 974c5aa59e8SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn63xxp1; 975c5aa59e8SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn66xx; 976c5aa59e8SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn68xx; 977c5aa59e8SDavid Daney struct cvmx_pcsx_txx_states_reg_s cn68xxp1; 978c5aa59e8SDavid Daney struct cvmx_pcsx_txx_states_reg_s cnf71xx; 979af866496SDavid Daney }; 980af866496SDavid Daney 981af866496SDavid Daney union cvmx_pcsx_tx_rxx_polarity_reg { 982af866496SDavid Daney uint64_t u64; 983af866496SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s { 984c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 985af866496SDavid Daney uint64_t reserved_4_63:60; 986af866496SDavid Daney uint64_t rxovrd:1; 987af866496SDavid Daney uint64_t autorxpl:1; 988af866496SDavid Daney uint64_t rxplrt:1; 989af866496SDavid Daney uint64_t txplrt:1; 990c5aa59e8SDavid Daney #else 991c5aa59e8SDavid Daney uint64_t txplrt:1; 992c5aa59e8SDavid Daney uint64_t rxplrt:1; 993c5aa59e8SDavid Daney uint64_t autorxpl:1; 994c5aa59e8SDavid Daney uint64_t rxovrd:1; 995c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 996c5aa59e8SDavid Daney #endif 997af866496SDavid Daney } s; 998af866496SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn52xx; 999af866496SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn52xxp1; 1000af866496SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn56xx; 1001af866496SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn56xxp1; 1002c5aa59e8SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn61xx; 1003c5aa59e8SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn63xx; 1004c5aa59e8SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn63xxp1; 1005c5aa59e8SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn66xx; 1006c5aa59e8SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn68xx; 1007c5aa59e8SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cn68xxp1; 1008c5aa59e8SDavid Daney struct cvmx_pcsx_tx_rxx_polarity_reg_s cnf71xx; 1009af866496SDavid Daney }; 1010af866496SDavid Daney 1011af866496SDavid Daney #endif 1012