xref: /netbsd-src/sys/arch/mips/sibyte/include/bcm1480_pci.h (revision 8ed35a9caa386f2b37ebc68f473c345fe1e47602)
1 /*  *********************************************************************
2     *  BCM1280/BCM1480 Board Support Package
3     *
4     *  PCI constants				File: bcm1480_pci.h
5     *
6     *  This module contains constants and macros to describe
7     *  the PCI-X interface on the BCM1255/BCM1280/BCM1455/BCM1480.
8     *
9     *  BCM1480 specification level:  1X55_1X80_UM100-R (12/18/03)
10     *
11     *********************************************************************
12     *
13     *  Copyright 2000,2001,2002,2003,2004
14     *  Broadcom Corporation. All rights reserved.
15     *
16     *  This software is furnished under license and may be used and
17     *  copied only in accordance with the following terms and
18     *  conditions.  Subject to these conditions, you may download,
19     *  copy, install, use, modify and distribute modified or unmodified
20     *  copies of this software in source and/or binary form.  No title
21     *  or ownership is transferred hereby.
22     *
23     *  1) Any source code used, modified or distributed must reproduce
24     *     and retain this copyright notice and list of conditions
25     *     as they appear in the source file.
26     *
27     *  2) No right is granted to use any trade name, trademark, or
28     *     logo of Broadcom Corporation.  The "Broadcom Corporation"
29     *     name may not be used to endorse or promote products derived
30     *     from this software without the prior written permission of
31     *     Broadcom Corporation.
32     *
33     *  3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
34     *     IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
35     *     WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
36     *     PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
37     *     SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
38     *     PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
39     *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
40     *     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
41     *     GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
42     *     BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
43     *     OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
44     *     TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
45     *     THE POSSIBILITY OF SUCH DAMAGE.
46     ********************************************************************* */
47 
48 
49 #ifndef _BCM1480_PCI_H
50 #define _BCM1480_PCI_H
51 
52 #include "sb1250_defs.h"
53 
54 
55 /*
56  * PCI Reset Register (Table 108)
57  */
58 
59 #define M_BCM1480_PCI_RESET_PIN             _SB_MAKEMASK1(0)
60 #define M_BCM1480_PCI_INTERNAL_RESET        _SB_MAKEMASK1(1)
61 #define M_BCM1480_PCI_TIMEOUT_RESET         _SB_MAKEMASK1(2)
62 #define M_BCM1480_PCI_RESET_INTR            _SB_MAKEMASK1(4)
63 #define M_BCM1480_PCI_M66EN_STATUS          _SB_MAKEMASK1(8)
64 #define M_BCM1480_PCI_M66EN_DRIVE_LOW       _SB_MAKEMASK1(11)
65 #define M_BCM1480_PCI_PCIXCAP_STATUS        _SB_MAKEMASK1(12)
66 #define M_BCM1480_PCI_PCIXCAP_PULLUP        _SB_MAKEMASK1(15)
67 #define M_BCM1480_PCI_PERR_RST_ASSERT       _SB_MAKEMASK1(16)
68 #define M_BCM1480_PCI_DEVSEL_RST_ASSERT     _SB_MAKEMASK1(17)
69 #define M_BCM1480_PCI_STOP_RST_ASSERT       _SB_MAKEMASK1(18)
70 #define M_BCM1480_PCI_TRDY_RST_ASSERT       _SB_MAKEMASK1(19)
71 #define M_BCM1480_PCI_PERR_RST_STATUS       _SB_MAKEMASK1(20)
72 #define M_BCM1480_PCI_DEVSEL_RST_STATUS     _SB_MAKEMASK1(21)
73 #define M_BCM1480_PCI_STOP_RST_STATUS       _SB_MAKEMASK1(22)
74 #define M_BCM1480_PCI_TRDY_RST_STATUS       _SB_MAKEMASK1(23)
75 
76 /*
77  * PCI DLL Register (Table 110)
78  */
79 
80 #define S_BCM1480_PCI_DLL_BYPASS_MODE        0
81 #define M_BCM1480_PCI_DLL_BYPASS_MODE        _SB_MAKEMASK(2,S_BCM1480_PCI_DLL_BYPASS_MODE)
82 #define V_BCM1480_PCI_DLL_BYPASS_MODE(x)     _SB_MAKEVALUE(x,S_BCM1480_PCI_DLL_BYPASS_MODE)
83 #define G_BCM1480_PCI_DLL_BYPASS_MODE(x)     _SB_GETVALUE(x,S_BCM1480_PCI_DLL_BYPASS_MODE,M_BCM1480_PCI_DLL_BYPASS_MODE)
84 #define K_BCM1480_PCI_DLL_AUTO               0x0
85 #define K_BCM1480_PCI_DLL_FORCE_BYPASS       0x1
86 #define K_BCM1480_PCI_DLL_FORCE_USE          0x2
87 
88 #define M_BCM1480_PCI_DLL_FIXED_VALUE_EN     _SB_MAKEMASK1(3)
89 
90 #define S_BCM1480_PCI_DLL_FIXED_VALUE        4
91 #define M_BCM1480_PCI_DLL_FIXED_VALUE        _SB_MAKEMASK(6,S_BCM1480_PCI_DLL_FIXED_VALUE)
92 #define V_BCM1480_PCI_DLL_FIXED_VALUE(x)     _SB_MAKEVALUE(x,S_BCM1480_PCI_DLL_FIXED_VALUE)
93 #define G_BCM1480_PCI_DLL_FIXED_VALUE(x)     _SB_GETVALUE(x,S_BCM1480_PCI_DLL_FIXED_VALUE,M_BCM1480_PCI_DLL_FIXED_VALUE)
94 
95 #define S_BCM1480_PCI_DLL_DELAY              12
96 #define M_BCM1480_PCI_DLL_DELAY              _SB_MAKEMASK(4,S_BCM1480_PCI_DLL_DELAY)
97 #define V_BCM1480_PCI_DLL_DELAY(x)           _SB_MAKEVALUE(x,S_BCM1480_PCI_DLL_DELAY)
98 #define G_BCM1480_PCI_DLL_DELAY(x)           _SB_GETVALUE(x,S_BCM1480_PCI_DLL_DELAY,M_BCM1480_PCI_DLL_DELAY)
99 
100 #define S_BCM1480_PCI_DLL_STEP_SIZE          16
101 #define M_BCM1480_PCI_DLL_STEP_SIZE          _SB_MAKEMASK(4,S_BCM1480_PCI_DLL_STEP_SIZE)
102 #define V_BCM1480_PCI_DLL_STEP_SIZE(x)       _SB_MAKEVALUE(x,S_BCM1480_PCI_DLL_STEP_SIZE)
103 #define G_BCM1480_PCI_DLL_STEP_SIZE(x)       _SB_GETVALUE(x,S_BCM1480_PCI_DLL_STEP_SIZE,M_BCM1480_PCI_DLL_STEP_SIZE)
104 
105 
106 /*
107  * The following definitions refer to PCI Configuration Space of the
108  * PCI-X Host Bridge (PHB).  All registers are 32 bits.
109  */
110 
111 #define K_BCM1480_PHB_VENDOR_SIBYTE     0x166D
112 #define K_BCM1480_PHB_DEVICE_BCM1480    0x0012
113 
114 /*
115  * PHB Interface Configuration Header (Table 111).
116  * The first 64 bytes are a standard Type 0 header.  The bridge also
117  * implements the standard PCIX and MSI capabilities.  Only
118  * device-specific extensions are defined here.
119  */
120 
121 #define R_BCM1480_PHB_FCTRL             0x0040
122 #define R_BCM1480_PHB_MAPBASE           0x0044	/* 0x44 through 0x80 - map table */
123 #define BCM1480_PHB_MAPENTRIES          16	/* 64 bytes, 16 entries */
124 #define R_BCM1480_PHB_MAP(n)            (R_BCM1480_PHB_MAPBASE + (n)*4)
125 #define R_BCM1480_PHB_ERRORADDR         0x0084  /* lower, upper */
126 #define R_BCM1480_PHB_ADDSTATCMD        0x008C
127 #define R_BCM1480_PHB_SUBSYSSET         0x0090
128 #define R_BCM1480_PHB_SIGNALINTA        0x0094
129 #define R_BCM1480_PHB_EXTCONFIGDIS      0x0098
130 #define R_BCM1480_PHB_VENDORIDSET       0x009C
131 #define R_BCM1480_PHB_CLASSREVSET       0x00A0
132 #define R_BCM1480_PHB_TIMEOUT           0x00A4
133 #define R_BCM1480_PHB_XACTCTRL          0x00A8
134 #define R_BCM1480_PHB_TESTDEBUG         0x00AC
135 #define R_BCM1480_PHB_OMAPBASE          0x00B0	/* 0xB0 through 0xCC - omap table */
136 #define BCM1480_PHB_OMAPENTRIES         4	/* 32 bytes, 4 entries */
137 #define R_BCM1480_PHB_OMAP(n)           (R_BCM1480_PHB_OMAPBASE + (n)*8)
138 #define R_BCM1480_PHB_MSICAP            0x00D0
139 #define R_BCM1480_PHB_PCIXCAP           0x00E0
140 #define R_BCM1480_PHB_TGTDONE           0x00E8
141 
142 
143 /*
144  * PHB Feature Control Register (Table 116)
145  */
146 
147 #define M_BCM1480_PHB_FCTRL_FULL_BAR_EN      _SB_MAKEMASK1_32(0)
148 #define M_BCM1480_PHB_FCTRL_FULL_BAR_SPLIT   _SB_MAKEMASK1_32(1)
149 #define M_BCM1480_PHB_FCTRL_LOW_MEM_EN       _SB_MAKEMASK1_32(2)
150 #define M_BCM1480_PHB_FCTRL_UPPER_MEM_EN     _SB_MAKEMASK1_32(3)
151 #define M_BCM1480_PHB_FCTRL_EXP_MEM_EN       _SB_MAKEMASK1_32(4)
152 #define M_BCM1480_PHB_FCTRL_EXP_MEM_SPLIT    _SB_MAKEMASK1_32(5)
153 #define M_BCM1480_PHB_FCTRL_TOP_ACC_EN       _SB_MAKEMASK1_32(6)
154 #define M_BCM1480_PHB_FCTRL_TOP_ACC_SPLIT    _SB_MAKEMASK1_32(7)
155 #define M_BCM1480_PHB_FCTRL_USE_NODE_ID      _SB_MAKEMASK1_32(8)
156 #define M_BCM1480_PHB_FCTRL_UPPER_MEM_TR     _SB_MAKEMASK1_32(12)
157 #define V_BCM1480_PHB_FCTRL_DEFAULT          0
158 
159 /*
160  * PHB BAR0/1 Map Table Entry (Offsets 0x44-0x80) (Table 117)
161  */
162 
163 #define M_BCM1480_PHB_MAP_ENABLE             _SB_MAKEMASK1_32(0)
164 #define M_BCM1480_PHB_MAP_L2CA               _SB_MAKEMASK1_32(2)
165 #define M_BCM1480_PHB_MAP_ENDIAN             _SB_MAKEMASK1_32(3)
166 
167 #define S_BCM1480_PHB_MAP_ADDR               12
168 #define M_BCM1480_PHB_MAP_ADDR               _SB_MAKEMASK_32(20,S_BCM1480_PHB_MAP_ADDR)
169 #define V_BCM1480_PHB_MAP_ADDR(x)            _SB_MAKEVALUE_32(x,S_BCM1480_PHB_MAP_ADDR)
170 #define G_BCM1480_PHB_MAP_ADDR(x)            _SB_GETVALUE_32(x,S_BCM1480_PHB_MAP_ADDR,M_BCM1480_PHB_MAP_ADDR)
171 
172 /*
173  * PHB Additional Status and Command Register (Table 118)
174  */
175 
176 #define M_BCM1480_PHB_ASTCMD_HOTPLUG_EN      _SB_MAKEMASK1_32(0)
177 #define M_BCM1480_PHB_ASTCMD_SERR_DET        _SB_MAKEMASK1_32(1)
178 #define M_BCM1480_PHB_ASTCMD_TRDY_ERR        _SB_MAKEMASK1_32(2)
179 #define M_BCM1480_PHB_ASTCMD_RETRY_ERR       _SB_MAKEMASK1_32(3)
180 #define M_BCM1480_PHB_ASTCMD_TRDY_INT_EN     _SB_MAKEMASK1_32(4)
181 #define M_BCM1480_PHB_ASTCMD_RETRY_INT_EN    _SB_MAKEMASK1_32(5)
182 #define M_BCM1480_PHB_ASTCMD_COMPL_TO_ERR    _SB_MAKEMASK1_32(6)
183 #define M_BCM1480_PHB_ASTCMD_COMPL_TO_INT_EN _SB_MAKEMASK1_32(7)
184 #define M_BCM1480_PHB_ASTCMD_64B_DEVICE_SET  _SB_MAKEMASK1_32(16)
185 #define M_BCM1480_PHB_ASTCMD_133MHZ_CAP_SET  _SB_MAKEMASK1_32(17)
186 #define V_BCM1480_PHB_ASTCMD_DEFAULT         (M_BCM1480_PHB_ASTCMD_64B_DEVICE_SET | \
187                                        M_BCM1480_PHB_ASTCMD_133MHZ_CAP_SET)
188 
189 /*
190  * PHB INTA Control Register (Table 119)
191  */
192 
193 #define M_BCM1480_PHB_SIGNAL_INTA            _SB_MAKEMASK1_32(0)
194 
195 /*
196  * PHB External Configuratation Disable Register (Table 120)
197  */
198 
199 #define M_BCM1480_PHB_EXT_CONFIG_DIS         _SB_MAKEMASK1_32(0)
200 
201 /*
202  * PHB Timeout Register (Table 121)
203  */
204 
205 #define S_BCM1480_PHB_TIMEOUT_TRDY           0
206 #define M_BCM1480_PHB_TIMEOUT_TRDY           _SB_MAKEMASK_32(8,S_BCM1480_PHB_TIMEOUT_TRDY)
207 #define V_BCM1480_PHB_TIMEOUT_TRDY(x)        _SB_MAKEVALUE_32(x,S_BCM1480_PHB_TIMEOUT_TRDY)
208 #define G_BCM1480_PHB_TIMEOUT_TRDY(x)        _SB_GETVALUE_32(x,S_BCM1480_PHB_TIMEOUT_TRDY,M_BCM1480_PHB_TIMEOUT_TRDY)
209 
210 #define S_BCM1480_PHB_TIMEOUT_RETRY          8
211 #define M_BCM1480_PHB_TIMEOUT_RETRY          _SB_MAKEMASK_32(8,S_BCM1480_PHB_TIMEOUT_RETRY)
212 #define V_BCM1480_PHB_TIMEOUT_RETRY(x)       _SB_MAKEVALUE_32(x,S_BCM1480_PHB_TIMEOUT_RETRY)
213 #define G_BCM1480_PHB_TIMEOUT_RETRY(x)       _SB_GETVALUE_32(x,S_BCM1480_PHB_TIMEOUT_RETRY,M_BCM1480_PHB_TIMEOUT_RETRY)
214 
215 #define S_BCM1480_PHB_TIMEOUT_COMPL          16
216 #define M_BCM1480_PHB_TIMEOUT_COMPL          _SB_MAKEMASK_32(4,S_BCM1480_PHB_TIMEOUT_COMPL)
217 #define V_BCM1480_PHB_TIMEOUT_COMPL(x)       _SB_MAKEVALUE_32(x,S_BCM1480_PHB_TIMEOUT_COMPL)
218 #define G_BCM1480_PHB_TIMEOUT_COMPL(x)       _SB_GETVALUE_32(x,S_BCM1480_PHB_TIMEOUT_COMPL,M_BCM1480_PHB_TIMEOUT_COMPL)
219 
220 #define S_BCM1480_PHB_TIMEOUT_INB_RD_PREF    20
221 #define M_BCM1480_PHB_TIMEOUT_INB_RD_PREF    _SB_MAKEMASK_32(4,S_BCM1480_PHB_TIMEOUT_INB_RD_PREF)
222 #define V_BCM1480_PHB_TIMEOUT_INB_RD_PREF(x) _SB_MAKEVALUE_32(x,S_BCM1480_PHB_TIMEOUT_INB_RD_PREF)
223 #define G_BCM1480_PHB_TIMEOUT_INB_RD_PREF(x) _SB_GETVALUE_32(x,S_BCM1480_PHB_TIMEOUT_INB_RD_PREF,M_BCM1480_PHB_TIMEOUT_INB_RD_PREF)
224 
225 #define M_BCM1480_PHB_TIMEOUT_INB_RD_OUTB_WR _SB_MAKEMASK1_32(24)
226 #define M_BCM1480_PHB_TIMEOUT_INB_RD_OUTB_RD _SB_MAKEMASK1_32(25)
227 #define M_BCM1480_PHB_TIMEOUT_INB_RD_INB_WR  _SB_MAKEMASK1_32(25)
228 
229 #define S_BCM1480_PHB_TIMEOUT_OUTB_FWD_PROG    28
230 #define M_BCM1480_PHB_TIMEOUT_OUTB_FWD_PROG    _SB_MAKEMASK_32(4,S_BCM1480_PHB_TIMEOUT_OUTB_FWD_PROG)
231 #define V_BCM1480_PHB_TIMEOUT_OUTB_FWD_PROG(x) _SB_MAKEVALUE_32(x,S_BCM1480_PHB_TIMEOUT_OUTB_FWD_PROG)
232 #define G_BCM1480_PHB_TIMEOUT_OUTB_FWD_PROG(x) _SB_GETVALUE_32(x,S_BCM1480_PHB_TIMEOUT_OUTB_FWD_PROG,M_BCM1480_PHB_TIMEOUT_OUTB_FWD_PROG)
233 
234 #define V_BCM1480_PHB_TIMEOUT_DEFAULT        (V_BCM1480_PHB_TIMEOUT_TRDY(0x80) |  \
235                                       V_BCM1480_PHB_TIMEOUT_RETRY(0x80) | \
236                                       V_BCM1480_PHB_TIMEOUT_COMPL(0xA))
237 
238 /*
239  * PHB Transaction Control Register (Table 122)
240  */
241 
242 #define S_BCM1480_PHB_XACT_WR_COMBINE_TMR          0
243 #define M_BCM1480_PHB_XACT_WR_COMBINE_TMR          _SB_MAKEMASK_32(8,S_BCM1480_PHB_XACT_WR_COMBINE_TMR)
244 #define V_BCM1480_PHB_XACT_WR_COMBINE_TMR(x)       _SB_MAKEVALUE_32(x,S_BCM1480_PHB_XACT_WR_COMBINE_TMR)
245 #define G_BCM1480_PHB_XACT_WR_COMBINE_TMR(x)       _SB_GETVALUE_32(x,S_BCM1480_PHB_XACT_WR_COMBINE_TMR,M_BCM1480_PHB_XACT_WR_COMBINE_TMR)
246 
247 #define S_BCM1480_PHB_XACT_OUTB_NP_ORDER           8
248 #define M_BCM1480_PHB_XACT_OUTB_NP_ORDER           _SB_MAKEMASK_32(2,S_BCM1480_PHB_XACT_OUTB_NP_ORDER)
249 #define V_BCM1480_PHB_XACT_OUTB_NP_ORDER(x)        _SB_MAKEVALUE_32(x,S_BCM1480_PHB_XACT_OUTB_NP_ORDER)
250 #define G_BCM1480_PHB_XACT_OUTB_NP_ORDER(x)        _SB_GETVALUE_32(x,S_BCM1480_PHB_XACT_OUTB_NP_ORDER,M_BCM1480_PHB_XACT_OUTB_NP_ORDER)
251 
252 #define M_BCM1480_PHB_XACT_SET_WR_RLX_ORDER        _SB_MAKEMASK1_32(10)
253 #define M_BCM1480_PHB_XACT_SET_RSP_RLX_ORDER       _SB_MAKEMASK1_32(11)
254 #define M_BCM1480_PHB_XACT_SET_WR_NO_SNOOP         _SB_MAKEMASK1_32(12)
255 #define M_BCM1480_PHB_XACT_SET_RD_NO_SNOOP         _SB_MAKEMASK1_32(13)
256 #define M_BCM1480_PHB_XACT_SET_OUTB_RD_PREF_DIS    _SB_MAKEMASK1_32(14)
257 #define M_BCM1480_PHB_XACT_SET_OUTB_RSP_WR_ORD_DIS _SB_MAKEMASK1_32(15)
258 
259 #define S_BCM1480_PHB_XACT_INB_RD_MAX_PREF         20
260 #define M_BCM1480_PHB_XACT_INB_RD_MAX_PREF         _SB_MAKEMASK_32(3,S_BCM1480_PHB_XACT_INB_RD_MAX_PREF)
261 #define V_BCM1480_PHB_XACT_INB_RD_MAX_PREF(x)      _SB_MAKEVALUE_32(x,S_BCM1480_PHB_XACT_INB_RD_MAX_PREF)
262 #define G_BCM1480_PHB_XACT_INB_RD_MAX_PREF(x)      _SB_GETVALUE_32(x,S_BCM1480_PHB_XACT_INB_RD_MAX_PREF,M_BCM1480_PHB_XACT_INB_RD_MAX_PREF)
263 
264 #define S_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF      24
265 #define M_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF      _SB_MAKEMASK_32(3,S_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF)
266 #define V_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF(x)   _SB_MAKEVALUE_32(x,S_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF)
267 #define G_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF(x)   _SB_GETVALUE_32(x,S_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF,M_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF)
268 
269 #define S_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF     28
270 #define M_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF     _SB_MAKEMASK_32(3,S_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF)
271 #define V_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF(x)  _SB_MAKEVALUE_32(x,S_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF)
272 #define G_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF(x)  _SB_GETVALUE_32(x,S_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF,M_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF)
273 
274 #define K_BCM1480_PHB_PREF_256B              0x0
275 #define K_BCM1480_PHB_PREF_32B               0x1
276 #define K_BCM1480_PHB_PREF_64B               0x2
277 #define K_BCM1480_PHB_PREF_96B               0x3
278 #define K_BCM1480_PHB_PREF_128B              0x4   /* also 0x5 */
279 #define K_BCM1480_PHB_PREF_192B              0x6   /* also 0x7 */
280 
281 #define V_BCM1480_PHB_XACT_DEFAULT           (V_BCM1480_PHB_XACT_WR_COMBINE_TMR(0x20)     | \
282                                       V_BCM1480_PHB_XACT_OUTB_NP_ORDER(0x1)       | \
283                                       V_BCM1480_PHB_XACT_INB_RD_MAX_PREF(0x1)     | \
284                                       V_BCM1480_PHB_XACT_INB_RD_LN_MAX_PREF(0x1)  | \
285                                       V_BCM1480_PHB_XACT_INB_RD_MUL_MAX_PREF(0x4))
286 
287 /*
288  * PHB Test and Debug Register (Table 123)
289  */
290 
291 #define M_BCM1480_PHB_TEST_LOOPBACK          _SB_MAKEMASK1_32(0)
292 #define M_BCM1480_PHB_TEST_32BIT_MODE        _SB_MAKEMASK1_32(1)
293 #define M_BCM1480_PHB_TEST_QUICK_TEST        _SB_MAKEMASK1_32(2)
294 
295 /*
296  * PHB Outbound Map Table Entries (Lower, Upper) (Tables 124 and 125)
297  */
298 
299 #define M_BCM1480_PHB_OMAP_L_ENABLE          _SB_MAKEMASK1_32(0)
300 
301 #define S_BCM1480_PHB_OMAP_L_ADDR            20
302 #define M_BCM1480_PHB_OMAP_L_ADDR            _SB_MAKEMASK_32(12,S_BCM1480_PHB_OMAP_L_ADDR)
303 #define V_BCM1480_PHB_OMAP_L_ADDR(x)         _SB_MAKEVALUE_32(x,S_BCM1480_PHB_OMAP_L_ADDR)
304 #define G_BCM1480_PHB_OMAP_L_ADDR(x)         _SB_GETVALUE_32(x,S_BCM1480_PHB_OMAP_L_ADDR,M_BCM1480_PHB_OMAP_L_ADDR)
305 
306 #define S_BCM1480_PHB_OMAP_U_ADDR            0
307 #define M_BCM1480_PHB_OMAP_U_ADDR            _SB_MAKEMASK_32(32,S_BCM1480_PHB_OMAP_U_ADDR)
308 #define V_BCM1480_PHB_OMAP_U_ADDR(x)         _SB_MAKEVALUE_32(x,S_BCM1480_PHB_OMAP_U_ADDR)
309 #define G_BCM1480_PHB_OMAP_U_ADDR(x)         _SB_GETVALUE_32(x,S_BCM1480_PHB_OMAP_U_ADDR,M_BCM1480_PHB_OMAP_U_ADDR)
310 
311 /*
312  * PHB Target Done Register (Table 129)
313  */
314 
315 #define S_BCM1480_PHB_TGT_DONE_COUNTER       0
316 #define M_BCM1480_PHB_TGT_DONE_COUNTER       _SB_MAKEMASK_32(8,S_BCM1480_PHB_TGT_DONE_COUNTER)
317 #define V_BCM1480_PHB_TGT_DONE_COUNTER(x)    _SB_MAKEVALUE_32(x,S_BCM1480_PHB_TGT_DONE_COUNTER)
318 #define G_BCM1480_PHB_TGT_DONE_COUNTER(x)    _SB_GETVALUE_32(x,S_BCM1480_PHB_TGT_DONE_COUNTER,M_BCM1480_PHB_TGT_DONE_COUNTER)
319 
320 
321 struct bcm1480_inbw_conf  {
322 
323    unsigned long long   pa;       /* Base address(Physical) of the memory region to be mapped at BAR0 */
324 
325    unsigned int  offset;   /* Offset from the Base address - Start of the region */
326 
327    unsigned int  len;      /* Length of the region */
328 
329    int           l2ca;     /* L2CA flag */
330 
331    int           endian;   /* Endian flag */
332 };
333 
334 #endif /* _BCM1480_PCI_H */
335 
336