Home | History | Annotate | Line # | Download | only in dev
octeon_ciureg.h revision 1.6
      1 /*	$NetBSD: octeon_ciureg.h,v 1.6 2020/06/02 14:39:57 simonb Exp $	*/
      2 
      3 /*
      4  * Copyright (c) 2007 Internet Initiative Japan, Inc.
      5  * All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  * 1. Redistributions of source code must retain the above copyright
     11  *    notice, this list of conditions and the following disclaimer.
     12  * 2. Redistributions in binary form must reproduce the above copyright
     13  *    notice, this list of conditions and the following disclaimer in the
     14  *    documentation and/or other materials provided with the distribution.
     15  *
     16  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     26  * SUCH DAMAGE.
     27  */
     28 
     29 /*
     30  * CIU Registers
     31  */
     32 
     33 #ifndef _OCTEON_CIUREG_H_
     34 #define _OCTEON_CIUREG_H_
     35 
     36 /* ---- register addresses */
     37 
     38 #define	CIU_INT0_SUM0				UINT64_C(0x0001070000000000)
     39 #define	CIU_INT1_SUM0				UINT64_C(0x0001070000000008)
     40 #define	CIU_INT2_SUM0				UINT64_C(0x0001070000000010)
     41 #define	CIU_INT3_SUM0				UINT64_C(0x0001070000000018)
     42 #define	CIU_INT32_SUM0				UINT64_C(0x0001070000000100)
     43 #define	CIU_INT_SUM1				UINT64_C(0x0001070000000108)
     44 #define	CIU_INT0_EN0				UINT64_C(0x0001070000000200)
     45 #define	CIU_INT1_EN0				UINT64_C(0x0001070000000210)
     46 #define	CIU_INT2_EN0				UINT64_C(0x0001070000000220)
     47 #define	CIU_INT3_EN0				UINT64_C(0x0001070000000230)
     48 #define	CIU_INT32_EN0				UINT64_C(0x0001070000000400)
     49 #define	CIU_INT0_EN1				UINT64_C(0x0001070000000208)
     50 #define	CIU_INT1_EN1				UINT64_C(0x0001070000000218)
     51 #define	CIU_INT2_EN1				UINT64_C(0x0001070000000228)
     52 #define	CIU_INT3_EN1				UINT64_C(0x0001070000000238)
     53 #define	CIU_INT32_EN1				UINT64_C(0x0001070000000408)
     54 #define	CIU_TIM0				UINT64_C(0x0001070000000480)
     55 #define	CIU_TIM1				UINT64_C(0x0001070000000488)
     56 #define	CIU_TIM2				UINT64_C(0x0001070000000490)
     57 #define	CIU_TIM3				UINT64_C(0x0001070000000498)
     58 #define	CIU_WDOG0				UINT64_C(0x0001070000000500)
     59 #define	CIU_WDOG1				UINT64_C(0x0001070000000508)
     60 #define	CIU_PP_POKE0				UINT64_C(0x0001070000000580)
     61 #define	CIU_PP_POKE1				UINT64_C(0x0001070000000588)
     62 #define	CIU_MBOX_SET0				UINT64_C(0x0001070000000600)
     63 #define	CIU_MBOX_SET1				UINT64_C(0x0001070000000608)
     64 #define	CIU_MBOX_CLR0				UINT64_C(0x0001070000000680)
     65 #define	CIU_MBOX_CLR1				UINT64_C(0x0001070000000688)
     66 #define	CIU_PP_RST				UINT64_C(0x0001070000000700)
     67 #define	CIU_PP_DBG				UINT64_C(0x0001070000000708)
     68 #define	CIU_GSTOP				UINT64_C(0x0001070000000710)
     69 #define	CIU_NMI					UINT64_C(0x0001070000000718)
     70 #define	CIU_DINT				UINT64_C(0x0001070000000720)
     71 #define	CIU_FUSE				UINT64_C(0x0001070000000728)
     72 #define	CIU_BIST				UINT64_C(0x0001070000000730)
     73 #define	CIU_SOFT_BIST				UINT64_C(0x0001070000000738)
     74 #define	CIU_SOFT_RST				UINT64_C(0x0001070000000740)
     75 #define	CIU_SOFT_PRST				UINT64_C(0x0001070000000748)
     76 #define	CIU_PCI_INTA				UINT64_C(0x0001070000000750)
     77 #define	CIU_INT4_SUM0				UINT64_C(0x0001070000000c00)
     78 #define	CIU_INT4_SUM1				UINT64_C(0x0001070000000c08)
     79 #define	CIU_INT4_EN00				UINT64_C(0x0001070000000c80)
     80 #define	CIU_INT4_EN01				UINT64_C(0x0001070000000c88)
     81 #define	CIU_INT4_EN10				UINT64_C(0x0001070000000c90)
     82 #define	CIU_INT4_EN11				UINT64_C(0x0001070000000c98)
     83 
     84 #define	CIU_BASE				UINT64_C(0x0001070000000000)
     85 
     86 #define	CIU_INT0_SUM0_OFFSET			0x0000
     87 #define	CIU_INT1_SUM0_OFFSET			0x0008
     88 #define	CIU_INT2_SUM0_OFFSET			0x0010
     89 #define	CIU_INT3_SUM0_OFFSET			0x0018
     90 #define	CIU_INT32_SUM0_OFFSET			0x0100
     91 #define	CIU_INT_SUM1_OFFSET			0x0108
     92 #define	CIU_INT0_EN0_OFFSET			0x0200
     93 #define	CIU_INT1_EN0_OFFSET			0x0210
     94 #define	CIU_INT2_EN0_OFFSET			0x0220
     95 #define	CIU_INT3_EN0_OFFSET			0x0230
     96 #define	CIU_INT32_EN0_OFFSET			0x0400
     97 #define	CIU_INT0_EN1_OFFSET			0x0208
     98 #define	CIU_INT1_EN1_OFFSET			0x0218
     99 #define	CIU_INT2_EN1_OFFSET			0x0228
    100 #define	CIU_INT3_EN1_OFFSET			0x0238
    101 #define	CIU_INT32_EN1_OFFSET			0x0408
    102 #define	CIU_TIM0_OFFSET				0x0480
    103 #define	CIU_TIM1_OFFSET				0x0488
    104 #define	CIU_TIM2_OFFSET				0x0490
    105 #define	CIU_TIM3_OFFSET				0x0498
    106 #define	CIU_WDOG0_OFFSET			0x0500
    107 #define	CIU_WDOG1_OFFSET			0x0508
    108 #define	CIU_PP_POKE0_OFFSET			0x0580
    109 #define	CIU_PP_POKE1_OFFSET			0x0588
    110 #define	CIU_MBOX_SET0_OFFSET			0x0600
    111 #define	CIU_MBOX_SET1_OFFSET			0x0608
    112 #define	CIU_MBOX_CLR0_OFFSET			0x0680
    113 #define	CIU_MBOX_CLR1_OFFSET			0x0688
    114 #define	CIU_PP_RST_OFFSET			0x0700
    115 #define	CIU_PP_DBG_OFFSET			0x0708
    116 #define	CIU_GSTOP_OFFSET			0x0710
    117 #define	CIU_NMI_OFFSET				0x0718
    118 #define	CIU_DINT_OFFSET				0x0720
    119 #define	CIU_FUSE_OFFSET				0x0728
    120 #define	CIU_BIST_OFFSET				0x0730
    121 #define	CIU_SOFT_BIST_OFFSET			0x0738
    122 #define	CIU_SOFT_RST_OFFSET			0x0740
    123 #define	CIU_SOFT_PRST_OFFSET			0x0748
    124 #define	CIU_PCI_INTA_OFFSET			0x0750
    125 
    126 /* ---- register bits */
    127 
    128 /* ``interrupt bits'' shift values */
    129 
    130 #define	_CIU_INT_XXX_63_SHIFT			0x3f
    131 #define	_CIU_INT_XXX_62_SHIFT			0x3e
    132 #define	_CIU_INT_XXX_61_SHIFT			0x3d
    133 #define	_CIU_INT_XXX_60_SHIFT			0x3c
    134 #define	_CIU_INT_XXX_59_SHIFT			0x3b
    135 #define	_CIU_INT_MPI_SHIFT			0x3a
    136 #define	_CIU_INT_PCM_SHIFT			0x39
    137 #define	_CIU_INT_USB_SHIFT			0x38
    138 #define	_CIU_INT_TIMER_3_SHIFT			0x37
    139 #define	_CIU_INT_TIMER_2_SHIFT			0x36
    140 #define	_CIU_INT_TIMER_1_SHIFT			0x35
    141 #define	_CIU_INT_TIMER_0_SHIFT			0x34
    142 #define	_CIU_INT_XXX_51_SHIFT			0x33
    143 #define	_CIU_INT_IPD_DRP_SHIFT			0x32
    144 #define	_CIU_INT_GMX_DRP_SHIFT			0x30
    145 #define	_CIU_INT_TRACE_SHIFT			0x2f
    146 #define	_CIU_INT_RML_SHIFT			0x2e
    147 #define	_CIU_INT_TWSI_SHIFT			0x2d
    148 #define	_CIU_INT_WDOG_SUM_SHIFT			0x2c
    149 #define	_CIU_INT_PCI_MSI_63_48_SHIFT		0x2b
    150 #define	_CIU_INT_PCI_MSI_47_32_SHIFT		0x2a
    151 #define	_CIU_INT_PCI_MSI_31_16_SHIFT		0x29
    152 #define	_CIU_INT_PCI_MSI_15_0_SHIFT		0x28
    153 #define	_CIU_INT_PCI_INT_D_SHIFT		0x27
    154 #define	_CIU_INT_PCI_INT_C_SHIFT		0x26
    155 #define	_CIU_INT_PCI_INT_B_SHIFT		0x25
    156 #define	_CIU_INT_PCI_INT_A_SHIFT		0x24
    157 #define	_CIU_INT_UART_1_SHIFT			0x23
    158 #define	_CIU_INT_UART_0_SHIFT			0x22
    159 #define	_CIU_INT_MBOX_31_16_SHIFT		0x21
    160 #define	_CIU_INT_MBOX_15_0_SHIFT		0x20
    161 #define	_CIU_INT_GPIO_15_SHIFT			0x1f
    162 #define	_CIU_INT_GPIO_14_SHIFT			0x1e
    163 #define	_CIU_INT_GPIO_13_SHIFT			0x1d
    164 #define	_CIU_INT_GPIO_12_SHIFT			0x1c
    165 #define	_CIU_INT_GPIO_11_SHIFT			0x1b
    166 #define	_CIU_INT_GPIO_10_SHIFT			0x1a
    167 #define	_CIU_INT_GPIO_9_SHIFT			0x19
    168 #define	_CIU_INT_GPIO_8_SHIFT			0x18
    169 #define	_CIU_INT_GPIO_7_SHIFT			0x17
    170 #define	_CIU_INT_GPIO_6_SHIFT			0x16
    171 #define	_CIU_INT_GPIO_5_SHIFT			0x15
    172 #define	_CIU_INT_GPIO_4_SHIFT			0x14
    173 #define	_CIU_INT_GPIO_3_SHIFT			0x13
    174 #define	_CIU_INT_GPIO_2_SHIFT			0x12
    175 #define	_CIU_INT_GPIO_1_SHIFT			0x11
    176 #define	_CIU_INT_GPIO_0_SHIFT			0x10
    177 #define	_CIU_INT_WORKQ_15_SHIFT			0x0f
    178 #define	_CIU_INT_WORKQ_14_SHIFT			0x0e
    179 #define	_CIU_INT_WORKQ_13_SHIFT			0x0d
    180 #define	_CIU_INT_WORKQ_12_SHIFT			0x0c
    181 #define	_CIU_INT_WORKQ_11_SHIFT			0x0b
    182 #define	_CIU_INT_WORKQ_10_SHIFT			0x0a
    183 #define	_CIU_INT_WORKQ_9_SHIFT			0x09
    184 #define	_CIU_INT_WORKQ_8_SHIFT			0x08
    185 #define	_CIU_INT_WORKQ_7_SHIFT			0x07
    186 #define	_CIU_INT_WORKQ_6_SHIFT			0x06
    187 #define	_CIU_INT_WORKQ_5_SHIFT			0x05
    188 #define	_CIU_INT_WORKQ_4_SHIFT			0x04
    189 #define	_CIU_INT_WORKQ_3_SHIFT			0x03
    190 #define	_CIU_INT_WORKQ_2_SHIFT			0x02
    191 #define	_CIU_INT_WORKQ_1_SHIFT			0x01
    192 #define	_CIU_INT_WORKQ_0_SHIFT			0x00
    193 
    194 #define	CIU_INTX_SUM0_XXX_63_59			UINT64_C(0xf800000000000000)
    195 #define	CIU_INTX_SUM0_MPI			UINT64_C(0x0400000000000000)
    196 #define	CIU_INTX_SUM0_PCM			UINT64_C(0x0200000000000000)
    197 #define	CIU_INTX_SUM0_USB			UINT64_C(0x0100000000000000)
    198 #define	CIU_INTX_SUM0_TIMER			UINT64_C(0x00f0000000000000)
    199 #define	 CIU_INTX_SUM0_TIMER_3			UINT64_C(0x0080000000000000)
    200 #define	 CIU_INTX_SUM0_TIMER_2			UINT64_C(0x0040000000000000)
    201 #define	 CIU_INTX_SUM0_TIMER_1			UINT64_C(0x0020000000000000)
    202 #define	 CIU_INTX_SUM0_TIMER_0			UINT64_C(0x0010000000000000)
    203 #define	CIU_INTX_SUM0_XXX_51			UINT64_C(0x0008000000000000)
    204 #define	CIU_INTX_SUM0_IPD_DRP			UINT64_C(0x0004000000000000)
    205 #define	CIU_INTX_SUM0_XXX_49			UINT64_C(0x0002000000000000)
    206 #define	CIU_INTX_SUM0_GMX_DRP			UINT64_C(0x0001000000000000)
    207 #define	CIU_INTX_SUM0_TRACE			UINT64_C(0x0000800000000000)
    208 #define	CIU_INTX_SUM0_RML			UINT64_C(0x0000400000000000)
    209 #define	CIU_INTX_SUM0_TWSI			UINT64_C(0x0000200000000000)
    210 #define	CIU_INTX_SUM0_WDOG_SUM			UINT64_C(0x0000100000000000)
    211 #define	CIU_INTX_SUM0_PCI_MSI			UINT64_C(0x00000f0000000000)
    212 #define	 CIU_INTX_SUM0_PCI_MSI_63_48		UINT64_C(0x0000080000000000)
    213 #define	 CIU_INTX_SUM0_PCI_MSI_47_32		UINT64_C(0x0000040000000000)
    214 #define	 CIU_INTX_SUM0_PCI_MSI_31_16		UINT64_C(0x0000020000000000)
    215 #define	 CIU_INTX_SUM0_PCI_MSI_15_0		UINT64_C(0x0000010000000000)
    216 #define	CIU_INTX_SUM0_PCI_INT			UINT64_C(0x000000f000000000)
    217 #define	 CIU_INTX_SUM0_PCI_INT_D		UINT64_C(0x0000008000000000)
    218 #define	 CIU_INTX_SUM0_PCI_INT_C		UINT64_C(0x0000004000000000)
    219 #define	 CIU_INTX_SUM0_PCI_INT_B		UINT64_C(0x0000002000000000)
    220 #define	 CIU_INTX_SUM0_PCI_INT_A		UINT64_C(0x0000001000000000)
    221 #define	CIU_INTX_SUM0_UART			UINT64_C(0x0000000c00000000)
    222 #define	 CIU_INTX_SUM0_UART_1			UINT64_C(0x0000000800000000)
    223 #define	 CIU_INTX_SUM0_UART_0			UINT64_C(0x0000000400000000)
    224 #define	CIU_INTX_SUM0_MBOX			UINT64_C(0x0000000300000000)
    225 #define	 CIU_INTX_SUM0_MBOX_31_16		UINT64_C(0x0000000200000000)
    226 #define	 CIU_INTX_SUM0_MBOX_15_0		UINT64_C(0x0000000100000000)
    227 #define	CIU_INTX_SUM0_GPIO			UINT64_C(0x00000000ffff0000)
    228 #define	 CIU_INTX_SUM0_GPIO_15			UINT64_C(0x0000000080000000)
    229 #define	 CIU_INTX_SUM0_GPIO_14			UINT64_C(0x0000000040000000)
    230 #define	 CIU_INTX_SUM0_GPIO_13			UINT64_C(0x0000000020000000)
    231 #define	 CIU_INTX_SUM0_GPIO_12			UINT64_C(0x0000000010000000)
    232 #define	 CIU_INTX_SUM0_GPIO_11			UINT64_C(0x0000000008000000)
    233 #define	 CIU_INTX_SUM0_GPIO_10			UINT64_C(0x0000000004000000)
    234 #define	 CIU_INTX_SUM0_GPIO_9			UINT64_C(0x0000000002000000)
    235 #define	 CIU_INTX_SUM0_GPIO_8			UINT64_C(0x0000000001000000)
    236 #define	 CIU_INTX_SUM0_GPIO_7			UINT64_C(0x0000000000800000)
    237 #define	 CIU_INTX_SUM0_GPIO_6			UINT64_C(0x0000000000400000)
    238 #define	 CIU_INTX_SUM0_GPIO_5			UINT64_C(0x0000000000200000)
    239 #define	 CIU_INTX_SUM0_GPIO_4			UINT64_C(0x0000000000100000)
    240 #define	 CIU_INTX_SUM0_GPIO_3			UINT64_C(0x0000000000080000)
    241 #define	 CIU_INTX_SUM0_GPIO_2			UINT64_C(0x0000000000040000)
    242 #define	 CIU_INTX_SUM0_GPIO_1			UINT64_C(0x0000000000020000)
    243 #define	 CIU_INTX_SUM0_GPIO_0			UINT64_C(0x0000000000010000)
    244 #define	CIU_INTX_SUM0_WORKQ			UINT64_C(0x000000000000ffff)
    245 #define	 CIU_INTX_SUM0_WORKQ_15			UINT64_C(0x0000000000008000)
    246 #define	 CIU_INTX_SUM0_WORKQ_14			UINT64_C(0x0000000000004000)
    247 #define	 CIU_INTX_SUM0_WORKQ_13			UINT64_C(0x0000000000002000)
    248 #define	 CIU_INTX_SUM0_WORKQ_12			UINT64_C(0x0000000000001000)
    249 #define	 CIU_INTX_SUM0_WORKQ_11			UINT64_C(0x0000000000000800)
    250 #define	 CIU_INTX_SUM0_WORKQ_10			UINT64_C(0x0000000000000400)
    251 #define	 CIU_INTX_SUM0_WORKQ_9			UINT64_C(0x0000000000000200)
    252 #define	 CIU_INTX_SUM0_WORKQ_8			UINT64_C(0x0000000000000100)
    253 #define	 CIU_INTX_SUM0_WORKQ_7			UINT64_C(0x0000000000000080)
    254 #define	 CIU_INTX_SUM0_WORKQ_6			UINT64_C(0x0000000000000040)
    255 #define	 CIU_INTX_SUM0_WORKQ_5			UINT64_C(0x0000000000000020)
    256 #define	 CIU_INTX_SUM0_WORKQ_4			UINT64_C(0x0000000000000010)
    257 #define	 CIU_INTX_SUM0_WORKQ_3			UINT64_C(0x0000000000000008)
    258 #define	 CIU_INTX_SUM0_WORKQ_2			UINT64_C(0x0000000000000004)
    259 #define	 CIU_INTX_SUM0_WORKQ_1			UINT64_C(0x0000000000000002)
    260 #define	 CIU_INTX_SUM0_WORKQ_0			UINT64_C(0x0000000000000001)
    261 
    262 #define	CIU_INT_SUM1_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    263 #define	CIU_INT_SUM1_WDOG			UINT64_C(0x0000000000000001)
    264 
    265 #define	CIU_INTX_EN0_XXX_63_59			UINT64_C(0xf800000000000000)
    266 #define	CIU_INTX_EN0_MPI			UINT64_C(0x0400000000000000)
    267 #define	CIU_INTX_EN0_PCM			UINT64_C(0x0200000000000000)
    268 #define	CIU_INTX_EN0_USB			UINT64_C(0x0100000000000000)
    269 #define	CIU_INTX_EN0_TIMER			UINT64_C(0x00f0000000000000)
    270 #define	 CIU_INTX_EN0_TIMER_3			UINT64_C(0x0080000000000000)
    271 #define	 CIU_INTX_EN0_TIMER_2			UINT64_C(0x0040000000000000)
    272 #define	 CIU_INTX_EN0_TIMER_1			UINT64_C(0x0020000000000000)
    273 #define	 CIU_INTX_EN0_TIMER_0			UINT64_C(0x0010000000000000)
    274 #define	CIU_INTX_EN0_XXX_51			UINT64_C(0x0008000000000000)
    275 #define	CIU_INTX_EN0_IPD_DRP			UINT64_C(0x0004000000000000)
    276 #define	CIU_INTX_EN0_XXX_49			UINT64_C(0x0002000000000000)
    277 #define	CIU_INTX_EN0_GMX_DRP			UINT64_C(0x0001000000000000)
    278 #define	CIU_INTX_EN0_TRACE			UINT64_C(0x0000800000000000)
    279 #define	CIU_INTX_EN0_RML			UINT64_C(0x0000400000000000)
    280 #define	CIU_INTX_EN0_TWSI			UINT64_C(0x0000200000000000)
    281 #define	CIU_INTX_EN0_WDOG_SUM			UINT64_C(0x0000100000000000)
    282 #define	CIU_INTX_EN0_PCI_MSI			UINT64_C(0x00000f0000000000)
    283 #define	 CIU_INTX_EN0_PCI_MSI_63_48		UINT64_C(0x0000080000000000)
    284 #define	 CIU_INTX_EN0_PCI_MSI_47_32		UINT64_C(0x0000040000000000)
    285 #define	 CIU_INTX_EN0_PCI_MSI_31_16		UINT64_C(0x0000020000000000)
    286 #define	 CIU_INTX_EN0_PCI_MSI_15_0		UINT64_C(0x0000010000000000)
    287 #define	CIU_INTX_EN0_PCI_INT			UINT64_C(0x000000f000000000)
    288 #define	 CIU_INTX_EN0_PCI_INT_D			UINT64_C(0x0000008000000000)
    289 #define	 CIU_INTX_EN0_PCI_INT_C			UINT64_C(0x0000004000000000)
    290 #define	 CIU_INTX_EN0_PCI_INT_B			UINT64_C(0x0000002000000000)
    291 #define	 CIU_INTX_EN0_PCI_INT_A			UINT64_C(0x0000001000000000)
    292 #define	CIU_INTX_EN0_UART			UINT64_C(0x0000000c00000000)
    293 #define	 CIU_INTX_EN0_UART_1			UINT64_C(0x0000000800000000)
    294 #define	 CIU_INTX_EN0_UART_0			UINT64_C(0x0000000400000000)
    295 #define	CIU_INTX_EN0_MBOX			UINT64_C(0x0000000300000000)
    296 #define	 CIU_INTX_EN0_MBOX_31_16		UINT64_C(0x0000000200000000)
    297 #define	 CIU_INTX_EN0_MBOX_15_0			UINT64_C(0x0000000100000000)
    298 #define	CIU_INTX_EN0_GPIO			UINT64_C(0x00000000ffff0000)
    299 #define	 CIU_INTX_EN0_GPIO_15			UINT64_C(0x0000000080000000)
    300 #define	 CIU_INTX_EN0_GPIO_14			UINT64_C(0x0000000040000000)
    301 #define	 CIU_INTX_EN0_GPIO_13			UINT64_C(0x0000000020000000)
    302 #define	 CIU_INTX_EN0_GPIO_12			UINT64_C(0x0000000010000000)
    303 #define	 CIU_INTX_EN0_GPIO_11			UINT64_C(0x0000000008000000)
    304 #define	 CIU_INTX_EN0_GPIO_10			UINT64_C(0x0000000004000000)
    305 #define	 CIU_INTX_EN0_GPIO_9			UINT64_C(0x0000000002000000)
    306 #define	 CIU_INTX_EN0_GPIO_8			UINT64_C(0x0000000001000000)
    307 #define	 CIU_INTX_EN0_GPIO_7			UINT64_C(0x0000000000800000)
    308 #define	 CIU_INTX_EN0_GPIO_6			UINT64_C(0x0000000000400000)
    309 #define	 CIU_INTX_EN0_GPIO_5			UINT64_C(0x0000000000200000)
    310 #define	 CIU_INTX_EN0_GPIO_4			UINT64_C(0x0000000000100000)
    311 #define	 CIU_INTX_EN0_GPIO_3			UINT64_C(0x0000000000080000)
    312 #define	 CIU_INTX_EN0_GPIO_2			UINT64_C(0x0000000000040000)
    313 #define	 CIU_INTX_EN0_GPIO_1			UINT64_C(0x0000000000020000)
    314 #define	 CIU_INTX_EN0_GPIO_0			UINT64_C(0x0000000000010000)
    315 #define	CIU_INTX_EN0_WORKQ			UINT64_C(0x000000000000ffff)
    316 #define	 CIU_INTX_EN0_WORKQ_15			UINT64_C(0x0000000000008000)
    317 #define	 CIU_INTX_EN0_WORKQ_14			UINT64_C(0x0000000000004000)
    318 #define	 CIU_INTX_EN0_WORKQ_13			UINT64_C(0x0000000000002000)
    319 #define	 CIU_INTX_EN0_WORKQ_12			UINT64_C(0x0000000000001000)
    320 #define	 CIU_INTX_EN0_WORKQ_11			UINT64_C(0x0000000000000800)
    321 #define	 CIU_INTX_EN0_WORKQ_10			UINT64_C(0x0000000000000400)
    322 #define	 CIU_INTX_EN0_WORKQ_9			UINT64_C(0x0000000000000200)
    323 #define	 CIU_INTX_EN0_WORKQ_8			UINT64_C(0x0000000000000100)
    324 #define	 CIU_INTX_EN0_WORKQ_7			UINT64_C(0x0000000000000080)
    325 #define	 CIU_INTX_EN0_WORKQ_6			UINT64_C(0x0000000000000040)
    326 #define	 CIU_INTX_EN0_WORKQ_5			UINT64_C(0x0000000000000020)
    327 #define	 CIU_INTX_EN0_WORKQ_4			UINT64_C(0x0000000000000010)
    328 #define	 CIU_INTX_EN0_WORKQ_3			UINT64_C(0x0000000000000008)
    329 #define	 CIU_INTX_EN0_WORKQ_2			UINT64_C(0x0000000000000004)
    330 #define	 CIU_INTX_EN0_WORKQ_1			UINT64_C(0x0000000000000002)
    331 #define	 CIU_INTX_EN0_WORKQ_0			UINT64_C(0x0000000000000001)
    332 
    333 #define	CIU_INTX_EN1_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    334 #define	CIU_INTX_EN1_WDOG			UINT64_C(0x0000000000000001)
    335 
    336 #define	CIU_TIMX_XXX_63_37			UINT64_C(0xffffffe000000000)
    337 #define	CIU_TIMX_ONE_SHOT			UINT64_C(0x0000001000000000)
    338 #define	CIU_TIMX_LEN				UINT64_C(0x0000000fffffffff)
    339 
    340 #define	CIU_WDOGX_XXX_63_46			UINT64_C(0xffffc00000000000)
    341 #define	CIU_WDOGX_GSTOPEN			UINT64_C(0x0000200000000000)
    342 #define	CIU_WDOGX_DSTOP				UINT64_C(0x0000100000000000)
    343 #define	CIU_WDOGX_CNT				UINT64_C(0x00000ffffff00000)
    344 #define	CIU_WDOGX_LEN				UINT64_C(0x00000000000ffff0)
    345 #define	CIU_WDOGX_STATE				UINT64_C(0x000000000000000c)
    346 #define	CIU_WDOGX_MODE				UINT64_C(0x0000000000000003)
    347 
    348 #define	CIU_PP_POKEX_XXX_63_0			UINT64_C(0xffffffffffffffff)
    349 
    350 #define	CIU_MBOX_SETX_XXX_63_32			UINT64_C(0xffffffff00000000)
    351 #define	CIU_MBOX_SETX_SET			UINT64_C(0x00000000ffffffff)
    352 
    353 #define	CIU_MBOX_CLRX_XXX_63_32			UINT64_C(0xffffffff00000000)
    354 #define	CIU_MBOX_CLRX_CLR			UINT64_C(0x00000000ffffffff)
    355 
    356 #define	CIU_PP_RST_XXX_63_2			UINT64_C(0xfffffffffffffffc)
    357 #define	CIU_PP_RST_RST				UINT64_C(0x0000000000000002)
    358 #define	CIU_PP_RST_RST0				UINT64_C(0x0000000000000001)
    359 
    360 #define	CIU_PP_DBG_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    361 #define	CIU_PP_DBG_PPDBG			UINT64_C(0x0000000000000001)
    362 
    363 #define	CIU_GSTOP_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    364 #define	CIU_GSTOP_GSTOP				UINT64_C(0x0000000000000001)
    365 
    366 #define	CIU_NMI_XXX_63_2			UINT64_C(0xfffffffffffffffc)
    367 #define	CIU_NMI_NMI				UINT64_C(0x0000000000000003)
    368 
    369 #define	CIU_DINT_XXX_63_2			UINT64_C(0xfffffffffffffffc)
    370 #define	CIU_DINT_DINT				UINT64_C(0x0000000000000003)
    371 
    372 #define	CIU_FUSE_XXX_63_2			UINT64_C(0xfffffffffffffffc)
    373 #define	CIU_FUSE_FUSE				UINT64_C(0x0000000000000003)
    374 
    375 #define	CIU_BIST_XXX_63_4			UINT64_C(0xfffffffffffffff0)
    376 #define	CIU_BIST_BIST				UINT64_C(0x000000000000000f)
    377 
    378 #define	CIU_SOFT_BIST_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    379 #define	CIU_SOFT_BIST_SOFT_BIST			UINT64_C(0x0000000000000001)
    380 
    381 #define	CIU_SOFT_RST_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    382 #define	CIU_SOFT_RST_SOFT_RST			UINT64_C(0x0000000000000001)
    383 
    384 #define	CIU_SOFT_PRST_XXX_63_4			UINT64_C(0xfffffffffffffff8)
    385 #define	CIU_SOFT_PRST_HOST64			UINT64_C(0x0000000000000004)
    386 #define	CIU_SOFT_PRST_NPI			UINT64_C(0x0000000000000002)
    387 #define	CIU_SOFT_PRST_SOFT_PRST			UINT64_C(0x0000000000000001)
    388 
    389 #define	CIU_PCI_INTA_XXX_63_2			UINT64_C(0xfffffffffffffffc)
    390 #define	CIU_PCI_INTA_INT			UINT64_C(0x0000000000000003)
    391 
    392 /* -- snprintb(9) */
    393 
    394 #define	CIU_INTX_SUM0_BITS \
    395 	"\177"		/* new format */ \
    396 	"\020"		/* hex display */ \
    397 	"\020"		/* %016x format */ \
    398 	"b\x3a"		"MPI\0" \
    399 	"b\x39"		"PCM\0" \
    400 	"b\x38"		"USB\0" \
    401 	"b\x37"		"TIMER_3\0" \
    402 	"b\x36"		"TIMER_2\0" \
    403 	"b\x35"		"TIMER_1\0" \
    404 	"b\x34"		"TIMER_0\0" \
    405 	"f\x34\x04"	"TIMER\0" \
    406 	"b\x32"		"IPD_DRP\0" \
    407 	"b\x30"		"GMX_DRP\0" \
    408 	"b\x2f"		"TRACE\0" \
    409 	"b\x2e"		"RML\0" \
    410 	"b\x2d"		"TWSI\0" \
    411 	"b\x2c"		"WDOG_SUM\0" \
    412 	"b\x2b"		"PCI_MSI_63_48\0" \
    413 	"b\x2a"		"PCI_MSI_47_32\0" \
    414 	"b\x29"		"PCI_MSI_31_16\0" \
    415 	"b\x28"		"PCI_MSI_15_0\0" \
    416 	"f\x28\x04"	"PCI_MSI\0" \
    417 	"b\x27"		"PCI_INT_D\0" \
    418 	"b\x26"		"PCI_INT_C\0" \
    419 	"b\x25"		"PCI_INT_B\0" \
    420 	"f\x24\x04"	"PCI_INT\0" \
    421 	"b\x24"		"PCI_INT_A\0" \
    422 	"b\x23"		"UART_1\0" \
    423 	"b\x22"		"UART_0\0" \
    424 	"f\x22\x02"	"UART\0" \
    425 	"b\x21"		"MBOX_31_16\0" \
    426 	"f\x20\x02"	"MBOX\0" \
    427 	"b\x20"		"MBOX_15_0\0" \
    428 	"b\x1f"		"GPIO_15\0" \
    429 	"b\x1e"		"GPIO_14\0" \
    430 	"b\x1d"		"GPIO_13\0" \
    431 	"b\x1c"		"GPIO_12\0" \
    432 	"b\x1b"		"GPIO_11\0" \
    433 	"b\x1a"		"GPIO_10\0" \
    434 	"b\x19"		"GPIO_9\0" \
    435 	"b\x18"		"GPIO_8\0" \
    436 	"b\x17"		"GPIO_7\0" \
    437 	"b\x16"		"GPIO_6\0" \
    438 	"b\x15"		"GPIO_5\0" \
    439 	"b\x14"		"GPIO_4\0" \
    440 	"b\x13"		"GPIO_3\0" \
    441 	"b\x12"		"GPIO_2\0" \
    442 	"b\x11"		"GPIO_1\0" \
    443 	"b\x10"		"GPIO_0\0" \
    444 	"f\x10\x10"	"GPIO\0" \
    445 	"b\x0f"		"WORKQ_15\0" \
    446 	"b\x0e"		"WORKQ_14\0" \
    447 	"b\x0d"		"WORKQ_13\0" \
    448 	"b\x0c"		"WORKQ_12\0" \
    449 	"b\x0b"		"WORKQ_11\0" \
    450 	"b\x0a"		"WORKQ_10\0" \
    451 	"b\x09"		"WORKQ_9\0" \
    452 	"b\x08"		"WORKQ_8\0" \
    453 	"b\x07"		"WORKQ_7\0" \
    454 	"b\x06"		"WORKQ_6\0" \
    455 	"b\x05"		"WORKQ_5\0" \
    456 	"b\x04"		"WORKQ_4\0" \
    457 	"b\x03"		"WORKQ_3\0" \
    458 	"b\x02"		"WORKQ_2\0" \
    459 	"b\x01"		"WORKQ_1\0" \
    460 	"b\x00"		"WORKQ_0\0" \
    461 	"f\x00\x10"	"WORKQ\0"
    462 #define	CIU_INT0_SUM0_BITS			CIU_INTX_SUM0_BITS
    463 #define	CIU_INT1_SUM0_BITS			CIU_INTX_SUM0_BITS
    464 #define	CIU_INT2_SUM0_BITS			CIU_INTX_SUM0_BITS
    465 #define	CIU_INT3_SUM0_BITS			CIU_INTX_SUM0_BITS
    466 #define	CIU_INT32_SUM0_BITS			CIU_INTX_SUM0_BITS
    467 
    468 #define	CIU_INT_SUM1_BITS \
    469 	"\177"		/* new format */ \
    470 	"\020"		/* hex display */ \
    471 	"\020"		/* %016x format */ \
    472 	"b\x00"		"WDOG\0"
    473 
    474 #define	CIU_INTX_EN0_BITS \
    475 	"\177"		/* new format */ \
    476 	"\020"		/* hex display */ \
    477 	"\020"		/* %016x format */ \
    478 	"b\x3a"		"MPI\0" \
    479 	"b\x39"		"PCM\0" \
    480 	"b\x38"		"USB\0" \
    481 	"b\x37"		"TIMER_3\0" \
    482 	"b\x36"		"TIMER_2\0" \
    483 	"b\x35"		"TIMER_1\0" \
    484 	"b\x34"		"TIMER_0\0" \
    485 	"f\x34\x04"	"TIMER\0" \
    486 	"b\x32"		"IPD_DRP\0" \
    487 	"b\x30"		"GMX_DRP\0" \
    488 	"b\x2f"		"TRACE\0" \
    489 	"b\x2e"		"RML\0" \
    490 	"b\x2d"		"TWSI\0" \
    491 	"b\x2c"		"WDOG_SUM\0" \
    492 	"b\x2b"		"PCI_MSI_63_48\0" \
    493 	"b\x2a"		"PCI_MSI_47_32\0" \
    494 	"b\x29"		"PCI_MSI_31_16\0" \
    495 	"b\x28"		"PCI_MSI_15_0\0" \
    496 	"f\x28\x04"	"PCI_MSI\0" \
    497 	"b\x27"		"PCI_INT_D\0" \
    498 	"b\x26"		"PCI_INT_C\0" \
    499 	"b\x25"		"PCI_INT_B\0" \
    500 	"f\x24\x04"	"PCI_INT\0" \
    501 	"b\x24"		"PCI_INT_A\0" \
    502 	"b\x23"		"UART_1\0" \
    503 	"b\x22"		"UART_0\0" \
    504 	"f\x22\x02"	"UART\0" \
    505 	"b\x21"		"MBOX_31_16\0" \
    506 	"f\x20\x02"	"MBOX\0" \
    507 	"b\x20"		"MBOX_15_0\0" \
    508 	"b\x1f"		"GPIO_15\0" \
    509 	"b\x1e"		"GPIO_14\0" \
    510 	"b\x1d"		"GPIO_13\0" \
    511 	"b\x1c"		"GPIO_12\0" \
    512 	"b\x1b"		"GPIO_11\0" \
    513 	"b\x1a"		"GPIO_10\0" \
    514 	"b\x19"		"GPIO_9\0" \
    515 	"b\x18"		"GPIO_8\0" \
    516 	"b\x17"		"GPIO_7\0" \
    517 	"b\x16"		"GPIO_6\0" \
    518 	"b\x15"		"GPIO_5\0" \
    519 	"b\x14"		"GPIO_4\0" \
    520 	"b\x13"		"GPIO_3\0" \
    521 	"b\x12"		"GPIO_2\0" \
    522 	"b\x11"		"GPIO_1\0" \
    523 	"b\x10"		"GPIO_0\0" \
    524 	"f\x10\x10"	"GPIO\0" \
    525 	"b\x0f"		"WORKQ_15\0" \
    526 	"b\x0e"		"WORKQ_14\0" \
    527 	"b\x0d"		"WORKQ_13\0" \
    528 	"b\x0c"		"WORKQ_12\0" \
    529 	"b\x0b"		"WORKQ_11\0" \
    530 	"b\x0a"		"WORKQ_10\0" \
    531 	"b\x09"		"WORKQ_9\0" \
    532 	"b\x08"		"WORKQ_8\0" \
    533 	"b\x07"		"WORKQ_7\0" \
    534 	"b\x06"		"WORKQ_6\0" \
    535 	"b\x05"		"WORKQ_5\0" \
    536 	"b\x04"		"WORKQ_4\0" \
    537 	"b\x03"		"WORKQ_3\0" \
    538 	"b\x02"		"WORKQ_2\0" \
    539 	"b\x01"		"WORKQ_1\0" \
    540 	"b\x00"		"WORKQ_0\0" \
    541 	"f\x00\x10"	"WORKQ\0"
    542 #define	CIU_INT0_EN0_BITS			CIU_INTX_EN0_BITS
    543 #define	CIU_INT1_EN0_BITS			CIU_INTX_EN0_BITS
    544 #define	CIU_INT2_EN0_BITS			CIU_INTX_EN0_BITS
    545 #define	CIU_INT3_EN0_BITS			CIU_INTX_EN0_BITS
    546 #define	CIU_INT32_EN0_BITS			CIU_INTX_EN0_BITS
    547 
    548 #define	CIU_INTX_EN1_BITS \
    549 	"\177"		/* new format */ \
    550 	"\020"		/* hex display */ \
    551 	"\020"		/* %016x format */ \
    552 	"b\x00"		"WDOG\0"
    553 #define	CIU_INT0_EN1_BITS			CIU_INTX_EN1_BITS
    554 #define	CIU_INT1_EN1_BITS			CIU_INTX_EN1_BITS
    555 #define	CIU_INT2_EN1_BITS			CIU_INTX_EN1_BITS
    556 #define	CIU_INT3_EN1_BITS			CIU_INTX_EN1_BITS
    557 #define	CIU_INT32_EN1_BITS			CIU_INTX_EN1_BITS
    558 
    559 #define	CIU_TIMX_BITS \
    560 	"\177"		/* new format */ \
    561 	"\020"		/* hex display */ \
    562 	"\020"		/* %016x format */ \
    563 	"b\x24"		"ONE_SHOT\0" \
    564 	"f\x00\x24"	"LEN\0"
    565 #define	CIU_TIM0_BITS				CIU_TIMX_BITS
    566 #define	CIU_TIM1_BITS				CIU_TIMX_BITS
    567 #define	CIU_TIM2_BITS				CIU_TIMX_BITS
    568 #define	CIU_TIM3_BITS				CIU_TIMX_BITS
    569 #define	CIU_TIM32_BITS				CIU_TIMX_BITS
    570 
    571 #define	CIU_WDOGX_BITS \
    572 	"\177"		/* new format */ \
    573 	"\020"		/* hex display */ \
    574 	"\020"		/* %016x format */ \
    575 	"b\x2d"		"GSTOPEN\0" \
    576 	"b\x2c"		"DSTOP\0" \
    577 	"f\x14\x18"	"CNT\0" \
    578 	"f\x04\x10"	"LEN\0" \
    579 	"f\x02\x02"	"STATE\0" \
    580 	"f\x00\x02"	"MODE\0"
    581 #define	CIU_WDOG0_BITS				CIU_WDOGX_BITS
    582 #define	CIU_WDOG1_BITS				CIU_WDOGX_BITS
    583 
    584 #if 0
    585 #define	CIU_PP_POKEX_BITS \
    586 	"\177"		/* new format */ \
    587 	"\020"		/* hex display */ \
    588 	"\020"		/* %016x format */ \
    589 
    590 #define	CIU_PP_POKE0_BITS			CIU_PP_POKEX_BITS
    591 #define	CIU_PP_POKE1_BITS			CIU_PP_POKEX_BITS
    592 #endif
    593 
    594 #define	CIU_MBOX_SETX_BITS \
    595 	"\177"		/* new format */ \
    596 	"\020"		/* hex display */ \
    597 	"\020"		/* %016x format */ \
    598 	"f\x00\x20"	"SET\0"
    599 #define	CIU_MBOX_SET0_BITS			CIU_MBOX_SETX_BITS
    600 #define	CIU_MBOX_SET1_BITS			CIU_MBOX_SETX_BITS
    601 
    602 #define	CIU_MBOX_CLRX_BITS \
    603 	"\177"		/* new format */ \
    604 	"\020"		/* hex display */ \
    605 	"\020"		/* %016x format */ \
    606 	"f\x00\x20"	"CLR\0"
    607 #define	CIU_MBOX_CLR0_BITS			CIU_MBOX_CLRX_BITS
    608 #define	CIU_MBOX_CLR1_BITS			CIU_MBOX_CLRX_BITS
    609 
    610 #define	CIU_PP_RST_BITS \
    611 	"\177"		/* new format */ \
    612 	"\020"		/* hex display */ \
    613 	"\020"		/* %016x format */ \
    614 	"b\x00"		"RST0\0"
    615 
    616 #define	CIU_PP_DBG_BITS \
    617 	"\177"		/* new format */ \
    618 	"\020"		/* hex display */ \
    619 	"\020"		/* %016x format */ \
    620 	"b\x00"		"PPDBG\0"
    621 
    622 #define	CIU_GSTOP_BITS \
    623 	"\177"		/* new format */ \
    624 	"\020"		/* hex display */ \
    625 	"\020"		/* %016x format */ \
    626 	"b\x00"		"GSTOP\0"
    627 
    628 #define	CIU_NMI_BITS \
    629 	"\177"		/* new format */ \
    630 	"\020"		/* hex display */ \
    631 	"\020"		/* %016x format */ \
    632 	"b\x00"		"NMI\0"
    633 
    634 #define	CIU_DINT_BITS \
    635 	"\177"		/* new format */ \
    636 	"\020"		/* hex display */ \
    637 	"\020"		/* %016x format */ \
    638 	"b\x00"		"DINT\0"
    639 
    640 #define	CIU_FUSE_BITS \
    641 	"\177"		/* new format */ \
    642 	"\020"		/* hex display */ \
    643 	"\020"		/* %016x format */ \
    644 	"b\x00"		"FUSE\0"
    645 
    646 #define	CIU_BIST_BITS \
    647 	"\177"		/* new format */ \
    648 	"\020"		/* hex display */ \
    649 	"\020"		/* %016x format */ \
    650 	"f\x00\x04"	"BIST\0"
    651 
    652 #define	CIU_SOFT_BIST_BITS \
    653 	"\177"		/* new format */ \
    654 	"\020"		/* hex display */ \
    655 	"\020"		/* %016x format */ \
    656 	"b\x00"		"SOFT_BIST\0"
    657 
    658 #define	CIU_SOFT_RST_BITS \
    659 	"\177"		/* new format */ \
    660 	"\020"		/* hex display */ \
    661 	"\020"		/* %016x format */ \
    662 	"b\x00"		"SOFT_RST\0"
    663 
    664 #define	CIU_SOFT_PRST_BITS \
    665 	"\177"		/* new format */ \
    666 	"\020"		/* hex display */ \
    667 	"\020"		/* %016x format */ \
    668 	"b\x02"		"HOST64\0" \
    669 	"b\x01"		"NPI\0" \
    670 	"b\x00"		"SOFT_PRST\0"
    671 
    672 #define	CIU_PCI_INTA_BITS \
    673 	"\177"		/* new format */ \
    674 	"\020"		/* hex display */ \
    675 	"\020"		/* %016x format */ \
    676 	"f\x00\x02"	"INT\0"
    677 
    678 #endif /* _OCTEON_CIUREG_H_ */
    679