ixp425_npereg.h revision 1.1 1 1.1 scw /* $NetBSD: ixp425_npereg.h,v 1.1 2006/12/10 10:01:49 scw Exp $ */
2 1.1 scw
3 1.1 scw /*-
4 1.1 scw * Copyright (c) 2006 Sam Leffler, Errno Consulting
5 1.1 scw * All rights reserved.
6 1.1 scw *
7 1.1 scw * Redistribution and use in source and binary forms, with or without
8 1.1 scw * modification, are permitted provided that the following conditions
9 1.1 scw * are met:
10 1.1 scw * 1. Redistributions of source code must retain the above copyright
11 1.1 scw * notice, this list of conditions and the following disclaimer,
12 1.1 scw * without modification.
13 1.1 scw * 2. Redistributions in binary form must reproduce at minimum a disclaimer
14 1.1 scw * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
15 1.1 scw * redistribution must be conditioned upon including a substantially
16 1.1 scw * similar Disclaimer requirement for further binary redistribution.
17 1.1 scw *
18 1.1 scw * NO WARRANTY
19 1.1 scw * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 1.1 scw * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 1.1 scw * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
22 1.1 scw * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23 1.1 scw * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
24 1.1 scw * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 1.1 scw * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 1.1 scw * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
27 1.1 scw * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 1.1 scw * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
29 1.1 scw * THE POSSIBILITY OF SUCH DAMAGES.
30 1.1 scw *
31 1.1 scw * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npereg.h,v 1.1 2006/11/19 23:55:23 sam Exp $
32 1.1 scw */
33 1.1 scw
34 1.1 scw /*-
35 1.1 scw * Copyright (c) 2001-2005, Intel Corporation.
36 1.1 scw * All rights reserved.
37 1.1 scw *
38 1.1 scw * Redistribution and use in source and binary forms, with or without
39 1.1 scw * modification, are permitted provided that the following conditions
40 1.1 scw * are met:
41 1.1 scw * 1. Redistributions of source code must retain the above copyright
42 1.1 scw * notice, this list of conditions and the following disclaimer.
43 1.1 scw * 2. Redistributions in binary form must reproduce the above copyright
44 1.1 scw * notice, this list of conditions and the following disclaimer in the
45 1.1 scw * documentation and/or other materials provided with the distribution.
46 1.1 scw * 3. Neither the name of the Intel Corporation nor the names of its contributors
47 1.1 scw * may be used to endorse or promote products derived from this software
48 1.1 scw * without specific prior written permission.
49 1.1 scw *
50 1.1 scw *
51 1.1 scw * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
52 1.1 scw * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
53 1.1 scw * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
54 1.1 scw * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
55 1.1 scw * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
56 1.1 scw * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
57 1.1 scw * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
58 1.1 scw * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
59 1.1 scw * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
60 1.1 scw * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
61 1.1 scw * SUCH DAMAGE.
62 1.1 scw */
63 1.1 scw
64 1.1 scw #ifndef _IXP425_NPEREG_H_
65 1.1 scw #define _IXP425_NPEREG_H_
66 1.1 scw
67 1.1 scw /* signature found as 1st word in a microcode image library */
68 1.1 scw #define IX_NPEDL_IMAGEMGR_SIGNATURE 0xDEADBEEF
69 1.1 scw /* marks end of header in a microcode image library */
70 1.1 scw #define IX_NPEDL_IMAGEMGR_END_OF_HEADER 0xFFFFFFFF
71 1.1 scw
72 1.1 scw /*
73 1.1 scw * Intel (R) IXP400 Software NPE Image ID Definition
74 1.1 scw *
75 1.1 scw * Definition of NPE Image ID to be passed to ixNpeDlNpeInitAndStart()
76 1.1 scw * as input of type uint32_t which has the following fields format:
77 1.1 scw *
78 1.1 scw * Field [Bit Location]
79 1.1 scw * -----------------------------------
80 1.1 scw * Device ID [31 - 28]
81 1.1 scw * NPE ID [27 - 24]
82 1.1 scw * NPE Functionality ID [23 - 16]
83 1.1 scw * Major Release Number [15 - 8]
84 1.1 scw * Minor Release Number [7 - 0]
85 1.1 scw */
86 1.1 scw #define IX_NPEDL_NPEID_FROM_IMAGEID_GET(imageId) \
87 1.1 scw (((imageId) >> 24) & 0xf)
88 1.1 scw #define IX_NPEDL_DEVICEID_FROM_IMAGEID_GET(imageId) \
89 1.1 scw (((imageId) >> 28) & 0xf)
90 1.1 scw #define IX_NPEDL_FUNCTIONID_FROM_IMAGEID_GET(imageId) \
91 1.1 scw (((imageId) >> 16) & 0xff)
92 1.1 scw #define IX_NPEDL_MAJOR_FROM_IMAGEID_GET(imageId) \
93 1.1 scw (((imageId) >> 8) & 0xff)
94 1.1 scw #define IX_NPEDL_MINOR_FROM_IMAGEID_GET(imageId) \
95 1.1 scw (((imageId) >> 0) & 0xff)
96 1.1 scw
97 1.1 scw /*
98 1.1 scw * Instruction and Data Memory Size (in words) for each NPE
99 1.1 scw */
100 1.1 scw #ifndef __ixp46X
101 1.1 scw #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEA 4096
102 1.1 scw #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEB 2048
103 1.1 scw #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEC 2048
104 1.1 scw
105 1.1 scw #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEA 2048
106 1.1 scw #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEB 2048
107 1.1 scw #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEC 2048
108 1.1 scw #else
109 1.1 scw #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEA 4096
110 1.1 scw #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEB 4096
111 1.1 scw #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEC 4096
112 1.1 scw
113 1.1 scw #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEA 4096
114 1.1 scw #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEB 4096
115 1.1 scw #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEC 4096
116 1.1 scw #endif
117 1.1 scw
118 1.1 scw /* BAR offsets */
119 1.1 scw #define IX_NPEDL_REG_OFFSET_EXAD 0x00000000 /* Execution Address */
120 1.1 scw #define IX_NPEDL_REG_OFFSET_EXDATA 0x00000004 /* Execution Data */
121 1.1 scw #define IX_NPEDL_REG_OFFSET_EXCTL 0x00000008 /* Execution Control */
122 1.1 scw #define IX_NPEDL_REG_OFFSET_EXCT 0x0000000C /* Execution Count */
123 1.1 scw #define IX_NPEDL_REG_OFFSET_AP0 0x00000010 /* Action Point 0 */
124 1.1 scw #define IX_NPEDL_REG_OFFSET_AP1 0x00000014 /* Action Point 1 */
125 1.1 scw #define IX_NPEDL_REG_OFFSET_AP2 0x00000018 /* Action Point 2 */
126 1.1 scw #define IX_NPEDL_REG_OFFSET_AP3 0x0000001C /* Action Point 3 */
127 1.1 scw #define IX_NPEDL_REG_OFFSET_WFIFO 0x00000020 /* Watchpoint FIFO */
128 1.1 scw #define IX_NPEDL_REG_OFFSET_WC 0x00000024 /* Watch Count */
129 1.1 scw #define IX_NPEDL_REG_OFFSET_PROFCT 0x00000028 /* Profile Count */
130 1.1 scw #define IX_NPEDL_REG_OFFSET_STAT 0x0000002C /* Messaging Status */
131 1.1 scw #define IX_NPEDL_REG_OFFSET_CTL 0x00000030 /* Messaging Control */
132 1.1 scw #define IX_NPEDL_REG_OFFSET_MBST 0x00000034 /* Mailbox Status */
133 1.1 scw #define IX_NPEDL_REG_OFFSET_FIFO 0x00000038 /* Message FIFO */
134 1.1 scw
135 1.1 scw /*
136 1.1 scw * Reset value for Mailbox (MBST) register
137 1.1 scw * NOTE that if used, it should be complemented with an NPE intruction
138 1.1 scw * to clear the Mailbox at the NPE side as well
139 1.1 scw */
140 1.1 scw #define IX_NPEDL_REG_RESET_MBST 0x0000F0F0
141 1.1 scw
142 1.1 scw #define IX_NPEDL_MASK_WFIFO_VALID 0x80000000 /* VALID bit */
143 1.1 scw #define IX_NPEDL_MASK_STAT_OFNE 0x00010000 /* OFNE bit */
144 1.1 scw #define IX_NPEDL_MASK_STAT_IFNE 0x00080000 /* IFNE bit */
145 1.1 scw
146 1.1 scw /*
147 1.1 scw * EXCTL (Execution Control) Register commands
148 1.1 scw */
149 1.1 scw #define IX_NPEDL_EXCTL_CMD_NPE_STEP 0x01 /* Step 1 instruction */
150 1.1 scw #define IX_NPEDL_EXCTL_CMD_NPE_START 0x02 /* Start execution */
151 1.1 scw #define IX_NPEDL_EXCTL_CMD_NPE_STOP 0x03 /* Stop execution */
152 1.1 scw #define IX_NPEDL_EXCTL_CMD_NPE_CLR_PIPE 0x04 /* Clear ins pipeline */
153 1.1 scw
154 1.1 scw /*
155 1.1 scw * Read/write operations use address in EXAD and data in EXDATA.
156 1.1 scw */
157 1.1 scw #define IX_NPEDL_EXCTL_CMD_RD_INS_MEM 0x10 /* Read ins memory */
158 1.1 scw #define IX_NPEDL_EXCTL_CMD_WR_INS_MEM 0x11 /* Write ins memory */
159 1.1 scw #define IX_NPEDL_EXCTL_CMD_RD_DATA_MEM 0x12 /* Read data memory */
160 1.1 scw #define IX_NPEDL_EXCTL_CMD_WR_DATA_MEM 0x13 /* Write data memory */
161 1.1 scw #define IX_NPEDL_EXCTL_CMD_RD_ECS_REG 0x14 /* Read ECS register */
162 1.1 scw #define IX_NPEDL_EXCTL_CMD_WR_ECS_REG 0x15 /* Write ECS register */
163 1.1 scw
164 1.1 scw #define IX_NPEDL_EXCTL_CMD_CLR_PROFILE_CNT 0x0C /* Clear Profile Count register */
165 1.1 scw
166 1.1 scw
167 1.1 scw /*
168 1.1 scw * EXCTL (Execution Control) Register status bit masks
169 1.1 scw */
170 1.1 scw #define IX_NPEDL_EXCTL_STATUS_RUN 0x80000000
171 1.1 scw #define IX_NPEDL_EXCTL_STATUS_STOP 0x40000000
172 1.1 scw #define IX_NPEDL_EXCTL_STATUS_CLEAR 0x20000000
173 1.1 scw #define IX_NPEDL_EXCTL_STATUS_ECS_K 0x00800000 /* pipeline Klean */
174 1.1 scw
175 1.1 scw /*
176 1.1 scw * Executing Context Stack (ECS) level registers
177 1.1 scw */
178 1.1 scw #define IX_NPEDL_ECS_BG_CTXT_REG_0 0x00 /* reg 0 @ bg ctx */
179 1.1 scw #define IX_NPEDL_ECS_BG_CTXT_REG_1 0x01 /* reg 1 @ bg ctx */
180 1.1 scw #define IX_NPEDL_ECS_BG_CTXT_REG_2 0x02 /* reg 2 @ bg ctx */
181 1.1 scw
182 1.1 scw #define IX_NPEDL_ECS_PRI_1_CTXT_REG_0 0x04 /* reg 0 @ pri 1 ctx */
183 1.1 scw #define IX_NPEDL_ECS_PRI_1_CTXT_REG_1 0x05 /* reg 1 @ pri 1 ctx */
184 1.1 scw #define IX_NPEDL_ECS_PRI_1_CTXT_REG_2 0x06 /* reg 2 @ pri 1 ctx */
185 1.1 scw
186 1.1 scw #define IX_NPEDL_ECS_PRI_2_CTXT_REG_0 0x08 /* reg 0 @ pri 2 ctx */
187 1.1 scw #define IX_NPEDL_ECS_PRI_2_CTXT_REG_1 0x09 /* reg 1 @ pri 2 ctx */
188 1.1 scw #define IX_NPEDL_ECS_PRI_2_CTXT_REG_2 0x0A /* reg 2 @ pri 2 ctx */
189 1.1 scw
190 1.1 scw #define IX_NPEDL_ECS_DBG_CTXT_REG_0 0x0C /* reg 0 @ debug ctx */
191 1.1 scw #define IX_NPEDL_ECS_DBG_CTXT_REG_1 0x0D /* reg 1 @ debug ctx */
192 1.1 scw #define IX_NPEDL_ECS_DBG_CTXT_REG_2 0x0E /* reg 2 @ debug ctx */
193 1.1 scw
194 1.1 scw #define IX_NPEDL_ECS_INSTRUCT_REG 0x11 /* Instruction reg */
195 1.1 scw
196 1.1 scw /*
197 1.1 scw * Execution Access register reset values
198 1.1 scw */
199 1.1 scw #define IX_NPEDL_ECS_BG_CTXT_REG_0_RESET 0xA0000000
200 1.1 scw #define IX_NPEDL_ECS_BG_CTXT_REG_1_RESET 0x01000000
201 1.1 scw #define IX_NPEDL_ECS_BG_CTXT_REG_2_RESET 0x00008000
202 1.1 scw #define IX_NPEDL_ECS_PRI_1_CTXT_REG_0_RESET 0x20000080
203 1.1 scw #define IX_NPEDL_ECS_PRI_1_CTXT_REG_1_RESET 0x01000000
204 1.1 scw #define IX_NPEDL_ECS_PRI_1_CTXT_REG_2_RESET 0x00008000
205 1.1 scw #define IX_NPEDL_ECS_PRI_2_CTXT_REG_0_RESET 0x20000080
206 1.1 scw #define IX_NPEDL_ECS_PRI_2_CTXT_REG_1_RESET 0x01000000
207 1.1 scw #define IX_NPEDL_ECS_PRI_2_CTXT_REG_2_RESET 0x00008000
208 1.1 scw #define IX_NPEDL_ECS_DBG_CTXT_REG_0_RESET 0x20000000
209 1.1 scw #define IX_NPEDL_ECS_DBG_CTXT_REG_1_RESET 0x00000000
210 1.1 scw #define IX_NPEDL_ECS_DBG_CTXT_REG_2_RESET 0x001E0000
211 1.1 scw #define IX_NPEDL_ECS_INSTRUCT_REG_RESET 0x1003C00F
212 1.1 scw
213 1.1 scw /*
214 1.1 scw * Masks used to read/write particular bits in Execution Access registers
215 1.1 scw */
216 1.1 scw
217 1.1 scw #define IX_NPEDL_MASK_ECS_REG_0_ACTIVE 0x80000000 /* Active bit */
218 1.1 scw #define IX_NPEDL_MASK_ECS_REG_0_NEXTPC 0x1FFF0000 /* NextPC bits */
219 1.1 scw #define IX_NPEDL_MASK_ECS_REG_0_LDUR 0x00000700 /* LDUR bits */
220 1.1 scw
221 1.1 scw #define IX_NPEDL_MASK_ECS_REG_1_CCTXT 0x000F0000 /* NextPC bits */
222 1.1 scw #define IX_NPEDL_MASK_ECS_REG_1_SELCTXT 0x0000000F
223 1.1 scw
224 1.1 scw #define IX_NPEDL_MASK_ECS_DBG_REG_2_IF 0x00100000 /* IF bit */
225 1.1 scw #define IX_NPEDL_MASK_ECS_DBG_REG_2_IE 0x00080000 /* IE bit */
226 1.1 scw
227 1.1 scw
228 1.1 scw /*
229 1.1 scw * Bit-Offsets from LSB of particular bit-fields in Execution Access registers.
230 1.1 scw */
231 1.1 scw
232 1.1 scw #define IX_NPEDL_OFFSET_ECS_REG_0_NEXTPC 16
233 1.1 scw #define IX_NPEDL_OFFSET_ECS_REG_0_LDUR 8
234 1.1 scw
235 1.1 scw #define IX_NPEDL_OFFSET_ECS_REG_1_CCTXT 16
236 1.1 scw #define IX_NPEDL_OFFSET_ECS_REG_1_SELCTXT 0
237 1.1 scw
238 1.1 scw /*
239 1.1 scw * NPE core & co-processor instruction templates to load into NPE Instruction
240 1.1 scw * Register, for read/write of NPE register file registers.
241 1.1 scw */
242 1.1 scw
243 1.1 scw /*
244 1.1 scw * Read an 8-bit NPE internal logical register
245 1.1 scw * and return the value in the EXDATA register (aligned to MSB).
246 1.1 scw * NPE Assembler instruction: "mov8 d0, d0 &&& DBG_WrExec"
247 1.1 scw */
248 1.1 scw #define IX_NPEDL_INSTR_RD_REG_BYTE 0x0FC00000
249 1.1 scw
250 1.1 scw /*
251 1.1 scw * Read a 16-bit NPE internal logical register
252 1.1 scw * and return the value in the EXDATA register (aligned to MSB).
253 1.1 scw * NPE Assembler instruction: "mov16 d0, d0 &&& DBG_WrExec"
254 1.1 scw */
255 1.1 scw #define IX_NPEDL_INSTR_RD_REG_SHORT 0x0FC08010
256 1.1 scw
257 1.1 scw /*
258 1.1 scw * Read a 16-bit NPE internal logical register
259 1.1 scw * and return the value in the EXDATA register.
260 1.1 scw * NPE Assembler instruction: "mov32 d0, d0 &&& DBG_WrExec"
261 1.1 scw */
262 1.1 scw #define IX_NPEDL_INSTR_RD_REG_WORD 0x0FC08210
263 1.1 scw
264 1.1 scw /*
265 1.1 scw * Write an 8-bit NPE internal logical register.
266 1.1 scw * NPE Assembler instruction: "mov8 d0, #0"
267 1.1 scw */
268 1.1 scw #define IX_NPEDL_INSTR_WR_REG_BYTE 0x00004000
269 1.1 scw
270 1.1 scw /*
271 1.1 scw * Write a 16-bit NPE internal logical register.
272 1.1 scw * NPE Assembler instruction: "mov16 d0, #0"
273 1.1 scw */
274 1.1 scw #define IX_NPEDL_INSTR_WR_REG_SHORT 0x0000C000
275 1.1 scw
276 1.1 scw /*
277 1.1 scw * Write a 16-bit NPE internal logical register.
278 1.1 scw * NPE Assembler instruction: "cprd32 d0 &&& DBG_RdInFIFO"
279 1.1 scw */
280 1.1 scw #define IX_NPEDL_INSTR_RD_FIFO 0x0F888220
281 1.1 scw
282 1.1 scw /*
283 1.1 scw * Reset Mailbox (MBST) register
284 1.1 scw * NPE Assembler instruction: "mov32 d0, d0 &&& DBG_ClearM"
285 1.1 scw */
286 1.1 scw #define IX_NPEDL_INSTR_RESET_MBOX 0x0FAC8210
287 1.1 scw
288 1.1 scw
289 1.1 scw /*
290 1.1 scw * Bit-offsets from LSB, of particular bit-fields in an NPE instruction
291 1.1 scw */
292 1.1 scw #define IX_NPEDL_OFFSET_INSTR_SRC 4 /* src operand */
293 1.1 scw #define IX_NPEDL_OFFSET_INSTR_DEST 9 /* dest operand */
294 1.1 scw #define IX_NPEDL_OFFSET_INSTR_COPROC 18 /* coprocessor ins */
295 1.1 scw
296 1.1 scw /*
297 1.1 scw * Masks used to read/write particular bits of an NPE Instruction
298 1.1 scw */
299 1.1 scw
300 1.1 scw /**
301 1.1 scw * Mask the bits of 16-bit data value (least-sig 5 bits) to be used in
302 1.1 scw * SRC field of immediate-mode NPE instruction
303 1.1 scw */
304 1.1 scw #define IX_NPEDL_MASK_IMMED_INSTR_SRC_DATA 0x1F
305 1.1 scw
306 1.1 scw /**
307 1.1 scw * Mask the bits of 16-bit data value (most-sig 11 bits) to be used in
308 1.1 scw * COPROC field of immediate-mode NPE instruction
309 1.1 scw */
310 1.1 scw #define IX_NPEDL_MASK_IMMED_INSTR_COPROC_DATA 0xFFE0
311 1.1 scw
312 1.1 scw /**
313 1.1 scw * LSB offset of the bit-field of 16-bit data value (most-sig 11 bits)
314 1.1 scw * to be used in COPROC field of immediate-mode NPE instruction
315 1.1 scw */
316 1.1 scw #define IX_NPEDL_OFFSET_IMMED_INSTR_COPROC_DATA 5
317 1.1 scw
318 1.1 scw /**
319 1.1 scw * Number of left-shifts required to align most-sig 11 bits of 16-bit
320 1.1 scw * data value into COPROC field of immediate-mode NPE instruction
321 1.1 scw */
322 1.1 scw #define IX_NPEDL_DISPLACE_IMMED_INSTR_COPROC_DATA \
323 1.1 scw (IX_NPEDL_OFFSET_INSTR_COPROC - IX_NPEDL_OFFSET_IMMED_INSTR_COPROC_DATA)
324 1.1 scw
325 1.1 scw /**
326 1.1 scw * LDUR value used with immediate-mode NPE Instructions by the NpeDl
327 1.1 scw * for writing to NPE internal logical registers
328 1.1 scw */
329 1.1 scw #define IX_NPEDL_WR_INSTR_LDUR 1
330 1.1 scw
331 1.1 scw /**
332 1.1 scw * LDUR value used with NON-immediate-mode NPE Instructions by the NpeDl
333 1.1 scw * for reading from NPE internal logical registers
334 1.1 scw */
335 1.1 scw #define IX_NPEDL_RD_INSTR_LDUR 0
336 1.1 scw
337 1.1 scw
338 1.1 scw /**
339 1.1 scw * NPE internal Context Store registers.
340 1.1 scw */
341 1.1 scw typedef enum
342 1.1 scw {
343 1.1 scw IX_NPEDL_CTXT_REG_STEVT = 0, /**< identifies STEVT */
344 1.1 scw IX_NPEDL_CTXT_REG_STARTPC, /**< identifies STARTPC */
345 1.1 scw IX_NPEDL_CTXT_REG_REGMAP, /**< identifies REGMAP */
346 1.1 scw IX_NPEDL_CTXT_REG_CINDEX, /**< identifies CINDEX */
347 1.1 scw IX_NPEDL_CTXT_REG_MAX /**< Total number of Context Store registers */
348 1.1 scw } IxNpeDlCtxtRegNum;
349 1.1 scw
350 1.1 scw
351 1.1 scw /*
352 1.1 scw * NPE Context Store register logical addresses
353 1.1 scw */
354 1.1 scw #define IX_NPEDL_CTXT_REG_ADDR_STEVT 0x0000001B
355 1.1 scw #define IX_NPEDL_CTXT_REG_ADDR_STARTPC 0x0000001C
356 1.1 scw #define IX_NPEDL_CTXT_REG_ADDR_REGMAP 0x0000001E
357 1.1 scw #define IX_NPEDL_CTXT_REG_ADDR_CINDEX 0x0000001F
358 1.1 scw
359 1.1 scw /*
360 1.1 scw * NPE Context Store register reset values
361 1.1 scw */
362 1.1 scw
363 1.1 scw /**
364 1.1 scw * Reset value of STEVT NPE internal Context Store register
365 1.1 scw * (STEVT = off, 0x80)
366 1.1 scw */
367 1.1 scw #define IX_NPEDL_CTXT_REG_RESET_STEVT 0x80
368 1.1 scw
369 1.1 scw /**
370 1.1 scw * Reset value of STARTPC NPE internal Context Store register
371 1.1 scw * (STARTPC = 0x0000)
372 1.1 scw */
373 1.1 scw #define IX_NPEDL_CTXT_REG_RESET_STARTPC 0x0000
374 1.1 scw
375 1.1 scw /**
376 1.1 scw * Reset value of REGMAP NPE internal Context Store register
377 1.1 scw * (REGMAP = d0->p0, d8->p2, d16->p4)
378 1.1 scw */
379 1.1 scw #define IX_NPEDL_CTXT_REG_RESET_REGMAP 0x0820
380 1.1 scw
381 1.1 scw /**
382 1.1 scw * Reset value of CINDEX NPE internal Context Store register
383 1.1 scw * (CINDEX = 0)
384 1.1 scw */
385 1.1 scw #define IX_NPEDL_CTXT_REG_RESET_CINDEX 0x00
386 1.1 scw
387 1.1 scw
388 1.1 scw /*
389 1.1 scw * Numeric range of context levels available on an NPE
390 1.1 scw */
391 1.1 scw #define IX_NPEDL_CTXT_NUM_MIN 0
392 1.1 scw #define IX_NPEDL_CTXT_NUM_MAX 15
393 1.1 scw
394 1.1 scw
395 1.1 scw /**
396 1.1 scw * Number of Physical registers currently supported
397 1.1 scw * Initial NPE implementations will have a 32-word register file.
398 1.1 scw * Later implementations may have a 64-word register file.
399 1.1 scw */
400 1.1 scw #define IX_NPEDL_TOTAL_NUM_PHYS_REG 32
401 1.1 scw
402 1.1 scw /**
403 1.1 scw * LSB-offset of Regmap number in Physical NPE register address, used
404 1.1 scw * for Physical To Logical register address mapping in the NPE
405 1.1 scw */
406 1.1 scw #define IX_NPEDL_OFFSET_PHYS_REG_ADDR_REGMAP 1
407 1.1 scw
408 1.1 scw /**
409 1.1 scw * Mask to extract a logical NPE register address from a physical
410 1.1 scw * register address, used for Physical To Logical address mapping
411 1.1 scw */
412 1.1 scw #define IX_NPEDL_MASK_PHYS_REG_ADDR_LOGICAL_ADDR 0x1
413 1.1 scw
414 1.1 scw /*
415 1.1 scw * NPE Message/Mailbox interface.
416 1.1 scw */
417 1.1 scw #define IX_NPESTAT IX_NPEDL_REG_OFFSET_STAT /* status register */
418 1.1 scw #define IX_NPECTL IX_NPEDL_REG_OFFSET_CTL /* control register */
419 1.1 scw #define IX_NPEFIFO IX_NPEDL_REG_OFFSET_FIFO /* FIFO register */
420 1.1 scw
421 1.1 scw /* control register */
422 1.1 scw #define IX_NPECTL_OFE 0x00010000 /* output fifo enable */
423 1.1 scw #define IX_NPECTL_IFE 0x00020000 /* input fifo enable */
424 1.1 scw #define IX_NPECTL_OFWE 0x01000000 /* output fifo write enable */
425 1.1 scw #define IX_NPECTL_IFWE 0x02000000 /* input fifo write enable */
426 1.1 scw
427 1.1 scw /* status register */
428 1.1 scw #define IX_NPESTAT_OFNE 0x00010000 /* output fifo not empty */
429 1.1 scw #define IX_NPESTAT_IFNF 0x00020000 /* input fifo not full */
430 1.1 scw #define IX_NPESTAT_OFNF 0x00040000 /* output fifo not full */
431 1.1 scw #define IX_NPESTAT_IFNE 0x00080000 /* input fifo not empty */
432 1.1 scw #define IX_NPESTAT_MBINT 0x00100000 /* Mailbox interrupt */
433 1.1 scw #define IX_NPESTAT_IFINT 0x00200000 /* input fifo interrupt */
434 1.1 scw #define IX_NPESTAT_OFINT 0x00400000 /* output fifo interrupt */
435 1.1 scw #define IX_NPESTAT_WFINT 0x00800000 /* watch fifo interrupt */
436 1.1 scw #endif /* _IXP425_NPEREG_H_ */
437