1a7187a2fSDavid Daney /***********************license start*************** 2a7187a2fSDavid Daney * Author: Cavium Networks 3a7187a2fSDavid Daney * 4a7187a2fSDavid Daney * Contact: support@caviumnetworks.com 5a7187a2fSDavid Daney * This file is part of the OCTEON SDK 6a7187a2fSDavid Daney * 7c5aa59e8SDavid Daney * Copyright (c) 2003-2012 Cavium Networks 8a7187a2fSDavid Daney * 9a7187a2fSDavid Daney * This file is free software; you can redistribute it and/or modify 10a7187a2fSDavid Daney * it under the terms of the GNU General Public License, Version 2, as 11a7187a2fSDavid Daney * published by the Free Software Foundation. 12a7187a2fSDavid Daney * 13a7187a2fSDavid Daney * This file is distributed in the hope that it will be useful, but 14a7187a2fSDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15a7187a2fSDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16a7187a2fSDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 17a7187a2fSDavid Daney * details. 18a7187a2fSDavid Daney * 19a7187a2fSDavid Daney * You should have received a copy of the GNU General Public License 20a7187a2fSDavid Daney * along with this file; if not, write to the Free Software 21a7187a2fSDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22a7187a2fSDavid Daney * or visit http://www.gnu.org/licenses/. 23a7187a2fSDavid Daney * 24a7187a2fSDavid Daney * This file may also be available under a different license from Cavium. 25a7187a2fSDavid Daney * Contact Cavium Networks for more information 26a7187a2fSDavid Daney ***********************license end**************************************/ 27a7187a2fSDavid Daney 28a7187a2fSDavid Daney #ifndef __CVMX_MIXX_DEFS_H__ 29a7187a2fSDavid Daney #define __CVMX_MIXX_DEFS_H__ 30a7187a2fSDavid Daney 31aa32a955SDavid Daney #define CVMX_MIXX_BIST(offset) (CVMX_ADD_IO_SEG(0x0001070000100078ull) + ((offset) & 1) * 2048) 32aa32a955SDavid Daney #define CVMX_MIXX_CTL(offset) (CVMX_ADD_IO_SEG(0x0001070000100020ull) + ((offset) & 1) * 2048) 33aa32a955SDavid Daney #define CVMX_MIXX_INTENA(offset) (CVMX_ADD_IO_SEG(0x0001070000100050ull) + ((offset) & 1) * 2048) 34aa32a955SDavid Daney #define CVMX_MIXX_IRCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100030ull) + ((offset) & 1) * 2048) 35aa32a955SDavid Daney #define CVMX_MIXX_IRHWM(offset) (CVMX_ADD_IO_SEG(0x0001070000100028ull) + ((offset) & 1) * 2048) 36aa32a955SDavid Daney #define CVMX_MIXX_IRING1(offset) (CVMX_ADD_IO_SEG(0x0001070000100010ull) + ((offset) & 1) * 2048) 37aa32a955SDavid Daney #define CVMX_MIXX_IRING2(offset) (CVMX_ADD_IO_SEG(0x0001070000100018ull) + ((offset) & 1) * 2048) 38aa32a955SDavid Daney #define CVMX_MIXX_ISR(offset) (CVMX_ADD_IO_SEG(0x0001070000100048ull) + ((offset) & 1) * 2048) 39aa32a955SDavid Daney #define CVMX_MIXX_ORCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100040ull) + ((offset) & 1) * 2048) 40aa32a955SDavid Daney #define CVMX_MIXX_ORHWM(offset) (CVMX_ADD_IO_SEG(0x0001070000100038ull) + ((offset) & 1) * 2048) 41aa32a955SDavid Daney #define CVMX_MIXX_ORING1(offset) (CVMX_ADD_IO_SEG(0x0001070000100000ull) + ((offset) & 1) * 2048) 42aa32a955SDavid Daney #define CVMX_MIXX_ORING2(offset) (CVMX_ADD_IO_SEG(0x0001070000100008ull) + ((offset) & 1) * 2048) 43aa32a955SDavid Daney #define CVMX_MIXX_REMCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100058ull) + ((offset) & 1) * 2048) 44aa32a955SDavid Daney #define CVMX_MIXX_TSCTL(offset) (CVMX_ADD_IO_SEG(0x0001070000100068ull) + ((offset) & 1) * 2048) 45aa32a955SDavid Daney #define CVMX_MIXX_TSTAMP(offset) (CVMX_ADD_IO_SEG(0x0001070000100060ull) + ((offset) & 1) * 2048) 46a7187a2fSDavid Daney 47a7187a2fSDavid Daney union cvmx_mixx_bist { 48a7187a2fSDavid Daney uint64_t u64; 49a7187a2fSDavid Daney struct cvmx_mixx_bist_s { 50c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 51aa32a955SDavid Daney uint64_t reserved_6_63:58; 52aa32a955SDavid Daney uint64_t opfdat:1; 53aa32a955SDavid Daney uint64_t mrgdat:1; 54a7187a2fSDavid Daney uint64_t mrqdat:1; 55a7187a2fSDavid Daney uint64_t ipfdat:1; 56a7187a2fSDavid Daney uint64_t irfdat:1; 57a7187a2fSDavid Daney uint64_t orfdat:1; 58c5aa59e8SDavid Daney #else 59c5aa59e8SDavid Daney uint64_t orfdat:1; 60c5aa59e8SDavid Daney uint64_t irfdat:1; 61c5aa59e8SDavid Daney uint64_t ipfdat:1; 62c5aa59e8SDavid Daney uint64_t mrqdat:1; 63c5aa59e8SDavid Daney uint64_t mrgdat:1; 64c5aa59e8SDavid Daney uint64_t opfdat:1; 65c5aa59e8SDavid Daney uint64_t reserved_6_63:58; 66c5aa59e8SDavid Daney #endif 67a7187a2fSDavid Daney } s; 68aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx { 69c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 70aa32a955SDavid Daney uint64_t reserved_4_63:60; 71aa32a955SDavid Daney uint64_t mrqdat:1; 72aa32a955SDavid Daney uint64_t ipfdat:1; 73aa32a955SDavid Daney uint64_t irfdat:1; 74aa32a955SDavid Daney uint64_t orfdat:1; 75c5aa59e8SDavid Daney #else 76c5aa59e8SDavid Daney uint64_t orfdat:1; 77c5aa59e8SDavid Daney uint64_t irfdat:1; 78c5aa59e8SDavid Daney uint64_t ipfdat:1; 79c5aa59e8SDavid Daney uint64_t mrqdat:1; 80c5aa59e8SDavid Daney uint64_t reserved_4_63:60; 81c5aa59e8SDavid Daney #endif 82aa32a955SDavid Daney } cn52xx; 83aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx cn52xxp1; 84aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx cn56xx; 85aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx cn56xxp1; 86c5aa59e8SDavid Daney struct cvmx_mixx_bist_s cn61xx; 87aa32a955SDavid Daney struct cvmx_mixx_bist_s cn63xx; 88aa32a955SDavid Daney struct cvmx_mixx_bist_s cn63xxp1; 89c5aa59e8SDavid Daney struct cvmx_mixx_bist_s cn66xx; 90c5aa59e8SDavid Daney struct cvmx_mixx_bist_s cn68xx; 91c5aa59e8SDavid Daney struct cvmx_mixx_bist_s cn68xxp1; 92a7187a2fSDavid Daney }; 93a7187a2fSDavid Daney 94a7187a2fSDavid Daney union cvmx_mixx_ctl { 95a7187a2fSDavid Daney uint64_t u64; 96a7187a2fSDavid Daney struct cvmx_mixx_ctl_s { 97c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 98aa32a955SDavid Daney uint64_t reserved_12_63:52; 99aa32a955SDavid Daney uint64_t ts_thresh:4; 100a7187a2fSDavid Daney uint64_t crc_strip:1; 101a7187a2fSDavid Daney uint64_t busy:1; 102a7187a2fSDavid Daney uint64_t en:1; 103a7187a2fSDavid Daney uint64_t reset:1; 104a7187a2fSDavid Daney uint64_t lendian:1; 105a7187a2fSDavid Daney uint64_t nbtarb:1; 106a7187a2fSDavid Daney uint64_t mrq_hwm:2; 107c5aa59e8SDavid Daney #else 108c5aa59e8SDavid Daney uint64_t mrq_hwm:2; 109c5aa59e8SDavid Daney uint64_t nbtarb:1; 110c5aa59e8SDavid Daney uint64_t lendian:1; 111c5aa59e8SDavid Daney uint64_t reset:1; 112c5aa59e8SDavid Daney uint64_t en:1; 113c5aa59e8SDavid Daney uint64_t busy:1; 114c5aa59e8SDavid Daney uint64_t crc_strip:1; 115c5aa59e8SDavid Daney uint64_t ts_thresh:4; 116c5aa59e8SDavid Daney uint64_t reserved_12_63:52; 117c5aa59e8SDavid Daney #endif 118a7187a2fSDavid Daney } s; 119aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx { 120c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 121aa32a955SDavid Daney uint64_t reserved_8_63:56; 122aa32a955SDavid Daney uint64_t crc_strip:1; 123aa32a955SDavid Daney uint64_t busy:1; 124aa32a955SDavid Daney uint64_t en:1; 125aa32a955SDavid Daney uint64_t reset:1; 126aa32a955SDavid Daney uint64_t lendian:1; 127aa32a955SDavid Daney uint64_t nbtarb:1; 128aa32a955SDavid Daney uint64_t mrq_hwm:2; 129c5aa59e8SDavid Daney #else 130c5aa59e8SDavid Daney uint64_t mrq_hwm:2; 131c5aa59e8SDavid Daney uint64_t nbtarb:1; 132c5aa59e8SDavid Daney uint64_t lendian:1; 133c5aa59e8SDavid Daney uint64_t reset:1; 134c5aa59e8SDavid Daney uint64_t en:1; 135c5aa59e8SDavid Daney uint64_t busy:1; 136c5aa59e8SDavid Daney uint64_t crc_strip:1; 137c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 138c5aa59e8SDavid Daney #endif 139aa32a955SDavid Daney } cn52xx; 140aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx cn52xxp1; 141aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx cn56xx; 142aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx cn56xxp1; 143c5aa59e8SDavid Daney struct cvmx_mixx_ctl_s cn61xx; 144aa32a955SDavid Daney struct cvmx_mixx_ctl_s cn63xx; 145aa32a955SDavid Daney struct cvmx_mixx_ctl_s cn63xxp1; 146c5aa59e8SDavid Daney struct cvmx_mixx_ctl_s cn66xx; 147c5aa59e8SDavid Daney struct cvmx_mixx_ctl_s cn68xx; 148c5aa59e8SDavid Daney struct cvmx_mixx_ctl_s cn68xxp1; 149a7187a2fSDavid Daney }; 150a7187a2fSDavid Daney 151a7187a2fSDavid Daney union cvmx_mixx_intena { 152a7187a2fSDavid Daney uint64_t u64; 153a7187a2fSDavid Daney struct cvmx_mixx_intena_s { 154c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 155aa32a955SDavid Daney uint64_t reserved_8_63:56; 156aa32a955SDavid Daney uint64_t tsena:1; 157a7187a2fSDavid Daney uint64_t orunena:1; 158a7187a2fSDavid Daney uint64_t irunena:1; 159a7187a2fSDavid Daney uint64_t data_drpena:1; 160a7187a2fSDavid Daney uint64_t ithena:1; 161a7187a2fSDavid Daney uint64_t othena:1; 162a7187a2fSDavid Daney uint64_t ivfena:1; 163a7187a2fSDavid Daney uint64_t ovfena:1; 164c5aa59e8SDavid Daney #else 165c5aa59e8SDavid Daney uint64_t ovfena:1; 166c5aa59e8SDavid Daney uint64_t ivfena:1; 167c5aa59e8SDavid Daney uint64_t othena:1; 168c5aa59e8SDavid Daney uint64_t ithena:1; 169c5aa59e8SDavid Daney uint64_t data_drpena:1; 170c5aa59e8SDavid Daney uint64_t irunena:1; 171c5aa59e8SDavid Daney uint64_t orunena:1; 172c5aa59e8SDavid Daney uint64_t tsena:1; 173c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 174c5aa59e8SDavid Daney #endif 175a7187a2fSDavid Daney } s; 176aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx { 177c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 178aa32a955SDavid Daney uint64_t reserved_7_63:57; 179aa32a955SDavid Daney uint64_t orunena:1; 180aa32a955SDavid Daney uint64_t irunena:1; 181aa32a955SDavid Daney uint64_t data_drpena:1; 182aa32a955SDavid Daney uint64_t ithena:1; 183aa32a955SDavid Daney uint64_t othena:1; 184aa32a955SDavid Daney uint64_t ivfena:1; 185aa32a955SDavid Daney uint64_t ovfena:1; 186c5aa59e8SDavid Daney #else 187c5aa59e8SDavid Daney uint64_t ovfena:1; 188c5aa59e8SDavid Daney uint64_t ivfena:1; 189c5aa59e8SDavid Daney uint64_t othena:1; 190c5aa59e8SDavid Daney uint64_t ithena:1; 191c5aa59e8SDavid Daney uint64_t data_drpena:1; 192c5aa59e8SDavid Daney uint64_t irunena:1; 193c5aa59e8SDavid Daney uint64_t orunena:1; 194c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 195c5aa59e8SDavid Daney #endif 196aa32a955SDavid Daney } cn52xx; 197aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx cn52xxp1; 198aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx cn56xx; 199aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx cn56xxp1; 200c5aa59e8SDavid Daney struct cvmx_mixx_intena_s cn61xx; 201aa32a955SDavid Daney struct cvmx_mixx_intena_s cn63xx; 202aa32a955SDavid Daney struct cvmx_mixx_intena_s cn63xxp1; 203c5aa59e8SDavid Daney struct cvmx_mixx_intena_s cn66xx; 204c5aa59e8SDavid Daney struct cvmx_mixx_intena_s cn68xx; 205c5aa59e8SDavid Daney struct cvmx_mixx_intena_s cn68xxp1; 206a7187a2fSDavid Daney }; 207a7187a2fSDavid Daney 208a7187a2fSDavid Daney union cvmx_mixx_ircnt { 209a7187a2fSDavid Daney uint64_t u64; 210a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s { 211c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 212a7187a2fSDavid Daney uint64_t reserved_20_63:44; 213a7187a2fSDavid Daney uint64_t ircnt:20; 214c5aa59e8SDavid Daney #else 215c5aa59e8SDavid Daney uint64_t ircnt:20; 216c5aa59e8SDavid Daney uint64_t reserved_20_63:44; 217c5aa59e8SDavid Daney #endif 218a7187a2fSDavid Daney } s; 219a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s cn52xx; 220a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s cn52xxp1; 221a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s cn56xx; 222a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s cn56xxp1; 223c5aa59e8SDavid Daney struct cvmx_mixx_ircnt_s cn61xx; 224aa32a955SDavid Daney struct cvmx_mixx_ircnt_s cn63xx; 225aa32a955SDavid Daney struct cvmx_mixx_ircnt_s cn63xxp1; 226c5aa59e8SDavid Daney struct cvmx_mixx_ircnt_s cn66xx; 227c5aa59e8SDavid Daney struct cvmx_mixx_ircnt_s cn68xx; 228c5aa59e8SDavid Daney struct cvmx_mixx_ircnt_s cn68xxp1; 229a7187a2fSDavid Daney }; 230a7187a2fSDavid Daney 231a7187a2fSDavid Daney union cvmx_mixx_irhwm { 232a7187a2fSDavid Daney uint64_t u64; 233a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s { 234c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 235a7187a2fSDavid Daney uint64_t reserved_40_63:24; 236a7187a2fSDavid Daney uint64_t ibplwm:20; 237a7187a2fSDavid Daney uint64_t irhwm:20; 238c5aa59e8SDavid Daney #else 239c5aa59e8SDavid Daney uint64_t irhwm:20; 240c5aa59e8SDavid Daney uint64_t ibplwm:20; 241c5aa59e8SDavid Daney uint64_t reserved_40_63:24; 242c5aa59e8SDavid Daney #endif 243a7187a2fSDavid Daney } s; 244a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s cn52xx; 245a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s cn52xxp1; 246a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s cn56xx; 247a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s cn56xxp1; 248c5aa59e8SDavid Daney struct cvmx_mixx_irhwm_s cn61xx; 249aa32a955SDavid Daney struct cvmx_mixx_irhwm_s cn63xx; 250aa32a955SDavid Daney struct cvmx_mixx_irhwm_s cn63xxp1; 251c5aa59e8SDavid Daney struct cvmx_mixx_irhwm_s cn66xx; 252c5aa59e8SDavid Daney struct cvmx_mixx_irhwm_s cn68xx; 253c5aa59e8SDavid Daney struct cvmx_mixx_irhwm_s cn68xxp1; 254a7187a2fSDavid Daney }; 255a7187a2fSDavid Daney 256a7187a2fSDavid Daney union cvmx_mixx_iring1 { 257a7187a2fSDavid Daney uint64_t u64; 258a7187a2fSDavid Daney struct cvmx_mixx_iring1_s { 259c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 260a7187a2fSDavid Daney uint64_t reserved_60_63:4; 261a7187a2fSDavid Daney uint64_t isize:20; 262aa32a955SDavid Daney uint64_t ibase:37; 263aa32a955SDavid Daney uint64_t reserved_0_2:3; 264c5aa59e8SDavid Daney #else 265c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 266c5aa59e8SDavid Daney uint64_t ibase:37; 267c5aa59e8SDavid Daney uint64_t isize:20; 268c5aa59e8SDavid Daney uint64_t reserved_60_63:4; 269c5aa59e8SDavid Daney #endif 270aa32a955SDavid Daney } s; 271aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx { 272c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 273aa32a955SDavid Daney uint64_t reserved_60_63:4; 274aa32a955SDavid Daney uint64_t isize:20; 275a7187a2fSDavid Daney uint64_t reserved_36_39:4; 276a7187a2fSDavid Daney uint64_t ibase:33; 277a7187a2fSDavid Daney uint64_t reserved_0_2:3; 278c5aa59e8SDavid Daney #else 279c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 280c5aa59e8SDavid Daney uint64_t ibase:33; 281c5aa59e8SDavid Daney uint64_t reserved_36_39:4; 282c5aa59e8SDavid Daney uint64_t isize:20; 283c5aa59e8SDavid Daney uint64_t reserved_60_63:4; 284c5aa59e8SDavid Daney #endif 285aa32a955SDavid Daney } cn52xx; 286aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx cn52xxp1; 287aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx cn56xx; 288aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx cn56xxp1; 289c5aa59e8SDavid Daney struct cvmx_mixx_iring1_s cn61xx; 290aa32a955SDavid Daney struct cvmx_mixx_iring1_s cn63xx; 291aa32a955SDavid Daney struct cvmx_mixx_iring1_s cn63xxp1; 292c5aa59e8SDavid Daney struct cvmx_mixx_iring1_s cn66xx; 293c5aa59e8SDavid Daney struct cvmx_mixx_iring1_s cn68xx; 294c5aa59e8SDavid Daney struct cvmx_mixx_iring1_s cn68xxp1; 295a7187a2fSDavid Daney }; 296a7187a2fSDavid Daney 297a7187a2fSDavid Daney union cvmx_mixx_iring2 { 298a7187a2fSDavid Daney uint64_t u64; 299a7187a2fSDavid Daney struct cvmx_mixx_iring2_s { 300c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 301a7187a2fSDavid Daney uint64_t reserved_52_63:12; 302a7187a2fSDavid Daney uint64_t itlptr:20; 303a7187a2fSDavid Daney uint64_t reserved_20_31:12; 304a7187a2fSDavid Daney uint64_t idbell:20; 305c5aa59e8SDavid Daney #else 306c5aa59e8SDavid Daney uint64_t idbell:20; 307c5aa59e8SDavid Daney uint64_t reserved_20_31:12; 308c5aa59e8SDavid Daney uint64_t itlptr:20; 309c5aa59e8SDavid Daney uint64_t reserved_52_63:12; 310c5aa59e8SDavid Daney #endif 311a7187a2fSDavid Daney } s; 312a7187a2fSDavid Daney struct cvmx_mixx_iring2_s cn52xx; 313a7187a2fSDavid Daney struct cvmx_mixx_iring2_s cn52xxp1; 314a7187a2fSDavid Daney struct cvmx_mixx_iring2_s cn56xx; 315a7187a2fSDavid Daney struct cvmx_mixx_iring2_s cn56xxp1; 316c5aa59e8SDavid Daney struct cvmx_mixx_iring2_s cn61xx; 317aa32a955SDavid Daney struct cvmx_mixx_iring2_s cn63xx; 318aa32a955SDavid Daney struct cvmx_mixx_iring2_s cn63xxp1; 319c5aa59e8SDavid Daney struct cvmx_mixx_iring2_s cn66xx; 320c5aa59e8SDavid Daney struct cvmx_mixx_iring2_s cn68xx; 321c5aa59e8SDavid Daney struct cvmx_mixx_iring2_s cn68xxp1; 322a7187a2fSDavid Daney }; 323a7187a2fSDavid Daney 324a7187a2fSDavid Daney union cvmx_mixx_isr { 325a7187a2fSDavid Daney uint64_t u64; 326a7187a2fSDavid Daney struct cvmx_mixx_isr_s { 327c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 328aa32a955SDavid Daney uint64_t reserved_8_63:56; 329aa32a955SDavid Daney uint64_t ts:1; 330a7187a2fSDavid Daney uint64_t orun:1; 331a7187a2fSDavid Daney uint64_t irun:1; 332a7187a2fSDavid Daney uint64_t data_drp:1; 333a7187a2fSDavid Daney uint64_t irthresh:1; 334a7187a2fSDavid Daney uint64_t orthresh:1; 335a7187a2fSDavid Daney uint64_t idblovf:1; 336a7187a2fSDavid Daney uint64_t odblovf:1; 337c5aa59e8SDavid Daney #else 338c5aa59e8SDavid Daney uint64_t odblovf:1; 339c5aa59e8SDavid Daney uint64_t idblovf:1; 340c5aa59e8SDavid Daney uint64_t orthresh:1; 341c5aa59e8SDavid Daney uint64_t irthresh:1; 342c5aa59e8SDavid Daney uint64_t data_drp:1; 343c5aa59e8SDavid Daney uint64_t irun:1; 344c5aa59e8SDavid Daney uint64_t orun:1; 345c5aa59e8SDavid Daney uint64_t ts:1; 346c5aa59e8SDavid Daney uint64_t reserved_8_63:56; 347c5aa59e8SDavid Daney #endif 348a7187a2fSDavid Daney } s; 349aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx { 350c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 351aa32a955SDavid Daney uint64_t reserved_7_63:57; 352aa32a955SDavid Daney uint64_t orun:1; 353aa32a955SDavid Daney uint64_t irun:1; 354aa32a955SDavid Daney uint64_t data_drp:1; 355aa32a955SDavid Daney uint64_t irthresh:1; 356aa32a955SDavid Daney uint64_t orthresh:1; 357aa32a955SDavid Daney uint64_t idblovf:1; 358aa32a955SDavid Daney uint64_t odblovf:1; 359c5aa59e8SDavid Daney #else 360c5aa59e8SDavid Daney uint64_t odblovf:1; 361c5aa59e8SDavid Daney uint64_t idblovf:1; 362c5aa59e8SDavid Daney uint64_t orthresh:1; 363c5aa59e8SDavid Daney uint64_t irthresh:1; 364c5aa59e8SDavid Daney uint64_t data_drp:1; 365c5aa59e8SDavid Daney uint64_t irun:1; 366c5aa59e8SDavid Daney uint64_t orun:1; 367c5aa59e8SDavid Daney uint64_t reserved_7_63:57; 368c5aa59e8SDavid Daney #endif 369aa32a955SDavid Daney } cn52xx; 370aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx cn52xxp1; 371aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx cn56xx; 372aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx cn56xxp1; 373c5aa59e8SDavid Daney struct cvmx_mixx_isr_s cn61xx; 374aa32a955SDavid Daney struct cvmx_mixx_isr_s cn63xx; 375aa32a955SDavid Daney struct cvmx_mixx_isr_s cn63xxp1; 376c5aa59e8SDavid Daney struct cvmx_mixx_isr_s cn66xx; 377c5aa59e8SDavid Daney struct cvmx_mixx_isr_s cn68xx; 378c5aa59e8SDavid Daney struct cvmx_mixx_isr_s cn68xxp1; 379a7187a2fSDavid Daney }; 380a7187a2fSDavid Daney 381a7187a2fSDavid Daney union cvmx_mixx_orcnt { 382a7187a2fSDavid Daney uint64_t u64; 383a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s { 384c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 385a7187a2fSDavid Daney uint64_t reserved_20_63:44; 386a7187a2fSDavid Daney uint64_t orcnt:20; 387c5aa59e8SDavid Daney #else 388c5aa59e8SDavid Daney uint64_t orcnt:20; 389c5aa59e8SDavid Daney uint64_t reserved_20_63:44; 390c5aa59e8SDavid Daney #endif 391a7187a2fSDavid Daney } s; 392a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s cn52xx; 393a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s cn52xxp1; 394a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s cn56xx; 395a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s cn56xxp1; 396c5aa59e8SDavid Daney struct cvmx_mixx_orcnt_s cn61xx; 397aa32a955SDavid Daney struct cvmx_mixx_orcnt_s cn63xx; 398aa32a955SDavid Daney struct cvmx_mixx_orcnt_s cn63xxp1; 399c5aa59e8SDavid Daney struct cvmx_mixx_orcnt_s cn66xx; 400c5aa59e8SDavid Daney struct cvmx_mixx_orcnt_s cn68xx; 401c5aa59e8SDavid Daney struct cvmx_mixx_orcnt_s cn68xxp1; 402a7187a2fSDavid Daney }; 403a7187a2fSDavid Daney 404a7187a2fSDavid Daney union cvmx_mixx_orhwm { 405a7187a2fSDavid Daney uint64_t u64; 406a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s { 407c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 408a7187a2fSDavid Daney uint64_t reserved_20_63:44; 409a7187a2fSDavid Daney uint64_t orhwm:20; 410c5aa59e8SDavid Daney #else 411c5aa59e8SDavid Daney uint64_t orhwm:20; 412c5aa59e8SDavid Daney uint64_t reserved_20_63:44; 413c5aa59e8SDavid Daney #endif 414a7187a2fSDavid Daney } s; 415a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s cn52xx; 416a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s cn52xxp1; 417a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s cn56xx; 418a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s cn56xxp1; 419c5aa59e8SDavid Daney struct cvmx_mixx_orhwm_s cn61xx; 420aa32a955SDavid Daney struct cvmx_mixx_orhwm_s cn63xx; 421aa32a955SDavid Daney struct cvmx_mixx_orhwm_s cn63xxp1; 422c5aa59e8SDavid Daney struct cvmx_mixx_orhwm_s cn66xx; 423c5aa59e8SDavid Daney struct cvmx_mixx_orhwm_s cn68xx; 424c5aa59e8SDavid Daney struct cvmx_mixx_orhwm_s cn68xxp1; 425a7187a2fSDavid Daney }; 426a7187a2fSDavid Daney 427a7187a2fSDavid Daney union cvmx_mixx_oring1 { 428a7187a2fSDavid Daney uint64_t u64; 429a7187a2fSDavid Daney struct cvmx_mixx_oring1_s { 430c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 431a7187a2fSDavid Daney uint64_t reserved_60_63:4; 432a7187a2fSDavid Daney uint64_t osize:20; 433aa32a955SDavid Daney uint64_t obase:37; 434aa32a955SDavid Daney uint64_t reserved_0_2:3; 435c5aa59e8SDavid Daney #else 436c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 437c5aa59e8SDavid Daney uint64_t obase:37; 438c5aa59e8SDavid Daney uint64_t osize:20; 439c5aa59e8SDavid Daney uint64_t reserved_60_63:4; 440c5aa59e8SDavid Daney #endif 441aa32a955SDavid Daney } s; 442aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx { 443c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 444aa32a955SDavid Daney uint64_t reserved_60_63:4; 445aa32a955SDavid Daney uint64_t osize:20; 446a7187a2fSDavid Daney uint64_t reserved_36_39:4; 447a7187a2fSDavid Daney uint64_t obase:33; 448a7187a2fSDavid Daney uint64_t reserved_0_2:3; 449c5aa59e8SDavid Daney #else 450c5aa59e8SDavid Daney uint64_t reserved_0_2:3; 451c5aa59e8SDavid Daney uint64_t obase:33; 452c5aa59e8SDavid Daney uint64_t reserved_36_39:4; 453c5aa59e8SDavid Daney uint64_t osize:20; 454c5aa59e8SDavid Daney uint64_t reserved_60_63:4; 455c5aa59e8SDavid Daney #endif 456aa32a955SDavid Daney } cn52xx; 457aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx cn52xxp1; 458aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx cn56xx; 459aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx cn56xxp1; 460c5aa59e8SDavid Daney struct cvmx_mixx_oring1_s cn61xx; 461aa32a955SDavid Daney struct cvmx_mixx_oring1_s cn63xx; 462aa32a955SDavid Daney struct cvmx_mixx_oring1_s cn63xxp1; 463c5aa59e8SDavid Daney struct cvmx_mixx_oring1_s cn66xx; 464c5aa59e8SDavid Daney struct cvmx_mixx_oring1_s cn68xx; 465c5aa59e8SDavid Daney struct cvmx_mixx_oring1_s cn68xxp1; 466a7187a2fSDavid Daney }; 467a7187a2fSDavid Daney 468a7187a2fSDavid Daney union cvmx_mixx_oring2 { 469a7187a2fSDavid Daney uint64_t u64; 470a7187a2fSDavid Daney struct cvmx_mixx_oring2_s { 471c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 472a7187a2fSDavid Daney uint64_t reserved_52_63:12; 473a7187a2fSDavid Daney uint64_t otlptr:20; 474a7187a2fSDavid Daney uint64_t reserved_20_31:12; 475a7187a2fSDavid Daney uint64_t odbell:20; 476c5aa59e8SDavid Daney #else 477c5aa59e8SDavid Daney uint64_t odbell:20; 478c5aa59e8SDavid Daney uint64_t reserved_20_31:12; 479c5aa59e8SDavid Daney uint64_t otlptr:20; 480c5aa59e8SDavid Daney uint64_t reserved_52_63:12; 481c5aa59e8SDavid Daney #endif 482a7187a2fSDavid Daney } s; 483a7187a2fSDavid Daney struct cvmx_mixx_oring2_s cn52xx; 484a7187a2fSDavid Daney struct cvmx_mixx_oring2_s cn52xxp1; 485a7187a2fSDavid Daney struct cvmx_mixx_oring2_s cn56xx; 486a7187a2fSDavid Daney struct cvmx_mixx_oring2_s cn56xxp1; 487c5aa59e8SDavid Daney struct cvmx_mixx_oring2_s cn61xx; 488aa32a955SDavid Daney struct cvmx_mixx_oring2_s cn63xx; 489aa32a955SDavid Daney struct cvmx_mixx_oring2_s cn63xxp1; 490c5aa59e8SDavid Daney struct cvmx_mixx_oring2_s cn66xx; 491c5aa59e8SDavid Daney struct cvmx_mixx_oring2_s cn68xx; 492c5aa59e8SDavid Daney struct cvmx_mixx_oring2_s cn68xxp1; 493a7187a2fSDavid Daney }; 494a7187a2fSDavid Daney 495a7187a2fSDavid Daney union cvmx_mixx_remcnt { 496a7187a2fSDavid Daney uint64_t u64; 497a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s { 498c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 499a7187a2fSDavid Daney uint64_t reserved_52_63:12; 500a7187a2fSDavid Daney uint64_t iremcnt:20; 501a7187a2fSDavid Daney uint64_t reserved_20_31:12; 502a7187a2fSDavid Daney uint64_t oremcnt:20; 503c5aa59e8SDavid Daney #else 504c5aa59e8SDavid Daney uint64_t oremcnt:20; 505c5aa59e8SDavid Daney uint64_t reserved_20_31:12; 506c5aa59e8SDavid Daney uint64_t iremcnt:20; 507c5aa59e8SDavid Daney uint64_t reserved_52_63:12; 508c5aa59e8SDavid Daney #endif 509a7187a2fSDavid Daney } s; 510a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s cn52xx; 511a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s cn52xxp1; 512a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s cn56xx; 513a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s cn56xxp1; 514c5aa59e8SDavid Daney struct cvmx_mixx_remcnt_s cn61xx; 515aa32a955SDavid Daney struct cvmx_mixx_remcnt_s cn63xx; 516aa32a955SDavid Daney struct cvmx_mixx_remcnt_s cn63xxp1; 517c5aa59e8SDavid Daney struct cvmx_mixx_remcnt_s cn66xx; 518c5aa59e8SDavid Daney struct cvmx_mixx_remcnt_s cn68xx; 519c5aa59e8SDavid Daney struct cvmx_mixx_remcnt_s cn68xxp1; 520aa32a955SDavid Daney }; 521aa32a955SDavid Daney 522aa32a955SDavid Daney union cvmx_mixx_tsctl { 523aa32a955SDavid Daney uint64_t u64; 524aa32a955SDavid Daney struct cvmx_mixx_tsctl_s { 525c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 526aa32a955SDavid Daney uint64_t reserved_21_63:43; 527aa32a955SDavid Daney uint64_t tsavl:5; 528aa32a955SDavid Daney uint64_t reserved_13_15:3; 529aa32a955SDavid Daney uint64_t tstot:5; 530aa32a955SDavid Daney uint64_t reserved_5_7:3; 531aa32a955SDavid Daney uint64_t tscnt:5; 532c5aa59e8SDavid Daney #else 533c5aa59e8SDavid Daney uint64_t tscnt:5; 534c5aa59e8SDavid Daney uint64_t reserved_5_7:3; 535c5aa59e8SDavid Daney uint64_t tstot:5; 536c5aa59e8SDavid Daney uint64_t reserved_13_15:3; 537c5aa59e8SDavid Daney uint64_t tsavl:5; 538c5aa59e8SDavid Daney uint64_t reserved_21_63:43; 539c5aa59e8SDavid Daney #endif 540aa32a955SDavid Daney } s; 541c5aa59e8SDavid Daney struct cvmx_mixx_tsctl_s cn61xx; 542aa32a955SDavid Daney struct cvmx_mixx_tsctl_s cn63xx; 543aa32a955SDavid Daney struct cvmx_mixx_tsctl_s cn63xxp1; 544c5aa59e8SDavid Daney struct cvmx_mixx_tsctl_s cn66xx; 545c5aa59e8SDavid Daney struct cvmx_mixx_tsctl_s cn68xx; 546c5aa59e8SDavid Daney struct cvmx_mixx_tsctl_s cn68xxp1; 547aa32a955SDavid Daney }; 548aa32a955SDavid Daney 549aa32a955SDavid Daney union cvmx_mixx_tstamp { 550aa32a955SDavid Daney uint64_t u64; 551aa32a955SDavid Daney struct cvmx_mixx_tstamp_s { 552c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 553aa32a955SDavid Daney uint64_t tstamp:64; 554c5aa59e8SDavid Daney #else 555c5aa59e8SDavid Daney uint64_t tstamp:64; 556c5aa59e8SDavid Daney #endif 557aa32a955SDavid Daney } s; 558c5aa59e8SDavid Daney struct cvmx_mixx_tstamp_s cn61xx; 559aa32a955SDavid Daney struct cvmx_mixx_tstamp_s cn63xx; 560aa32a955SDavid Daney struct cvmx_mixx_tstamp_s cn63xxp1; 561c5aa59e8SDavid Daney struct cvmx_mixx_tstamp_s cn66xx; 562c5aa59e8SDavid Daney struct cvmx_mixx_tstamp_s cn68xx; 563c5aa59e8SDavid Daney struct cvmx_mixx_tstamp_s cn68xxp1; 564a7187a2fSDavid Daney }; 565a7187a2fSDavid Daney 566a7187a2fSDavid Daney #endif 567