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