rmixlreg.h revision 1.1.2.1 1 1.1.2.1 cliff /* $NetBSD: rmixlreg.h,v 1.1.2.1 2009/09/13 03:27:38 cliff Exp $ */
2 1.1.2.1 cliff
3 1.1.2.1 cliff /*-
4 1.1.2.1 cliff * Copyright (c) 2009 The NetBSD Foundation, Inc.
5 1.1.2.1 cliff * All rights reserved.
6 1.1.2.1 cliff *
7 1.1.2.1 cliff * This code is derived from software contributed to The NetBSD Foundation
8 1.1.2.1 cliff * by CCCCCCCC NNNNNNNNNN
9 1.1.2.1 cliff *
10 1.1.2.1 cliff * Redistribution and use in source and binary forms, with or without
11 1.1.2.1 cliff * modification, are permitted provided that the following conditions
12 1.1.2.1 cliff * are met:
13 1.1.2.1 cliff * 1. Redistributions of source code must retain the above copyright
14 1.1.2.1 cliff * notice, this list of conditions and the following disclaimer.
15 1.1.2.1 cliff * 2. Redistributions in binary form must reproduce the above copyright
16 1.1.2.1 cliff * notice, this list of conditions and the following disclaimer in the
17 1.1.2.1 cliff * documentation and/or other materials provided with the distribution.
18 1.1.2.1 cliff *
19 1.1.2.1 cliff * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 1.1.2.1 cliff * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 1.1.2.1 cliff * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 1.1.2.1 cliff * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 1.1.2.1 cliff * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 1.1.2.1 cliff * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 1.1.2.1 cliff * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 1.1.2.1 cliff * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 1.1.2.1 cliff * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 1.1.2.1 cliff * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 1.1.2.1 cliff * POSSIBILITY OF SUCH DAMAGE.
30 1.1.2.1 cliff */
31 1.1.2.1 cliff
32 1.1.2.1 cliff
33 1.1.2.1 cliff #ifndef _MIPS_RMI_RMIXLREGS_H_
34 1.1.2.1 cliff #define _MIPS_RMI_RMIXLREGS_H_
35 1.1.2.1 cliff
36 1.1.2.1 cliff /*
37 1.1.2.1 cliff * RMIXL Coprocessor 2 registers:
38 1.1.2.1 cliff */
39 1.1.2.1 cliff #ifdef _LOCORE
40 1.1.2.1 cliff #define _(n) __CONCAT($,n)
41 1.1.2.1 cliff #else
42 1.1.2.1 cliff #define _(n) n
43 1.1.2.1 cliff #endif
44 1.1.2.1 cliff /* #sels --------------+ */
45 1.1.2.1 cliff /* #regs -----------+ | */
46 1.1.2.1 cliff /* What: #bits --+ | | */
47 1.1.2.1 cliff /* v v v */
48 1.1.2.1 cliff #define RMIXL_COP_2_TXBUF _(0) /* Transmit Buffers 64 [1][4] */
49 1.1.2.1 cliff #define RMIXL_COP_2_RXBUF _(1) /* Receive Buffers 64 [1][4] */
50 1.1.2.1 cliff #define RMIXL_COP_2_MSG_STS _(2) /* Mesage Status 32 [1][2] */
51 1.1.2.1 cliff #define RMIXL_COP_2_MSG_CFG _(3) /* MEssage Config 32 [1][2] */
52 1.1.2.1 cliff #define RMIXL_COP_2_MSG_BSZ _(4) /* Message Bucket Size 32 [1][8] */
53 1.1.2.1 cliff #define RMIXL_COP_2_CREDITS _(16) /* Credit Counters 32 [16][8] */
54 1.1.2.1 cliff
55 1.1.2.1 cliff /* CP2 bit defines TBD */
56 1.1.2.1 cliff
57 1.1.2.1 cliff /*
58 1.1.2.1 cliff * RMIXL Processor Control Register addresses
59 1.1.2.1 cliff * - Offset in bits 7..0
60 1.1.2.1 cliff * - BlockID in bits 15..8
61 1.1.2.1 cliff */
62 1.1.2.1 cliff #define RMIXL_PCR_THREADEN 0x0000
63 1.1.2.1 cliff #define RMIXL_PCR_SOFTWARE_SLEEP 0x0001
64 1.1.2.1 cliff #define RMIXL_PCR_SCHEDULING 0x0002
65 1.1.2.1 cliff #define RMIXL_PCR_SCHEDULING_COUNTERS 0x0003
66 1.1.2.1 cliff #define RMIXL_PCR_BHRPM 0x0004
67 1.1.2.1 cliff #define RMIXL_PCR_IFU_DEFEATURE 0x0006
68 1.1.2.1 cliff #define RMIXL_PCR_ICU_DEFEATURE 0x0100
69 1.1.2.1 cliff #define RMIXL_PCR_ICU_ERROR_LOGGING 0x0101
70 1.1.2.1 cliff #define RMIXL_PCR_ICU_DEBUG_ACCESS_ADDR 0x0102
71 1.1.2.1 cliff #define RMIXL_PCR_ICU_DEBUG_ACCESS_DATALO 0x0103
72 1.1.2.1 cliff #define RMIXL_PCR_ICU_DEBUG_ACCESS_DATAHI 0x0104
73 1.1.2.1 cliff #define RMIXL_PCR_ICU_SAMPLING_LFSR 0x0105
74 1.1.2.1 cliff #define RMIXL_PCR_ICU_SAMPLING_PC 0x0106
75 1.1.2.1 cliff #define RMIXL_PCR_ICU_SAMPLING_SETUP 0x0107
76 1.1.2.1 cliff #define RMIXL_PCR_ICU_SAMPLING_TIMER 0x0108
77 1.1.2.1 cliff #define RMIXL_PCR_ICU_SAMPLING_PC_UPPER 0x0109
78 1.1.2.1 cliff #define RMIXL_PCR_IEU_DEFEATURE 0x0200
79 1.1.2.1 cliff #define RMIXL_PCR_TARGET_PC_REGISTER 0x0207
80 1.1.2.1 cliff #define RMIXL_PCR_L1D_CONFIG0 0x0300
81 1.1.2.1 cliff #define RMIXL_PCR_L1D_CONFIG1 0x0301
82 1.1.2.1 cliff #define RMIXL_PCR_L1D_CONFIG2 0x0302
83 1.1.2.1 cliff #define RMIXL_PCR_L1D_CONFIG3 0x0303
84 1.1.2.1 cliff #define RMIXL_PCR_L1D_CONFIG4 0x0304
85 1.1.2.1 cliff #define RMIXL_PCR_L1D_STATUS 0x0305
86 1.1.2.1 cliff #define RMIXL_PCR_L1D_DEFEATURE 0x0306
87 1.1.2.1 cliff #define RMIXL_PCR_L1D_DEBUG0 0x0307
88 1.1.2.1 cliff #define RMIXL_PCR_L1D_DEBUG1 0x0308
89 1.1.2.1 cliff #define RMIXL_PCR_L1D_CACHE_ERROR_LOG 0x0309
90 1.1.2.1 cliff #define RMIXL_PCR_L1D_CACHE_ERROR_OVF_LO 0x030A
91 1.1.2.1 cliff #define RMIXL_PCR_L1D_CACHE_INTERRUPT 0x030B
92 1.1.2.1 cliff #define RMIXL_PCR_MMU_SETUP 0x0400
93 1.1.2.1 cliff #define RMIXL_PCR_PRF_SMP_EVENT 0x0500
94 1.1.2.1 cliff #define RMIXL_PCR_RF_SMP_RPLY_BUF 0x0501
95 1.1.2.1 cliff
96 1.1.2.1 cliff /* PCR bit defines TBD */
97 1.1.2.1 cliff
98 1.1.2.1 cliff
99 1.1.2.1 cliff /*
100 1.1.2.1 cliff * Memory Distributed Interconnect (MDI) System Memory Map
101 1.1.2.1 cliff */
102 1.1.2.1 cliff #define RMIXL_PHYSADDR_MAX 0xffffffffffLL /* 1TB Physical Address space */
103 1.1.2.1 cliff #define RMIXL_IO_DEV_PBASE 0x1ef00000 /* default phys. from XL[RS]_IO_BAR */
104 1.1.2.1 cliff #define RMIXL_IO_DEV_VBASE MIPS_PHYS_TO_KSEG1(RMIXL_IO_DEV_PBASE)
105 1.1.2.1 cliff /* default virtual base address */
106 1.1.2.1 cliff #define RMIXL_IO_DEV_SIZE 0x100000 /* I/O Conf. space is 1MB region */
107 1.1.2.1 cliff
108 1.1.2.1 cliff /*
109 1.1.2.1 cliff * Peripheral and I/O Configuration Region of Memory
110 1.1.2.1 cliff *
111 1.1.2.1 cliff * These are relocatable; we run using the reset value defaults,
112 1.1.2.1 cliff * and we expect to inherit those intact from the boot firmware.
113 1.1.2.1 cliff *
114 1.1.2.1 cliff * Many of these overlap between XLR and XLS, exceptions are ifdef'ed.
115 1.1.2.1 cliff *
116 1.1.2.1 cliff * Device region offsets are relative to RMIXL_IO_DEV_PBASE.
117 1.1.2.1 cliff */
118 1.1.2.1 cliff #define RMIXL_IO_DEV_BRIDGE 0x00000 /* System Bridge Controller */
119 1.1.2.1 cliff #define RMIXL_IO_DEV_DDR_CHNA 0x01000 /* DDR1/DDR2 DRAM_A Channel, Port MA */
120 1.1.2.1 cliff #define RMIXL_IO_DEV_DDR_CHNB 0x02000 /* DDR1/DDR2 DRAM_B Channel, Port MB */
121 1.1.2.1 cliff #define RMIXL_IO_DEV_DDR_CHNC 0x03000 /* DDR1/DDR2 DRAM_C Channel, Port MC */
122 1.1.2.1 cliff #define RMIXL_IO_DEV_DDR_CHND 0x04000 /* DDR1/DDR2 DRAM_D Channel, Port MD */
123 1.1.2.1 cliff #if defined(MIPS64_XLR)
124 1.1.2.1 cliff #define RMIXL_IO_DEV_SRAM 0x07000 /* SRAM Controller, Port SA */
125 1.1.2.1 cliff #endif /* MIPS64_XLR */
126 1.1.2.1 cliff #define RMIXL_IO_DEV_PIC 0x08000 /* Programmable Interrupt Controller */
127 1.1.2.1 cliff #if defined(MIPS64_XLR)
128 1.1.2.1 cliff #define RMIXL_IO_DEV_PCIX 0x09000 /* PCI-X */
129 1.1.2.1 cliff #define RMIXL_IO_DEV_HT 0x0a000 /* HyperTransport */
130 1.1.2.1 cliff #endif /* MIPS64_XLR */
131 1.1.2.1 cliff #define RMIXL_IO_DEV_SAE 0x0b000 /* Security Acceleration Engine */
132 1.1.2.1 cliff #if defined(MIPS64_XLS)
133 1.1.2.1 cliff #define XAUI Interface_0 0x0c000 /* XAUI Interface_0 */
134 1.1.2.1 cliff /* when SGMII Interface_[0-3] are not used */
135 1.1.2.1 cliff #endif /* MIPS64_XLS */
136 1.1.2.1 cliff #define RMIXL_IO_DEV_GMAC_A 0x0c000 /* RGMII-Interface_A, Port RA */
137 1.1.2.1 cliff #define RMIXL_IO_DEV_GMAC_B 0x0d000 /* RGMII-Interface_B, Port RB */
138 1.1.2.1 cliff #define RMIXL_IO_DEV_GMAC_C 0x0e000 /* RGMII-Interface_C, Port RC */
139 1.1.2.1 cliff #define RMIXL_IO_DEV_GMAC_D 0x0f000 /* RGMII-Interface_D, Port RD */
140 1.1.2.1 cliff #if defined(MIPS64_XLR)
141 1.1.2.1 cliff #define RMIXL_IO_DEV_SPI4_A 0x10000 /* SPI-4.2-Interface_A, Port XA */
142 1.1.2.1 cliff #define RMIXL_IO_DEV_XGMAC_A 0x11000 /* XGMII-Interface_A, Port XA */
143 1.1.2.1 cliff #define RMIXL_IO_DEV_SPI4_B 0x12000 /* SPI-4.2-Interface_B, Port XB */
144 1.1.2.1 cliff #define RMIXL_IO_DEV_XGMAC_B 0x13000 /* XGMII-Interface_B, Port XB */
145 1.1.2.1 cliff #endif /* MIPS64_XLR */
146 1.1.2.1 cliff #define RMIXL_IO_DEV_UART_1 0x14000 /* UART_1 (16550 w/ ax4 addrs) */
147 1.1.2.1 cliff #define RMIXL_IO_DEV_UART_2 0x15000 /* UART_2 (16550 w/ ax4 addrs) */
148 1.1.2.1 cliff #define RMIXL_IO_DEV_I2C_1 0x16000 /* I2C_1 */
149 1.1.2.1 cliff #define RMIXL_IO_DEV_I2C_2 0x17000 /* I2C_2 */
150 1.1.2.1 cliff #define RMIXL_IO_DEV_GPIO 0x18000 /* GPIO */
151 1.1.2.1 cliff #define RMIXL_IO_DEV_FLASH 0x19000 /* Flash ROM */
152 1.1.2.1 cliff #define RMIXL_IO_DEV_DMA 0x1a000 /* DMA */
153 1.1.2.1 cliff #define RMIXL_IO_DEV_L2 0x1b000 /* L2 Cache */
154 1.1.2.1 cliff #define RMIXL_IO_DEV_TB 0x1c000 /* Trace Buffer */
155 1.1.2.1 cliff #if defined(MIPS64_XLS)
156 1.1.2.1 cliff #define RMIXL_IO_DEV_CMP 0x1d000 /* Compression/Decompression */
157 1.1.2.1 cliff #define RMIXL_IO_DEV_PCIE_BE 0x1e000 /* PCI-Express_BE */
158 1.1.2.1 cliff #define RMIXL_IO_DEV_PCIE_LE 0x1f000 /* PCI-Express_LE */
159 1.1.2.1 cliff #define RMIXL_IO_DEV_SRIO_BE 0x1e000 /* SRIO_BE */
160 1.1.2.1 cliff #define RMIXL_IO_DEV_SRIO_LE 0x1f000 /* SRIO_LE */
161 1.1.2.1 cliff #define RMIXL_IO_DEV_XAUI_1 0x20000 /* XAUI Interface_1 */
162 1.1.2.1 cliff /* when SGMII Interface_[4-7] are not used */
163 1.1.2.1 cliff #define RMIXL_IO_DEV_GMAC_4 0x20000 /* SGMII-Interface_4, Port SGMII4 */
164 1.1.2.1 cliff #define RMIXL_IO_DEV_GMAC_5 0x21000 /* SGMII-Interface_5, Port SGMII5 */
165 1.1.2.1 cliff #define RMIXL_IO_DEV_GMAC_6 0x22000 /* SGMII-Interface_6, Port SGMII6 */
166 1.1.2.1 cliff #define RMIXL_IO_DEV_GMAC_7 0x23000 /* SGMII-Interface_7, Port SGMII7 */
167 1.1.2.1 cliff #define RMIXL_IO_DEV_USB_A 0x24000 /* USB Interface Low Address Space */
168 1.1.2.1 cliff #define RMIXL_IO_DEV_USB_B 0x25000 /* USB Interface High Address Space */
169 1.1.2.1 cliff #endif /* MIPS64_XLS */
170 1.1.2.1 cliff
171 1.1.2.1 cliff
172 1.1.2.1 cliff /*
173 1.1.2.1 cliff * Programmable Interrupt Controller registers
174 1.1.2.1 cliff * the Programming Reference Manual table 10.4
175 1.1.2.1 cliff * lists "Reg ID" values not offsets;
176 1.1.2.1 cliff * assume offset = id * 4
177 1.1.2.1 cliff */
178 1.1.2.1 cliff #define _RMIXL_OFFSET(id) ((id) * 4)
179 1.1.2.1 cliff #define RMIXL_PIC_CONTROL _RMIXL_OFFSET(0x0)
180 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE _RMIXL_OFFSET(0x4)
181 1.1.2.1 cliff #define RMIXL_PIC_RMIXL_OFFSET _RMIXL_OFFSET(0x6)
182 1.1.2.1 cliff #define RMIXL_PIC_WATCHdOGMAXVALUE0 _RMIXL_OFFSET(0x8)
183 1.1.2.1 cliff #define RMIXL_PIC_WATCHDOGMAXVALUE1 _RMIXL_OFFSET(0x9)
184 1.1.2.1 cliff #define RMIXL_PIC_WATCHDOGMASK0 _RMIXL_OFFSET(0xa)
185 1.1.2.1 cliff #define RMIXL_PIC_WATCHDOGMASK1 _RMIXL_OFFSET(0xb)
186 1.1.2.1 cliff #define RMIXL_PIC_WATCHDOGHEARTBEAT0 _RMIXL_OFFSET(0xc)
187 1.1.2.1 cliff #define RMIXL_PIC_WATCHDOGHEARTBEAT1 _RMIXL_OFFSET(0xd)
188 1.1.2.1 cliff #define RMIXL_PIC_IRTENTRYC0(n) _RMIXL_OFFSET(0x40 + (n)) /* 0<=n<=31 */
189 1.1.2.1 cliff #define RMIXL_PIC_IRTENTRYC1(n) _RMIXL_OFFSET(0x80 + (n)) /* 0<=n<=31 */
190 1.1.2.1 cliff #define RMIXL_PIC_SYSTMRMAXVALC0(n) _RMIXL_OFFSET(0x100 + (n)) /* 0<=n<=7 */
191 1.1.2.1 cliff #define RMIXL_PIC_SYSTMRMAXVALC1(n) _RMIXL_OFFSET(0x110 + (n)) /* 0<=n<=7 */
192 1.1.2.1 cliff #define RMIXL_PIC_SYSTMRC0(n) _RMIXL_OFFSET(0x120 + (n)) /* 0<=n<=7 */
193 1.1.2.1 cliff #define RMIXL_PIC_SYSTMRC1(n) _RMIXL_OFFSET(0x130 + (n)) /* 0<=n<=7 */
194 1.1.2.1 cliff
195 1.1.2.1 cliff /*
196 1.1.2.1 cliff * RMIXL_PIC_CONTROL bits
197 1.1.2.1 cliff */
198 1.1.2.1 cliff #define RMIXL_PIC_CONTROL_WATCHDOG_ENB __BIT(0)
199 1.1.2.1 cliff #define RMIXL_PIC_CONTROL_GEN_NMI __BITS(2,1) /* do NMI after n WDog irpts */
200 1.1.2.1 cliff #define RMIXL_PIC_CONTROL_GEN_NMIn(n) (((n) << 1) & RMIXL_PIC_CONTROL_GEN_NMI)
201 1.1.2.1 cliff #define RMIXL_PIC_CONTROL_RESa __BITS(7,3)
202 1.1.2.1 cliff #define RMIXL_PIC_CONTROL_TIMER_ENB __BITS(15,8) /* per-Timer enable bits */
203 1.1.2.1 cliff #define RMIXL_PIC_CONTROL_TIMER_ENBn(n) ((1 << (n)) & RMIXL_PIC_CONTROL_TIMER_ENB)
204 1.1.2.1 cliff #define RMIXL_PIC_CONTROL_RESb __BITS(31,16)
205 1.1.2.1 cliff
206 1.1.2.1 cliff /*
207 1.1.2.1 cliff * RMIXL_PIC_IPIBASE bits
208 1.1.2.1 cliff */
209 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_VECTORNUM __BITS(5,0)
210 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_RESa __BIT(6) /* undocumented bit */
211 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_BCAST __BIT(7)
212 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_NMI __BIT(8)
213 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_ID __BITS(31,16)
214 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_ID_RESa __BITS(31,23)
215 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_ID_CPU __BITS(22,20) /* Physical CPU ID */
216 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_ID_RESb __BITS(19,18)
217 1.1.2.1 cliff #define RMIXL_PIC_IPIBASE_ID_THREAD __BITS(22,20) /* Thread ID */
218 1.1.2.1 cliff
219 1.1.2.1 cliff #endif /* _MIPS_RMI_RMIRMIXLEGS_H_ */
220 1.1.2.1 cliff
221