154293ec3SDavid Daney /***********************license start*************** 254293ec3SDavid Daney * Author: Cavium Networks 354293ec3SDavid Daney * 454293ec3SDavid Daney * Contact: support@caviumnetworks.com 554293ec3SDavid Daney * This file is part of the OCTEON SDK 654293ec3SDavid Daney * 7c5aa59e8SDavid Daney * Copyright (c) 2003-2012 Cavium Networks 854293ec3SDavid Daney * 954293ec3SDavid Daney * This file is free software; you can redistribute it and/or modify 1054293ec3SDavid Daney * it under the terms of the GNU General Public License, Version 2, as 1154293ec3SDavid Daney * published by the Free Software Foundation. 1254293ec3SDavid Daney * 1354293ec3SDavid Daney * This file is distributed in the hope that it will be useful, but 1454293ec3SDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 1554293ec3SDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 1654293ec3SDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 1754293ec3SDavid Daney * details. 1854293ec3SDavid Daney * 1954293ec3SDavid Daney * You should have received a copy of the GNU General Public License 2054293ec3SDavid Daney * along with this file; if not, write to the Free Software 2154293ec3SDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 2254293ec3SDavid Daney * or visit http://www.gnu.org/licenses/. 2354293ec3SDavid Daney * 2454293ec3SDavid Daney * This file may also be available under a different license from Cavium. 2554293ec3SDavid Daney * Contact Cavium Networks for more information 2654293ec3SDavid Daney ***********************license end**************************************/ 2754293ec3SDavid Daney 2854293ec3SDavid Daney #ifndef __CVMX_CIU_DEFS_H__ 2954293ec3SDavid Daney #define __CVMX_CIU_DEFS_H__ 3054293ec3SDavid Daney 31aa32a955SDavid Daney #define CVMX_CIU_BIST (CVMX_ADD_IO_SEG(0x0001070000000730ull)) 32aa32a955SDavid Daney #define CVMX_CIU_BLOCK_INT (CVMX_ADD_IO_SEG(0x00010700000007C0ull)) 33aa32a955SDavid Daney #define CVMX_CIU_DINT (CVMX_ADD_IO_SEG(0x0001070000000720ull)) 34c5aa59e8SDavid Daney #define CVMX_CIU_EN2_IOX_INT(offset) (CVMX_ADD_IO_SEG(0x000107000000A600ull) + ((offset) & 1) * 8) 35c5aa59e8SDavid Daney #define CVMX_CIU_EN2_IOX_INT_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000CE00ull) + ((offset) & 1) * 8) 36c5aa59e8SDavid Daney #define CVMX_CIU_EN2_IOX_INT_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000AE00ull) + ((offset) & 1) * 8) 37c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP2(offset) (CVMX_ADD_IO_SEG(0x000107000000A000ull) + ((offset) & 15) * 8) 38c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP2_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000C800ull) + ((offset) & 15) * 8) 39c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP2_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000A800ull) + ((offset) & 15) * 8) 40c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP3(offset) (CVMX_ADD_IO_SEG(0x000107000000A200ull) + ((offset) & 15) * 8) 41c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP3_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000CA00ull) + ((offset) & 15) * 8) 42c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP3_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000AA00ull) + ((offset) & 15) * 8) 43c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4(offset) (CVMX_ADD_IO_SEG(0x000107000000A400ull) + ((offset) & 15) * 8) 44c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000CC00ull) + ((offset) & 15) * 8) 45c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000AC00ull) + ((offset) & 15) * 8) 46aa32a955SDavid Daney #define CVMX_CIU_FUSE (CVMX_ADD_IO_SEG(0x0001070000000728ull)) 47aa32a955SDavid Daney #define CVMX_CIU_GSTOP (CVMX_ADD_IO_SEG(0x0001070000000710ull)) 48aa32a955SDavid Daney #define CVMX_CIU_INT33_SUM0 (CVMX_ADD_IO_SEG(0x0001070000000110ull)) 49aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0(offset) (CVMX_ADD_IO_SEG(0x0001070000000200ull) + ((offset) & 63) * 16) 50aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002200ull) + ((offset) & 63) * 16) 51aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006200ull) + ((offset) & 63) * 16) 52aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1(offset) (CVMX_ADD_IO_SEG(0x0001070000000208ull) + ((offset) & 63) * 16) 53aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002208ull) + ((offset) & 63) * 16) 54aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006208ull) + ((offset) & 63) * 16) 55aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_0(offset) (CVMX_ADD_IO_SEG(0x0001070000000C80ull) + ((offset) & 15) * 16) 56aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_0_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002C80ull) + ((offset) & 15) * 16) 57aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_0_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006C80ull) + ((offset) & 15) * 16) 58aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_1(offset) (CVMX_ADD_IO_SEG(0x0001070000000C88ull) + ((offset) & 15) * 16) 59aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_1_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002C88ull) + ((offset) & 15) * 16) 60aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_1_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006C88ull) + ((offset) & 15) * 16) 61aa32a955SDavid Daney #define CVMX_CIU_INTX_SUM0(offset) (CVMX_ADD_IO_SEG(0x0001070000000000ull) + ((offset) & 63) * 8) 62aa32a955SDavid Daney #define CVMX_CIU_INTX_SUM4(offset) (CVMX_ADD_IO_SEG(0x0001070000000C00ull) + ((offset) & 15) * 8) 63aa32a955SDavid Daney #define CVMX_CIU_INT_DBG_SEL (CVMX_ADD_IO_SEG(0x00010700000007D0ull)) 64aa32a955SDavid Daney #define CVMX_CIU_INT_SUM1 (CVMX_ADD_IO_SEG(0x0001070000000108ull)) 65c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_MBOX_CLRX(unsigned long offset) 66c5aa59e8SDavid Daney { 67c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 68c5aa59e8SDavid Daney case OCTEON_CN30XX & OCTEON_FAMILY_MASK: 69c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 70c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 71c5aa59e8SDavid Daney case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 72c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 73c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 74c5aa59e8SDavid Daney case OCTEON_CN31XX & OCTEON_FAMILY_MASK: 75c5aa59e8SDavid Daney case OCTEON_CN50XX & OCTEON_FAMILY_MASK: 76c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 77c5aa59e8SDavid Daney case OCTEON_CN38XX & OCTEON_FAMILY_MASK: 78c5aa59e8SDavid Daney case OCTEON_CN58XX & OCTEON_FAMILY_MASK: 79c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 80c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 81c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 82c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 83c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 84c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 85c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 86c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 87c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070100100600ull) + (offset) * 8; 88c5aa59e8SDavid Daney } 89c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; 90c5aa59e8SDavid Daney } 91c5aa59e8SDavid Daney 92c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_MBOX_SETX(unsigned long offset) 93c5aa59e8SDavid Daney { 94c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 95c5aa59e8SDavid Daney case OCTEON_CN30XX & OCTEON_FAMILY_MASK: 96c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 97c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 98c5aa59e8SDavid Daney case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 99c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 100c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 101c5aa59e8SDavid Daney case OCTEON_CN31XX & OCTEON_FAMILY_MASK: 102c5aa59e8SDavid Daney case OCTEON_CN50XX & OCTEON_FAMILY_MASK: 103c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 104c5aa59e8SDavid Daney case OCTEON_CN38XX & OCTEON_FAMILY_MASK: 105c5aa59e8SDavid Daney case OCTEON_CN58XX & OCTEON_FAMILY_MASK: 106c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 107c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 108c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 109c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 110c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 111c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 112c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 113c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 114c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070100100400ull) + (offset) * 8; 115c5aa59e8SDavid Daney } 116c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8; 117c5aa59e8SDavid Daney } 118c5aa59e8SDavid Daney 119aa32a955SDavid Daney #define CVMX_CIU_NMI (CVMX_ADD_IO_SEG(0x0001070000000718ull)) 120aa32a955SDavid Daney #define CVMX_CIU_PCI_INTA (CVMX_ADD_IO_SEG(0x0001070000000750ull)) 121c5aa59e8SDavid Daney #define CVMX_CIU_PP_BIST_STAT (CVMX_ADD_IO_SEG(0x00010700000007E0ull)) 122aa32a955SDavid Daney #define CVMX_CIU_PP_DBG (CVMX_ADD_IO_SEG(0x0001070000000708ull)) 123c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_PP_POKEX(unsigned long offset) 124c5aa59e8SDavid Daney { 125c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 126c5aa59e8SDavid Daney case OCTEON_CN30XX & OCTEON_FAMILY_MASK: 127c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 128c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 129c5aa59e8SDavid Daney case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 130c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 1311fb6e539SSteven J. Hill case OCTEON_CN70XX & OCTEON_FAMILY_MASK: 132c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 133c5aa59e8SDavid Daney case OCTEON_CN31XX & OCTEON_FAMILY_MASK: 134c5aa59e8SDavid Daney case OCTEON_CN50XX & OCTEON_FAMILY_MASK: 135c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 136c5aa59e8SDavid Daney case OCTEON_CN38XX & OCTEON_FAMILY_MASK: 137c5aa59e8SDavid Daney case OCTEON_CN58XX & OCTEON_FAMILY_MASK: 138c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 139c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 140c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 141c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 142c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 143c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 144c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 145c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 146c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070100100200ull) + (offset) * 8; 1471fb6e539SSteven J. Hill case OCTEON_CNF75XX & OCTEON_FAMILY_MASK: 1481fb6e539SSteven J. Hill case OCTEON_CN73XX & OCTEON_FAMILY_MASK: 1491fb6e539SSteven J. Hill case OCTEON_CN78XX & OCTEON_FAMILY_MASK: 1501fb6e539SSteven J. Hill return CVMX_ADD_IO_SEG(0x0001010000030000ull) + (offset) * 8; 151c5aa59e8SDavid Daney } 152c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8; 153c5aa59e8SDavid Daney } 154c5aa59e8SDavid Daney 155aa32a955SDavid Daney #define CVMX_CIU_PP_RST (CVMX_ADD_IO_SEG(0x0001070000000700ull)) 156aa32a955SDavid Daney #define CVMX_CIU_QLM0 (CVMX_ADD_IO_SEG(0x0001070000000780ull)) 157aa32a955SDavid Daney #define CVMX_CIU_QLM1 (CVMX_ADD_IO_SEG(0x0001070000000788ull)) 158aa32a955SDavid Daney #define CVMX_CIU_QLM2 (CVMX_ADD_IO_SEG(0x0001070000000790ull)) 159c5aa59e8SDavid Daney #define CVMX_CIU_QLM3 (CVMX_ADD_IO_SEG(0x0001070000000798ull)) 160c5aa59e8SDavid Daney #define CVMX_CIU_QLM4 (CVMX_ADD_IO_SEG(0x00010700000007A0ull)) 161aa32a955SDavid Daney #define CVMX_CIU_QLM_DCOK (CVMX_ADD_IO_SEG(0x0001070000000760ull)) 162aa32a955SDavid Daney #define CVMX_CIU_QLM_JTGC (CVMX_ADD_IO_SEG(0x0001070000000768ull)) 163aa32a955SDavid Daney #define CVMX_CIU_QLM_JTGD (CVMX_ADD_IO_SEG(0x0001070000000770ull)) 164aa32a955SDavid Daney #define CVMX_CIU_SOFT_BIST (CVMX_ADD_IO_SEG(0x0001070000000738ull)) 165aa32a955SDavid Daney #define CVMX_CIU_SOFT_PRST (CVMX_ADD_IO_SEG(0x0001070000000748ull)) 166aa32a955SDavid Daney #define CVMX_CIU_SOFT_PRST1 (CVMX_ADD_IO_SEG(0x0001070000000758ull)) 167c5aa59e8SDavid Daney #define CVMX_CIU_SOFT_PRST2 (CVMX_ADD_IO_SEG(0x00010700000007D8ull)) 168c5aa59e8SDavid Daney #define CVMX_CIU_SOFT_PRST3 (CVMX_ADD_IO_SEG(0x00010700000007E0ull)) 169aa32a955SDavid Daney #define CVMX_CIU_SOFT_RST (CVMX_ADD_IO_SEG(0x0001070000000740ull)) 170c5aa59e8SDavid Daney #define CVMX_CIU_SUM1_IOX_INT(offset) (CVMX_ADD_IO_SEG(0x0001070000008600ull) + ((offset) & 1) * 8) 171c5aa59e8SDavid Daney #define CVMX_CIU_SUM1_PPX_IP2(offset) (CVMX_ADD_IO_SEG(0x0001070000008000ull) + ((offset) & 15) * 8) 172c5aa59e8SDavid Daney #define CVMX_CIU_SUM1_PPX_IP3(offset) (CVMX_ADD_IO_SEG(0x0001070000008200ull) + ((offset) & 15) * 8) 173c5aa59e8SDavid Daney #define CVMX_CIU_SUM1_PPX_IP4(offset) (CVMX_ADD_IO_SEG(0x0001070000008400ull) + ((offset) & 15) * 8) 174c5aa59e8SDavid Daney #define CVMX_CIU_SUM2_IOX_INT(offset) (CVMX_ADD_IO_SEG(0x0001070000008E00ull) + ((offset) & 1) * 8) 175c5aa59e8SDavid Daney #define CVMX_CIU_SUM2_PPX_IP2(offset) (CVMX_ADD_IO_SEG(0x0001070000008800ull) + ((offset) & 15) * 8) 176c5aa59e8SDavid Daney #define CVMX_CIU_SUM2_PPX_IP3(offset) (CVMX_ADD_IO_SEG(0x0001070000008A00ull) + ((offset) & 15) * 8) 177c5aa59e8SDavid Daney #define CVMX_CIU_SUM2_PPX_IP4(offset) (CVMX_ADD_IO_SEG(0x0001070000008C00ull) + ((offset) & 15) * 8) 178c5aa59e8SDavid Daney #define CVMX_CIU_TIMX(offset) (CVMX_ADD_IO_SEG(0x0001070000000480ull) + ((offset) & 15) * 8) 179c5aa59e8SDavid Daney #define CVMX_CIU_TIM_MULTI_CAST (CVMX_ADD_IO_SEG(0x000107000000C200ull)) 180c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_WDOGX(unsigned long offset) 181c5aa59e8SDavid Daney { 182c5aa59e8SDavid Daney switch (cvmx_get_octeon_family()) { 183c5aa59e8SDavid Daney case OCTEON_CN30XX & OCTEON_FAMILY_MASK: 184c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 185c5aa59e8SDavid Daney case OCTEON_CN52XX & OCTEON_FAMILY_MASK: 186c5aa59e8SDavid Daney case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: 187c5aa59e8SDavid Daney case OCTEON_CN61XX & OCTEON_FAMILY_MASK: 1881fb6e539SSteven J. Hill case OCTEON_CN70XX & OCTEON_FAMILY_MASK: 189c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 190c5aa59e8SDavid Daney case OCTEON_CN31XX & OCTEON_FAMILY_MASK: 191c5aa59e8SDavid Daney case OCTEON_CN50XX & OCTEON_FAMILY_MASK: 192c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 193c5aa59e8SDavid Daney case OCTEON_CN38XX & OCTEON_FAMILY_MASK: 194c5aa59e8SDavid Daney case OCTEON_CN58XX & OCTEON_FAMILY_MASK: 195c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 196c5aa59e8SDavid Daney case OCTEON_CN56XX & OCTEON_FAMILY_MASK: 197c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 198c5aa59e8SDavid Daney case OCTEON_CN66XX & OCTEON_FAMILY_MASK: 199c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 200c5aa59e8SDavid Daney case OCTEON_CN63XX & OCTEON_FAMILY_MASK: 201c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 202c5aa59e8SDavid Daney case OCTEON_CN68XX & OCTEON_FAMILY_MASK: 203c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070100100000ull) + (offset) * 8; 2041fb6e539SSteven J. Hill case OCTEON_CNF75XX & OCTEON_FAMILY_MASK: 2051fb6e539SSteven J. Hill case OCTEON_CN73XX & OCTEON_FAMILY_MASK: 2061fb6e539SSteven J. Hill case OCTEON_CN78XX & OCTEON_FAMILY_MASK: 2071fb6e539SSteven J. Hill return CVMX_ADD_IO_SEG(0x0001010000020000ull) + (offset) * 8; 208c5aa59e8SDavid Daney } 209c5aa59e8SDavid Daney return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8; 210c5aa59e8SDavid Daney } 21154293ec3SDavid Daney 212769f4372SSteven J. Hill union cvmx_ciu_qlm { 213aa32a955SDavid Daney uint64_t u64; 214769f4372SSteven J. Hill struct cvmx_ciu_qlm_s { 215c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 216aa32a955SDavid Daney uint64_t g2bypass:1; 217aa32a955SDavid Daney uint64_t reserved_53_62:10; 218aa32a955SDavid Daney uint64_t g2deemph:5; 219aa32a955SDavid Daney uint64_t reserved_45_47:3; 220aa32a955SDavid Daney uint64_t g2margin:5; 221aa32a955SDavid Daney uint64_t reserved_32_39:8; 222aa32a955SDavid Daney uint64_t txbypass:1; 223aa32a955SDavid Daney uint64_t reserved_21_30:10; 224aa32a955SDavid Daney uint64_t txdeemph:5; 225aa32a955SDavid Daney uint64_t reserved_13_15:3; 226aa32a955SDavid Daney uint64_t txmargin:5; 227aa32a955SDavid Daney uint64_t reserved_4_7:4; 228aa32a955SDavid Daney uint64_t lane_en:4; 229c5aa59e8SDavid Daney #else 230c5aa59e8SDavid Daney uint64_t lane_en:4; 231c5aa59e8SDavid Daney uint64_t reserved_4_7:4; 232c5aa59e8SDavid Daney uint64_t txmargin:5; 233c5aa59e8SDavid Daney uint64_t reserved_13_15:3; 234c5aa59e8SDavid Daney uint64_t txdeemph:5; 235c5aa59e8SDavid Daney uint64_t reserved_21_30:10; 236c5aa59e8SDavid Daney uint64_t txbypass:1; 237c5aa59e8SDavid Daney uint64_t reserved_32_39:8; 238c5aa59e8SDavid Daney uint64_t g2margin:5; 239c5aa59e8SDavid Daney uint64_t reserved_45_47:3; 240c5aa59e8SDavid Daney uint64_t g2deemph:5; 241c5aa59e8SDavid Daney uint64_t reserved_53_62:10; 242c5aa59e8SDavid Daney uint64_t g2bypass:1; 243c5aa59e8SDavid Daney #endif 244aa32a955SDavid Daney } s; 24554293ec3SDavid Daney }; 24654293ec3SDavid Daney 24754293ec3SDavid Daney union cvmx_ciu_qlm_jtgc { 24854293ec3SDavid Daney uint64_t u64; 24954293ec3SDavid Daney struct cvmx_ciu_qlm_jtgc_s { 250c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 251c5aa59e8SDavid Daney uint64_t reserved_17_63:47; 252c5aa59e8SDavid Daney uint64_t bypass_ext:1; 253c5aa59e8SDavid Daney uint64_t reserved_11_15:5; 25454293ec3SDavid Daney uint64_t clk_div:3; 255c5aa59e8SDavid Daney uint64_t reserved_7_7:1; 256c5aa59e8SDavid Daney uint64_t mux_sel:3; 25754293ec3SDavid Daney uint64_t bypass:4; 258c5aa59e8SDavid Daney #else 259c5aa59e8SDavid Daney uint64_t bypass:4; 260c5aa59e8SDavid Daney uint64_t mux_sel:3; 261c5aa59e8SDavid Daney uint64_t reserved_7_7:1; 262c5aa59e8SDavid Daney uint64_t clk_div:3; 263c5aa59e8SDavid Daney uint64_t reserved_11_15:5; 264c5aa59e8SDavid Daney uint64_t bypass_ext:1; 265c5aa59e8SDavid Daney uint64_t reserved_17_63:47; 266c5aa59e8SDavid Daney #endif 26754293ec3SDavid Daney } s; 26854293ec3SDavid Daney }; 26954293ec3SDavid Daney 27054293ec3SDavid Daney union cvmx_ciu_qlm_jtgd { 27154293ec3SDavid Daney uint64_t u64; 27254293ec3SDavid Daney struct cvmx_ciu_qlm_jtgd_s { 273c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 27454293ec3SDavid Daney uint64_t capture:1; 27554293ec3SDavid Daney uint64_t shift:1; 27654293ec3SDavid Daney uint64_t update:1; 277c5aa59e8SDavid Daney uint64_t reserved_45_60:16; 278c5aa59e8SDavid Daney uint64_t select:5; 27954293ec3SDavid Daney uint64_t reserved_37_39:3; 28054293ec3SDavid Daney uint64_t shft_cnt:5; 28154293ec3SDavid Daney uint64_t shft_reg:32; 282c5aa59e8SDavid Daney #else 283c5aa59e8SDavid Daney uint64_t shft_reg:32; 284c5aa59e8SDavid Daney uint64_t shft_cnt:5; 285c5aa59e8SDavid Daney uint64_t reserved_37_39:3; 286c5aa59e8SDavid Daney uint64_t select:5; 287c5aa59e8SDavid Daney uint64_t reserved_45_60:16; 288c5aa59e8SDavid Daney uint64_t update:1; 289c5aa59e8SDavid Daney uint64_t shift:1; 290c5aa59e8SDavid Daney uint64_t capture:1; 291c5aa59e8SDavid Daney #endif 29254293ec3SDavid Daney } s; 29354293ec3SDavid Daney }; 29454293ec3SDavid Daney 29554293ec3SDavid Daney union cvmx_ciu_soft_prst { 29654293ec3SDavid Daney uint64_t u64; 29754293ec3SDavid Daney struct cvmx_ciu_soft_prst_s { 298c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 29954293ec3SDavid Daney uint64_t reserved_3_63:61; 30054293ec3SDavid Daney uint64_t host64:1; 30154293ec3SDavid Daney uint64_t npi:1; 30254293ec3SDavid Daney uint64_t soft_prst:1; 303c5aa59e8SDavid Daney #else 304c5aa59e8SDavid Daney uint64_t soft_prst:1; 305c5aa59e8SDavid Daney uint64_t npi:1; 306c5aa59e8SDavid Daney uint64_t host64:1; 307c5aa59e8SDavid Daney uint64_t reserved_3_63:61; 308c5aa59e8SDavid Daney #endif 30954293ec3SDavid Daney } s; 31054293ec3SDavid Daney }; 31154293ec3SDavid Daney 31254293ec3SDavid Daney union cvmx_ciu_timx { 31354293ec3SDavid Daney uint64_t u64; 31454293ec3SDavid Daney struct cvmx_ciu_timx_s { 315c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 31654293ec3SDavid Daney uint64_t reserved_37_63:27; 31754293ec3SDavid Daney uint64_t one_shot:1; 31854293ec3SDavid Daney uint64_t len:36; 319c5aa59e8SDavid Daney #else 320c5aa59e8SDavid Daney uint64_t len:36; 321c5aa59e8SDavid Daney uint64_t one_shot:1; 322c5aa59e8SDavid Daney uint64_t reserved_37_63:27; 323c5aa59e8SDavid Daney #endif 32454293ec3SDavid Daney } s; 32554293ec3SDavid Daney }; 32654293ec3SDavid Daney 32754293ec3SDavid Daney union cvmx_ciu_wdogx { 32854293ec3SDavid Daney uint64_t u64; 32954293ec3SDavid Daney struct cvmx_ciu_wdogx_s { 330c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD 33154293ec3SDavid Daney uint64_t reserved_46_63:18; 33254293ec3SDavid Daney uint64_t gstopen:1; 33354293ec3SDavid Daney uint64_t dstop:1; 33454293ec3SDavid Daney uint64_t cnt:24; 33554293ec3SDavid Daney uint64_t len:16; 33654293ec3SDavid Daney uint64_t state:2; 33754293ec3SDavid Daney uint64_t mode:2; 338c5aa59e8SDavid Daney #else 339c5aa59e8SDavid Daney uint64_t mode:2; 340c5aa59e8SDavid Daney uint64_t state:2; 341c5aa59e8SDavid Daney uint64_t len:16; 342c5aa59e8SDavid Daney uint64_t cnt:24; 343c5aa59e8SDavid Daney uint64_t dstop:1; 344c5aa59e8SDavid Daney uint64_t gstopen:1; 345c5aa59e8SDavid Daney uint64_t reserved_46_63:18; 346c5aa59e8SDavid Daney #endif 34754293ec3SDavid Daney } s; 34854293ec3SDavid Daney }; 34954293ec3SDavid Daney 35054293ec3SDavid Daney #endif 351