NSCL DDAS  1.0
Support for XIA DDAS at the NSCL
 All Classes Namespaces Files Functions Variables Macros Pages
Reg9054.h
1 #ifndef __REG9054_H
2 #define __REG9054_H
3 
4 /*******************************************************************************
5  * Copyright (c) PLX Technology, Inc.
6  *
7  * PLX Technology Inc. licenses this source file under the GNU Lesser General Public
8  * License (LGPL) version 2. This source file may be modified or redistributed
9  * under the terms of the LGPL and without express permission from PLX Technology.
10  *
11  * PLX Technology, Inc. provides this software AS IS, WITHOUT ANY WARRANTY,
12  * EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF
13  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. PLX makes no guarantee
14  * or representations regarding the use of, or the results of the use of,
15  * the software and documentation in terms of correctness, accuracy,
16  * reliability, currentness, or otherwise; and you rely on the software,
17  * documentation and results solely at your own risk.
18  *
19  * IN NO EVENT SHALL PLX BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS,
20  * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES
21  * OF ANY KIND.
22  *
23  ******************************************************************************/
24 
25 /******************************************************************************
26  *
27  * File Name:
28  *
29  * Reg9054.h
30  *
31  * Description:
32  *
33  * This file defines all the PLX 9054 chip Registers.
34  *
35  * Revision:
36  *
37  * 11-01-06 : PLX SDK v5.00
38  *
39  ******************************************************************************/
40 
41 
42 #include "PciRegs.h"
43 
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 
50 #if defined(PLX_LOCAL_CODE)
51  #define PCI9054_REG_BASE 0x080
52  #define PCI9054_NEW_CAP_BASE 0x140
53  #define PCI9054_MAX_REG_OFFSET 0x194
54 #else
55  #define PCI9054_REG_BASE 0x000
56  #define PCI9054_NEW_CAP_BASE 0x000
57  #define PCI9054_MAX_REG_OFFSET 0x100
58 #endif
59 
60 
61 // Additional defintions
62 #define PCI9054_EEPROM_SIZE 0x058 // EEPROM size (bytes) used by PLX Chip
63 #define PCI9054_DMA_CHANNELS 2 // Number of DMA channels supported by PLX Chip
64 
65 
66 // PCI Configuration Registers
67 #define PCI9054_VENDOR_ID CFG_VENDOR_ID
68 #define PCI9054_COMMAND CFG_COMMAND
69 #define PCI9054_REV_ID CFG_REV_ID
70 #define PCI9054_CACHE_SIZE CFG_CACHE_SIZE
71 #define PCI9054_RTR_BASE CFG_BAR0
72 #define PCI9054_RTR_IO_BASE CFG_BAR1
73 #define PCI9054_LOCAL_BASE0 CFG_BAR2
74 #define PCI9054_LOCAL_BASE1 CFG_BAR3
75 #define PCI9054_UNUSED_BASE1 CFG_BAR4
76 #define PCI9054_UNUSED_BASE2 CFG_BAR5
77 #define PCI9054_CIS_PTR CFG_CIS_PTR
78 #define PCI9054_SUB_ID CFG_SUB_VENDOR_ID
79 #define PCI9054_EXP_ROM_BASE CFG_EXP_ROM_BASE
80 #define PCI9054_CAP_PTR CFG_CAP_PTR
81 #define PCI9054_RESERVED2 CFG_RESERVED1
82 #define PCI9054_INT_LINE CFG_INT_LINE
83 #define PCI9054_PM_CAP_ID (PCI9054_NEW_CAP_BASE + 0x040)
84 #define PCI9054_PM_CSR (PCI9054_NEW_CAP_BASE + 0x044)
85 #define PCI9054_HS_CAP_ID (PCI9054_NEW_CAP_BASE + 0x048)
86 #define PCI9054_VPD_CAP_ID (PCI9054_NEW_CAP_BASE + 0x04c)
87 #define PCI9054_VPD_DATA (PCI9054_NEW_CAP_BASE + 0x050)
88 
89 
90 // Local Configuration Registers
91 #define PCI9054_SPACE0_RANGE (PCI9054_REG_BASE + 0x000)
92 #define PCI9054_SPACE0_REMAP (PCI9054_REG_BASE + 0x004)
93 #define PCI9054_LOCAL_DMA_ARBIT (PCI9054_REG_BASE + 0x008)
94 #define PCI9054_ENDIAN_DESC (PCI9054_REG_BASE + 0x00c)
95 #define PCI9054_EXP_ROM_RANGE (PCI9054_REG_BASE + 0x010)
96 #define PCI9054_EXP_ROM_REMAP (PCI9054_REG_BASE + 0x014)
97 #define PCI9054_SPACE0_ROM_DESC (PCI9054_REG_BASE + 0x018)
98 #define PCI9054_DM_RANGE (PCI9054_REG_BASE + 0x01c)
99 #define PCI9054_DM_MEM_BASE (PCI9054_REG_BASE + 0x020)
100 #define PCI9054_DM_IO_BASE (PCI9054_REG_BASE + 0x024)
101 #define PCI9054_DM_PCI_MEM_REMAP (PCI9054_REG_BASE + 0x028)
102 #define PCI9054_DM_PCI_IO_CONFIG (PCI9054_REG_BASE + 0x02c)
103 #define PCI9054_SPACE1_RANGE (PCI9054_REG_BASE + 0x0f0)
104 #define PCI9054_SPACE1_REMAP (PCI9054_REG_BASE + 0x0f4)
105 #define PCI9054_SPACE1_DESC (PCI9054_REG_BASE + 0x0f8)
106 #define PCI9054_DM_DAC (PCI9054_REG_BASE + 0x0fc)
107 
108 
109 // Runtime Registers
110 #if defined(PLX_LOCAL_CODE)
111  #define PCI9054_MAILBOX0 0x0c0
112  #define PCI9054_MAILBOX1 0x0c4
113 #else
114  #define PCI9054_MAILBOX0 0x078
115  #define PCI9054_MAILBOX1 0x07c
116 #endif
117 
118 #define PCI9054_MAILBOX2 (PCI9054_REG_BASE + 0x048)
119 #define PCI9054_MAILBOX3 (PCI9054_REG_BASE + 0x04c)
120 #define PCI9054_MAILBOX4 (PCI9054_REG_BASE + 0x050)
121 #define PCI9054_MAILBOX5 (PCI9054_REG_BASE + 0x054)
122 #define PCI9054_MAILBOX6 (PCI9054_REG_BASE + 0x058)
123 #define PCI9054_MAILBOX7 (PCI9054_REG_BASE + 0x05c)
124 #define PCI9054_LOCAL_DOORBELL (PCI9054_REG_BASE + 0x060)
125 #define PCI9054_PCI_DOORBELL (PCI9054_REG_BASE + 0x064)
126 #define PCI9054_INT_CTRL_STAT (PCI9054_REG_BASE + 0x068)
127 #define PCI9054_EEPROM_CTRL_STAT (PCI9054_REG_BASE + 0x06c)
128 #define PCI9054_PERM_VENDOR_ID (PCI9054_REG_BASE + 0x070)
129 #define PCI9054_REVISION_ID (PCI9054_REG_BASE + 0x074)
130 
131 
132 // DMA Registers
133 #define PCI9054_DMA0_MODE (PCI9054_REG_BASE + 0x080)
134 #define PCI9054_DMA0_PCI_ADDR (PCI9054_REG_BASE + 0x084)
135 #define PCI9054_DMA0_LOCAL_ADDR (PCI9054_REG_BASE + 0x088)
136 #define PCI9054_DMA0_COUNT (PCI9054_REG_BASE + 0x08c)
137 #define PCI9054_DMA0_DESC_PTR (PCI9054_REG_BASE + 0x090)
138 #define PCI9054_DMA1_MODE (PCI9054_REG_BASE + 0x094)
139 #define PCI9054_DMA1_PCI_ADDR (PCI9054_REG_BASE + 0x098)
140 #define PCI9054_DMA1_LOCAL_ADDR (PCI9054_REG_BASE + 0x09c)
141 #define PCI9054_DMA1_COUNT (PCI9054_REG_BASE + 0x0a0)
142 #define PCI9054_DMA1_DESC_PTR (PCI9054_REG_BASE + 0x0a4)
143 #define PCI9054_DMA_COMMAND_STAT (PCI9054_REG_BASE + 0x0a8)
144 #define PCI9054_DMA_ARBIT (PCI9054_REG_BASE + 0x0ac)
145 #define PCI9054_DMA_THRESHOLD (PCI9054_REG_BASE + 0x0b0)
146 #define PCI9054_DMA0_PCI_DAC (PCI9054_REG_BASE + 0x0b4)
147 #define PCI9054_DMA1_PCI_DAC (PCI9054_REG_BASE + 0x0b8)
148 
149 
150 // Messaging Unit Registers
151 #define PCI9054_OUTPOST_INT_STAT (PCI9054_REG_BASE + 0x030)
152 #define PCI9054_OUTPOST_INT_MASK (PCI9054_REG_BASE + 0x034)
153 #define PCI9054_MU_CONFIG (PCI9054_REG_BASE + 0x0c0)
154 #define PCI9054_FIFO_BASE_ADDR (PCI9054_REG_BASE + 0x0c4)
155 #define PCI9054_INFREE_HEAD_PTR (PCI9054_REG_BASE + 0x0c8)
156 #define PCI9054_INFREE_TAIL_PTR (PCI9054_REG_BASE + 0x0cc)
157 #define PCI9054_INPOST_HEAD_PTR (PCI9054_REG_BASE + 0x0d0)
158 #define PCI9054_INPOST_TAIL_PTR (PCI9054_REG_BASE + 0x0d4)
159 #define PCI9054_OUTFREE_HEAD_PTR (PCI9054_REG_BASE + 0x0d8)
160 #define PCI9054_OUTFREE_TAIL_PTR (PCI9054_REG_BASE + 0x0dc)
161 #define PCI9054_OUTPOST_HEAD_PTR (PCI9054_REG_BASE + 0x0e0)
162 #define PCI9054_OUTPOST_TAIL_PTR (PCI9054_REG_BASE + 0x0e4)
163 #define PCI9054_FIFO_CTRL_STAT (PCI9054_REG_BASE + 0x0e8)
164 
165 
166 
167 
168 #ifdef __cplusplus
169 }
170 #endif
171 
172 #endif