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