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