2 * @file IxNpeDlNpeMgrEcRegisters_p.h
4 * @author Intel Corporation
5 * @date 14 December 2001
9 * IXP400 SW Release version 2.0
11 * -- Copyright Notice --
14 * Copyright 2001-2005, Intel Corporation.
15 * All rights reserved.
18 * Redistribution and use in source and binary forms, with or without
19 * modification, are permitted provided that the following conditions
21 * 1. Redistributions of source code must retain the above copyright
22 * notice, this list of conditions and the following disclaimer.
23 * 2. Redistributions in binary form must reproduce the above copyright
24 * notice, this list of conditions and the following disclaimer in the
25 * documentation and/or other materials provided with the distribution.
26 * 3. Neither the name of the Intel Corporation nor the names of its contributors
27 * may be used to endorse or promote products derived from this software
28 * without specific prior written permission.
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
32 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
33 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
34 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
35 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
39 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
40 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
44 * -- End of Copyright Notice --
48 #ifndef IXNPEDLNPEMGRECREGISTERS_P_H
49 #define IXNPEDLNPEMGRECREGISTERS_P_H
54 * Base Memory Addresses for accessing NPE registers
57 #define IX_NPEDL_NPE_BASE (IX_OSAL_IXP400_PERIPHERAL_PHYS_BASE)
59 #define IX_NPEDL_NPEA_OFFSET (0x6000) /**< NPE-A register base offset */
60 #define IX_NPEDL_NPEB_OFFSET (0x7000) /**< NPE-B register base offset */
61 #define IX_NPEDL_NPEC_OFFSET (0x8000) /**< NPE-C register base offset */
64 * @def IX_NPEDL_NPEBASEADDRESS_NPEA
65 * @brief Base Memory Address of NPE-A Configuration Bus registers
67 #define IX_NPEDL_NPEBASEADDRESS_NPEA (IX_NPEDL_NPE_BASE + IX_NPEDL_NPEA_OFFSET)
70 * @def IX_NPEDL_NPEBASEADDRESS_NPEB
71 * @brief Base Memory Address of NPE-B Configuration Bus registers
73 #define IX_NPEDL_NPEBASEADDRESS_NPEB (IX_NPEDL_NPE_BASE + IX_NPEDL_NPEB_OFFSET)
76 * @def IX_NPEDL_NPEBASEADDRESS_NPEC
77 * @brief Base Memory Address of NPE-C Configuration Bus registers
79 #define IX_NPEDL_NPEBASEADDRESS_NPEC (IX_NPEDL_NPE_BASE + IX_NPEDL_NPEC_OFFSET)
83 * Instruction Memory Size (in words) for each NPE
87 * @def IX_NPEDL_INS_MEMSIZE_WORDS_NPEA
88 * @brief Size (in words) of NPE-A Instruction Memory
90 #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEA 4096
93 * @def IX_NPEDL_INS_MEMSIZE_WORDS_NPEB
94 * @brief Size (in words) of NPE-B Instruction Memory
96 #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEB 2048
99 * @def IX_NPEDL_INS_MEMSIZE_WORDS_NPEC
100 * @brief Size (in words) of NPE-B Instruction Memory
102 #define IX_NPEDL_INS_MEMSIZE_WORDS_NPEC 2048
106 * Data Memory Size (in words) for each NPE
110 * @def IX_NPEDL_DATA_MEMSIZE_WORDS_NPEA
111 * @brief Size (in words) of NPE-A Data Memory
113 #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEA 2048
116 * @def IX_NPEDL_DATA_MEMSIZE_WORDS_NPEB
117 * @brief Size (in words) of NPE-B Data Memory
119 #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEB 2048
122 * @def IX_NPEDL_DATA_MEMSIZE_WORDS_NPEC
123 * @brief Size (in words) of NPE-C Data Memory
125 #define IX_NPEDL_DATA_MEMSIZE_WORDS_NPEC 2048
129 * Configuration Bus Register offsets (in bytes) from NPE Base Address
133 * @def IX_NPEDL_REG_OFFSET_EXAD
134 * @brief Offset (in bytes) of EXAD (Execution Address) register from NPE Base
137 #define IX_NPEDL_REG_OFFSET_EXAD 0x00000000
140 * @def IX_NPEDL_REG_OFFSET_EXDATA
141 * @brief Offset (in bytes) of EXDATA (Execution Data) register from NPE Base
144 #define IX_NPEDL_REG_OFFSET_EXDATA 0x00000004
147 * @def IX_NPEDL_REG_OFFSET_EXCTL
148 * @brief Offset (in bytes) of EXCTL (Execution Control) register from NPE Base
151 #define IX_NPEDL_REG_OFFSET_EXCTL 0x00000008
154 * @def IX_NPEDL_REG_OFFSET_EXCT
155 * @brief Offset (in bytes) of EXCT (Execution Count) register from NPE Base
158 #define IX_NPEDL_REG_OFFSET_EXCT 0x0000000C
161 * @def IX_NPEDL_REG_OFFSET_AP0
162 * @brief Offset (in bytes) of AP0 (Action Point 0) register from NPE Base
165 #define IX_NPEDL_REG_OFFSET_AP0 0x00000010
168 * @def IX_NPEDL_REG_OFFSET_AP1
169 * @brief Offset (in bytes) of AP1 (Action Point 1) register from NPE Base
172 #define IX_NPEDL_REG_OFFSET_AP1 0x00000014
175 * @def IX_NPEDL_REG_OFFSET_AP2
176 * @brief Offset (in bytes) of AP2 (Action Point 2) register from NPE Base
179 #define IX_NPEDL_REG_OFFSET_AP2 0x00000018
182 * @def IX_NPEDL_REG_OFFSET_AP3
183 * @brief Offset (in bytes) of AP3 (Action Point 3) register from NPE Base
186 #define IX_NPEDL_REG_OFFSET_AP3 0x0000001C
189 * @def IX_NPEDL_REG_OFFSET_WFIFO
190 * @brief Offset (in bytes) of WFIFO (Watchpoint FIFO) register from NPE Base
193 #define IX_NPEDL_REG_OFFSET_WFIFO 0x00000020
196 * @def IX_NPEDL_REG_OFFSET_WC
197 * @brief Offset (in bytes) of WC (Watch Count) register from NPE Base
200 #define IX_NPEDL_REG_OFFSET_WC 0x00000024
203 * @def IX_NPEDL_REG_OFFSET_PROFCT
204 * @brief Offset (in bytes) of PROFCT (Profile Count) register from NPE Base
207 #define IX_NPEDL_REG_OFFSET_PROFCT 0x00000028
210 * @def IX_NPEDL_REG_OFFSET_STAT
211 * @brief Offset (in bytes) of STAT (Messaging Status) register from NPE Base
214 #define IX_NPEDL_REG_OFFSET_STAT 0x0000002C
217 * @def IX_NPEDL_REG_OFFSET_CTL
218 * @brief Offset (in bytes) of CTL (Messaging Control) register from NPE Base
221 #define IX_NPEDL_REG_OFFSET_CTL 0x00000030
224 * @def IX_NPEDL_REG_OFFSET_MBST
225 * @brief Offset (in bytes) of MBST (Mailbox Status) register from NPE Base
228 #define IX_NPEDL_REG_OFFSET_MBST 0x00000034
231 * @def IX_NPEDL_REG_OFFSET_FIFO
232 * @brief Offset (in bytes) of FIFO (messaging in/out FIFO) register from NPE
235 #define IX_NPEDL_REG_OFFSET_FIFO 0x00000038
239 * Non-zero reset values for the Configuration Bus registers
243 * @def IX_NPEDL_REG_RESET_FIFO
244 * @brief Reset value for Mailbox (MBST) register
245 * NOTE that if used, it should be complemented with an NPE intruction
246 * to clear the Mailbox at the NPE side as well
248 #define IX_NPEDL_REG_RESET_MBST 0x0000F0F0
252 * Bit-masks used to read/write particular bits in Configuration Bus registers
256 * @def IX_NPEDL_MASK_WFIFO_VALID
257 * @brief Masks the VALID bit in the WFIFO register
259 #define IX_NPEDL_MASK_WFIFO_VALID 0x80000000
262 * @def IX_NPEDL_MASK_STAT_OFNE
263 * @brief Masks the OFNE bit in the STAT register
265 #define IX_NPEDL_MASK_STAT_OFNE 0x00010000
268 * @def IX_NPEDL_MASK_STAT_IFNE
269 * @brief Masks the IFNE bit in the STAT register
271 #define IX_NPEDL_MASK_STAT_IFNE 0x00080000
275 * EXCTL (Execution Control) Register commands
279 * @def IX_NPEDL_EXCTL_CMD_NPE_STEP
280 * @brief EXCTL Command to Step execution of an NPE Instruction
283 #define IX_NPEDL_EXCTL_CMD_NPE_STEP 0x01
286 * @def IX_NPEDL_EXCTL_CMD_NPE_START
287 * @brief EXCTL Command to Start NPE execution
289 #define IX_NPEDL_EXCTL_CMD_NPE_START 0x02
292 * @def IX_NPEDL_EXCTL_CMD_NPE_STOP
293 * @brief EXCTL Command to Stop NPE execution
295 #define IX_NPEDL_EXCTL_CMD_NPE_STOP 0x03
298 * @def IX_NPEDL_EXCTL_CMD_NPE_CLR_PIPE
299 * @brief EXCTL Command to Clear NPE instruction pipeline
301 #define IX_NPEDL_EXCTL_CMD_NPE_CLR_PIPE 0x04
304 * @def IX_NPEDL_EXCTL_CMD_RD_INS_MEM
305 * @brief EXCTL Command to read NPE instruction memory at address in EXAD
306 * register and return value in EXDATA register
308 #define IX_NPEDL_EXCTL_CMD_RD_INS_MEM 0x10
311 * @def IX_NPEDL_EXCTL_CMD_WR_INS_MEM
312 * @brief EXCTL Command to write NPE instruction memory at address in EXAD
313 * register with data in EXDATA register
315 #define IX_NPEDL_EXCTL_CMD_WR_INS_MEM 0x11
318 * @def IX_NPEDL_EXCTL_CMD_RD_DATA_MEM
319 * @brief EXCTL Command to read NPE data memory at address in EXAD
320 * register and return value in EXDATA register
322 #define IX_NPEDL_EXCTL_CMD_RD_DATA_MEM 0x12
325 * @def IX_NPEDL_EXCTL_CMD_WR_DATA_MEM
326 * @brief EXCTL Command to write NPE data memory at address in EXAD
327 * register with data in EXDATA register
329 #define IX_NPEDL_EXCTL_CMD_WR_DATA_MEM 0x13
332 * @def IX_NPEDL_EXCTL_CMD_RD_ECS_REG
333 * @brief EXCTL Command to read Execution Access register at address in EXAD
334 * register and return value in EXDATA register
336 #define IX_NPEDL_EXCTL_CMD_RD_ECS_REG 0x14
339 * @def IX_NPEDL_EXCTL_CMD_WR_ECS_REG
340 * @brief EXCTL Command to write Execution Access register at address in EXAD
341 * register with data in EXDATA register
343 #define IX_NPEDL_EXCTL_CMD_WR_ECS_REG 0x15
346 * @def IX_NPEDL_EXCTL_CMD_CLR_PROFILE_CNT
347 * @brief EXCTL Command to clear Profile Count register
349 #define IX_NPEDL_EXCTL_CMD_CLR_PROFILE_CNT 0x0C
353 * EXCTL (Execution Control) Register status bit masks
357 * @def IX_NPEDL_EXCTL_STATUS_RUN
358 * @brief Masks the RUN status bit in the EXCTL register
360 #define IX_NPEDL_EXCTL_STATUS_RUN 0x80000000
363 * @def IX_NPEDL_EXCTL_STATUS_STOP
364 * @brief Masks the STOP status bit in the EXCTL register
366 #define IX_NPEDL_EXCTL_STATUS_STOP 0x40000000
369 * @def IX_NPEDL_EXCTL_STATUS_CLEAR
370 * @brief Masks the CLEAR status bit in the EXCTL register
372 #define IX_NPEDL_EXCTL_STATUS_CLEAR 0x20000000
375 * @def IX_NPEDL_EXCTL_STATUS_ECS_K
376 * @brief Masks the K (pipeline Klean) status bit in the EXCTL register
378 #define IX_NPEDL_EXCTL_STATUS_ECS_K 0x00800000
382 * Executing Context Stack (ECS) level registers
386 * @def IX_NPEDL_ECS_BG_CTXT_REG_0
387 * @brief Execution Access register address for register 0 at Backgound
388 * Executing Context Stack level
390 #define IX_NPEDL_ECS_BG_CTXT_REG_0 0x00
393 * @def IX_NPEDL_ECS_BG_CTXT_REG_1
394 * @brief Execution Access register address for register 1 at Backgound
395 * Executing Context Stack level
397 #define IX_NPEDL_ECS_BG_CTXT_REG_1 0x01
400 * @def IX_NPEDL_ECS_BG_CTXT_REG_2
401 * @brief Execution Access register address for register 2 at Backgound
402 * Executing Context Stack level
404 #define IX_NPEDL_ECS_BG_CTXT_REG_2 0x02
407 * @def IX_NPEDL_ECS_PRI_1_CTXT_REG_0
408 * @brief Execution Access register address for register 0 at Priority 1
409 * Executing Context Stack level
411 #define IX_NPEDL_ECS_PRI_1_CTXT_REG_0 0x04
414 * @def IX_NPEDL_ECS_PRI_1_CTXT_REG_1
415 * @brief Execution Access register address for register 1 at Priority 1
416 * Executing Context Stack level
418 #define IX_NPEDL_ECS_PRI_1_CTXT_REG_1 0x05
421 * @def IX_NPEDL_ECS_PRI_1_CTXT_REG_2
422 * @brief Execution Access register address for register 2 at Priority 1
423 * Executing Context Stack level
425 #define IX_NPEDL_ECS_PRI_1_CTXT_REG_2 0x06
428 * @def IX_NPEDL_ECS_PRI_2_CTXT_REG_0
429 * @brief Execution Access register address for register 0 at Priority 2
430 * Executing Context Stack level
432 #define IX_NPEDL_ECS_PRI_2_CTXT_REG_0 0x08
435 * @def IX_NPEDL_ECS_PRI_2_CTXT_REG_1
436 * @brief Execution Access register address for register 1 at Priority 2
437 * Executing Context Stack level
439 #define IX_NPEDL_ECS_PRI_2_CTXT_REG_1 0x09
442 * @def IX_NPEDL_ECS_PRI_2_CTXT_REG_2
443 * @brief Execution Access register address for register 2 at Priority 2
444 * Executing Context Stack level
446 #define IX_NPEDL_ECS_PRI_2_CTXT_REG_2 0x0A
449 * @def IX_NPEDL_ECS_DBG_CTXT_REG_0
450 * @brief Execution Access register address for register 0 at Debug
451 * Executing Context Stack level
453 #define IX_NPEDL_ECS_DBG_CTXT_REG_0 0x0C
456 * @def IX_NPEDL_ECS_DBG_CTXT_REG_1
457 * @brief Execution Access register address for register 1 at Debug
458 * Executing Context Stack level
460 #define IX_NPEDL_ECS_DBG_CTXT_REG_1 0x0D
463 * @def IX_NPEDL_ECS_DBG_CTXT_REG_2
464 * @brief Execution Access register address for register 2 at Debug
465 * Executing Context Stack level
467 #define IX_NPEDL_ECS_DBG_CTXT_REG_2 0x0E
470 * @def IX_NPEDL_ECS_INSTRUCT_REG
471 * @brief Execution Access register address for NPE Instruction Register
473 #define IX_NPEDL_ECS_INSTRUCT_REG 0x11
477 * Execution Access register reset values
481 * @def IX_NPEDL_ECS_BG_CTXT_REG_0_RESET
482 * @brief Reset value for Execution Access Background ECS level register 0
484 #define IX_NPEDL_ECS_BG_CTXT_REG_0_RESET 0xA0000000
487 * @def IX_NPEDL_ECS_BG_CTXT_REG_1_RESET
488 * @brief Reset value for Execution Access Background ECS level register 1
490 #define IX_NPEDL_ECS_BG_CTXT_REG_1_RESET 0x01000000
493 * @def IX_NPEDL_ECS_BG_CTXT_REG_2_RESET
494 * @brief Reset value for Execution Access Background ECS level register 2
496 #define IX_NPEDL_ECS_BG_CTXT_REG_2_RESET 0x00008000
499 * @def IX_NPEDL_ECS_PRI_1_CTXT_REG_0_RESET
500 * @brief Reset value for Execution Access Priority 1 ECS level register 0
502 #define IX_NPEDL_ECS_PRI_1_CTXT_REG_0_RESET 0x20000080
505 * @def IX_NPEDL_ECS_PRI_1_CTXT_REG_1_RESET
506 * @brief Reset value for Execution Access Priority 1 ECS level register 1
508 #define IX_NPEDL_ECS_PRI_1_CTXT_REG_1_RESET 0x01000000
511 * @def IX_NPEDL_ECS_PRI_1_CTXT_REG_2_RESET
512 * @brief Reset value for Execution Access Priority 1 ECS level register 2
514 #define IX_NPEDL_ECS_PRI_1_CTXT_REG_2_RESET 0x00008000
517 * @def IX_NPEDL_ECS_PRI_2_CTXT_REG_0_RESET
518 * @brief Reset value for Execution Access Priority 2 ECS level register 0
520 #define IX_NPEDL_ECS_PRI_2_CTXT_REG_0_RESET 0x20000080
523 * @def IX_NPEDL_ECS_PRI_2_CTXT_REG_1_RESET
524 * @brief Reset value for Execution Access Priority 2 ECS level register 1
526 #define IX_NPEDL_ECS_PRI_2_CTXT_REG_1_RESET 0x01000000
529 * @def IX_NPEDL_ECS_PRI_2_CTXT_REG_2_RESET
530 * @brief Reset value for Execution Access Priority 2 ECS level register 2
532 #define IX_NPEDL_ECS_PRI_2_CTXT_REG_2_RESET 0x00008000
535 * @def IX_NPEDL_ECS_DBG_CTXT_REG_0_RESET
536 * @brief Reset value for Execution Access Debug ECS level register 0
538 #define IX_NPEDL_ECS_DBG_CTXT_REG_0_RESET 0x20000000
541 * @def IX_NPEDL_ECS_DBG_CTXT_REG_1_RESET
542 * @brief Reset value for Execution Access Debug ECS level register 1
544 #define IX_NPEDL_ECS_DBG_CTXT_REG_1_RESET 0x00000000
547 * @def IX_NPEDL_ECS_DBG_CTXT_REG_2_RESET
548 * @brief Reset value for Execution Access Debug ECS level register 2
550 #define IX_NPEDL_ECS_DBG_CTXT_REG_2_RESET 0x001E0000
553 * @def IX_NPEDL_ECS_INSTRUCT_REG_RESET
554 * @brief Reset value for Execution Access NPE Instruction Register
556 #define IX_NPEDL_ECS_INSTRUCT_REG_RESET 0x1003C00F
560 * masks used to read/write particular bits in Execution Access registers
564 * @def IX_NPEDL_MASK_ECS_REG_0_ACTIVE
565 * @brief Mask the A (Active) bit in Execution Access Register 0 of all ECS
568 #define IX_NPEDL_MASK_ECS_REG_0_ACTIVE 0x80000000
571 * @def IX_NPEDL_MASK_ECS_REG_0_NEXTPC
572 * @brief Mask the NextPC bits in Execution Access Register 0 of all ECS
573 * levels (except Debug ECS level)
575 #define IX_NPEDL_MASK_ECS_REG_0_NEXTPC 0x1FFF0000
578 * @def IX_NPEDL_MASK_ECS_REG_0_LDUR
579 * @brief Mask the LDUR bits in Execution Access Register 0 of all ECS levels
581 #define IX_NPEDL_MASK_ECS_REG_0_LDUR 0x00000700
584 * @def IX_NPEDL_MASK_ECS_REG_1_CCTXT
585 * @brief Mask the NextPC bits in Execution Access Register 1 of all ECS levels
587 #define IX_NPEDL_MASK_ECS_REG_1_CCTXT 0x000F0000
590 * @def IX_NPEDL_MASK_ECS_REG_1_SELCTXT
591 * @brief Mask the NextPC bits in Execution Access Register 1 of all ECS levels
593 #define IX_NPEDL_MASK_ECS_REG_1_SELCTXT 0x0000000F
596 * @def IX_NPEDL_MASK_ECS_DBG_REG_2_IF
597 * @brief Mask the IF bit in Execution Access Register 2 of Debug ECS level
599 #define IX_NPEDL_MASK_ECS_DBG_REG_2_IF 0x00100000
602 * @def IX_NPEDL_MASK_ECS_DBG_REG_2_IE
603 * @brief Mask the IE bit in Execution Access Register 2 of Debug ECS level
605 #define IX_NPEDL_MASK_ECS_DBG_REG_2_IE 0x00080000
609 * Bit-Offsets from LSB of particular bit-fields in Execution Access registers
613 * @def IX_NPEDL_OFFSET_ECS_REG_0_NEXTPC
614 * @brief LSB-offset of NextPC field in Execution Access Register 0 of all ECS
615 * levels (except Debug ECS level)
617 #define IX_NPEDL_OFFSET_ECS_REG_0_NEXTPC 16
620 * @def IX_NPEDL_OFFSET_ECS_REG_0_LDUR
621 * @brief LSB-offset of LDUR field in Execution Access Register 0 of all ECS
624 #define IX_NPEDL_OFFSET_ECS_REG_0_LDUR 8
627 * @def IX_NPEDL_OFFSET_ECS_REG_1_CCTXT
628 * @brief LSB-offset of CCTXT field in Execution Access Register 1 of all ECS
631 #define IX_NPEDL_OFFSET_ECS_REG_1_CCTXT 16
634 * @def IX_NPEDL_OFFSET_ECS_REG_1_SELCTXT
635 * @brief LSB-offset of SELCTXT field in Execution Access Register 1 of all ECS
638 #define IX_NPEDL_OFFSET_ECS_REG_1_SELCTXT 0
642 * NPE core & co-processor instruction templates to load into NPE Instruction
643 * Register, for read/write of NPE register file registers
647 * @def IX_NPEDL_INSTR_RD_REG_BYTE
648 * @brief NPE Instruction, used to read an 8-bit NPE internal logical register
649 * and return the value in the EXDATA register (aligned to MSB).
650 * NPE Assembler instruction: "mov8 d0, d0 &&& DBG_WrExec"
652 #define IX_NPEDL_INSTR_RD_REG_BYTE 0x0FC00000
655 * @def IX_NPEDL_INSTR_RD_REG_SHORT
656 * @brief NPE Instruction, used to read a 16-bit NPE internal logical register
657 * and return the value in the EXDATA register (aligned to MSB).
658 * NPE Assembler instruction: "mov16 d0, d0 &&& DBG_WrExec"
660 #define IX_NPEDL_INSTR_RD_REG_SHORT 0x0FC08010
663 * @def IX_NPEDL_INSTR_RD_REG_WORD
664 * @brief NPE Instruction, used to read a 16-bit NPE internal logical register
665 * and return the value in the EXDATA register.
666 * NPE Assembler instruction: "mov32 d0, d0 &&& DBG_WrExec"
668 #define IX_NPEDL_INSTR_RD_REG_WORD 0x0FC08210
671 * @def IX_NPEDL_INSTR_WR_REG_BYTE
672 * @brief NPE Immediate-Mode Instruction, used to write an 8-bit NPE internal
674 * NPE Assembler instruction: "mov8 d0, #0"
676 #define IX_NPEDL_INSTR_WR_REG_BYTE 0x00004000
679 * @def IX_NPEDL_INSTR_WR_REG_SHORT
680 * @brief NPE Immediate-Mode Instruction, used to write a 16-bit NPE internal
682 * NPE Assembler instruction: "mov16 d0, #0"
684 #define IX_NPEDL_INSTR_WR_REG_SHORT 0x0000C000
687 * @def IX_NPEDL_INSTR_RD_FIFO
688 * @brief NPE Immediate-Mode Instruction, used to write a 16-bit NPE internal
690 * NPE Assembler instruction: "cprd32 d0 &&& DBG_RdInFIFO"
692 #define IX_NPEDL_INSTR_RD_FIFO 0x0F888220
695 * @def IX_NPEDL_INSTR_RESET_MBOX
696 * @brief NPE Instruction, used to reset Mailbox (MBST) register
697 * NPE Assembler instruction: "mov32 d0, d0 &&& DBG_ClearM"
699 #define IX_NPEDL_INSTR_RESET_MBOX 0x0FAC8210
703 * Bit-offsets from LSB, of particular bit-fields in an NPE instruction
707 * @def IX_NPEDL_OFFSET_INSTR_SRC
708 * @brief LSB-offset to SRC (source operand) field of an NPE Instruction
710 #define IX_NPEDL_OFFSET_INSTR_SRC 4
713 * @def IX_NPEDL_OFFSET_INSTR_DEST
714 * @brief LSB-offset to DEST (destination operand) field of an NPE Instruction
716 #define IX_NPEDL_OFFSET_INSTR_DEST 9
719 * @def IX_NPEDL_OFFSET_INSTR_COPROC
720 * @brief LSB-offset to COPROC (coprocessor instruction) field of an NPE
723 #define IX_NPEDL_OFFSET_INSTR_COPROC 18
727 * masks used to read/write particular bits of an NPE Instruction
731 * @def IX_NPEDL_MASK_IMMED_INSTR_SRC_DATA
732 * @brief Mask the bits of 16-bit data value (least-sig 5 bits) to be used in
733 * SRC field of immediate-mode NPE instruction
735 #define IX_NPEDL_MASK_IMMED_INSTR_SRC_DATA 0x1F
738 * @def IX_NPEDL_MASK_IMMED_INSTR_COPROC_DATA
739 * @brief Mask the bits of 16-bit data value (most-sig 11 bits) to be used in
740 * COPROC field of immediate-mode NPE instruction
742 #define IX_NPEDL_MASK_IMMED_INSTR_COPROC_DATA 0xFFE0
745 * @def IX_NPEDL_OFFSET_IMMED_INSTR_COPROC_DATA
746 * @brief LSB offset of the bit-field of 16-bit data value (most-sig 11 bits)
747 * to be used in COPROC field of immediate-mode NPE instruction
749 #define IX_NPEDL_OFFSET_IMMED_INSTR_COPROC_DATA 5
752 * @def IX_NPEDL_DISPLACE_IMMED_INSTR_COPROC_DATA
753 * @brief Number of left-shifts required to align most-sig 11 bits of 16-bit
754 * data value into COPROC field of immediate-mode NPE instruction
756 #define IX_NPEDL_DISPLACE_IMMED_INSTR_COPROC_DATA \
757 (IX_NPEDL_OFFSET_INSTR_COPROC - IX_NPEDL_OFFSET_IMMED_INSTR_COPROC_DATA)
760 * @def IX_NPEDL_WR_INSTR_LDUR
761 * @brief LDUR value used with immediate-mode NPE Instructions by the NpeDl
762 * for writing to NPE internal logical registers
764 #define IX_NPEDL_WR_INSTR_LDUR 1
767 * @def IX_NPEDL_RD_INSTR_LDUR
768 * @brief LDUR value used with NON-immediate-mode NPE Instructions by the NpeDl
769 * for reading from NPE internal logical registers
771 #define IX_NPEDL_RD_INSTR_LDUR 0
775 * @enum IxNpeDlCtxtRegNum
776 * @brief Numeric values to identify the NPE internal Context Store registers
780 IX_NPEDL_CTXT_REG_STEVT
= 0, /**< identifies STEVT */
781 IX_NPEDL_CTXT_REG_STARTPC
, /**< identifies STARTPC */
782 IX_NPEDL_CTXT_REG_REGMAP
, /**< identifies REGMAP */
783 IX_NPEDL_CTXT_REG_CINDEX
, /**< identifies CINDEX */
784 IX_NPEDL_CTXT_REG_MAX
/**< Total number of Context Store registers */
789 * NPE Context Store register logical addresses
793 * @def IX_NPEDL_CTXT_REG_ADDR_STEVT
794 * @brief Logical address of STEVT NPE internal Context Store register
796 #define IX_NPEDL_CTXT_REG_ADDR_STEVT 0x0000001B
799 * @def IX_NPEDL_CTXT_REG_ADDR_STARTPC
800 * @brief Logical address of STARTPC NPE internal Context Store register
802 #define IX_NPEDL_CTXT_REG_ADDR_STARTPC 0x0000001C
805 * @def IX_NPEDL_CTXT_REG_ADDR_REGMAP
806 * @brief Logical address of REGMAP NPE internal Context Store register
808 #define IX_NPEDL_CTXT_REG_ADDR_REGMAP 0x0000001E
811 * @def IX_NPEDL_CTXT_REG_ADDR_CINDEX
812 * @brief Logical address of CINDEX NPE internal Context Store register
814 #define IX_NPEDL_CTXT_REG_ADDR_CINDEX 0x0000001F
818 * NPE Context Store register reset values
822 * @def IX_NPEDL_CTXT_REG_RESET_STEVT
823 * @brief Reset value of STEVT NPE internal Context Store register
824 * (STEVT = off, 0x80)
826 #define IX_NPEDL_CTXT_REG_RESET_STEVT 0x80
829 * @def IX_NPEDL_CTXT_REG_RESET_STARTPC
830 * @brief Reset value of STARTPC NPE internal Context Store register
833 #define IX_NPEDL_CTXT_REG_RESET_STARTPC 0x0000
836 * @def IX_NPEDL_CTXT_REG_RESET_REGMAP
837 * @brief Reset value of REGMAP NPE internal Context Store register
838 * (REGMAP = d0->p0, d8->p2, d16->p4)
840 #define IX_NPEDL_CTXT_REG_RESET_REGMAP 0x0820
843 * @def IX_NPEDL_CTXT_REG_RESET_CINDEX
844 * @brief Reset value of CINDEX NPE internal Context Store register
847 #define IX_NPEDL_CTXT_REG_RESET_CINDEX 0x00
851 * numeric range of context levels available on an NPE
855 * @def IX_NPEDL_CTXT_NUM_MIN
856 * @brief Lowest NPE Context number in range
858 #define IX_NPEDL_CTXT_NUM_MIN 0
861 * @def IX_NPEDL_CTXT_NUM_MAX
862 * @brief Highest NPE Context number in range
864 #define IX_NPEDL_CTXT_NUM_MAX 15
868 * Physical NPE internal registers
872 * @def IX_NPEDL_TOTAL_NUM_PHYS_REG
873 * @brief Number of Physical registers currently supported
874 * Initial NPE implementations will have a 32-word register file.
875 * Later implementations may have a 64-word register file.
877 #define IX_NPEDL_TOTAL_NUM_PHYS_REG 32
880 * @def IX_NPEDL_OFFSET_PHYS_REG_ADDR_REGMAP
881 * @brief LSB-offset of Regmap number in Physical NPE register address, used
882 * for Physical To Logical register address mapping in the NPE
884 #define IX_NPEDL_OFFSET_PHYS_REG_ADDR_REGMAP 1
887 * @def IX_NPEDL_MASK_PHYS_REG_ADDR_LOGICAL_ADDR
888 * @brief Mask to extract a logical NPE register address from a physical
889 * register address, used for Physical To Logical address mapping
891 #define IX_NPEDL_MASK_PHYS_REG_ADDR_LOGICAL_ADDR 0x1
893 #endif /* IXNPEDLNPEMGRECREGISTERS_P_H */