⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sb_pci.h

📁 一个很好的嵌入式linux平台下的bootloader
💻 H
字号:
/*  *********************************************************************    *  Broadcom Common Firmware Environment (CFE)    *      *  PCI core definitions                  	File: sb_pci.c    *      *********************************************************************      *    *  Copyright 2003    *  Broadcom Corporation. All rights reserved.    *      *  This software is furnished under license and may be used and     *  copied only in accordance with the following terms and     *  conditions.  Subject to these conditions, you may download,     *  copy, install, use, modify and distribute modified or unmodified     *  copies of this software in source and/or binary form.  No title     *  or ownership is transferred hereby.    *      *  1) Any source code used, modified or distributed must reproduce     *     and retain this copyright notice and list of conditions     *     as they appear in the source file.    *      *  2) No right is granted to use any trade name, trademark, or     *     logo of Broadcom Corporation.  The "Broadcom Corporation"     *     name may not be used to endorse or promote products derived     *     from this software without the prior written permission of     *     Broadcom Corporation.    *      *  3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR    *     IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED    *     WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR     *     PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT     *     SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN     *     PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,    *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES     *     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE    *     GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR    *     BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY     *     OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR     *     TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF     *     THE POSSIBILITY OF SUCH DAMAGE.    ********************************************************************* */#ifndef _SBPCI_H_#define _SBPCI_H_/* * Register and bit definitions for the PCI core (OCP ID 0x804) * * The PCI core can be operated in either host or device (aka client) * mode.  Interpretations of some registers are different in the two * modes.  In host mode, the core serves as the PCI host bridge for * the internal CPU.  In device mode, there is an external master * responsible for PCI configuration and the bcm47xx appears as a PCI * device. Some derivative parts the same core but in device mode only. * * In addition to the registers in enumeration space, the PCI core * provides an extended set of PCI configuration registers accessible * only to the system host via PCI configuration cycles. */#define K_PCI_VENDOR_BROADCOM  0x14e4/* PCI Enumeration Space (Section 10.4) */#define R_PCI_CONTROL           0x000    /* not device mode */#define R_BIST_STATUS           0x00C#define R_PCI_ARB_CONTROL       0x010#define R_INT_STATUS            0x020#define R_INT_MASK              0x024#define R_SB_TO_PCI_MAILBOX     0x028#define R_BROADCAST_ADDRESS     0x050#define R_BROADCAST_DATA        0x054#define R_GPIO_INPUT            0x060    /* BCM440x */#define R_GPIO_OUTPUT           0x064    /* BCM440x */#define R_GPIO_OUT_EN           0x068    /* BCM440x */#define R_GPIO_CONTROL          0x06C    /* BCM440x */#define R_SB_TO_PCI_TRANSLATION0 0x100#define R_SB_TO_PCI_TRANSLATION1 0x104#define R_SB_TO_PCI_TRANSLATION2 0x108   /* undocumented for BCM440x *//* SPROM Shadow Area */#define SROM_OFFSET              0x800#define SROM_SIZE                0x100/* PCI Configuration Registers *//* Standard Configuration Registers (Section 10.5.1, see pci.h) *//* Power Managment Capability (Section 10.5.2) */#define PCI_PMC_REG            0x40#define PCI_PMCSR_REG          0x44#define PCI_PMDATA_REG         0x48/* Device Specific Configuration Space Registers (10.5.3) */#define PCI_PCIBAR0WINDOW_REG  0x80#define PCI_PCIBAR1WINDOW_REG  0x84#define PCI_SPROMCONTROL_REG   0x88#define PCI_BAR1BURSTCTRL_REG  0x8C#define PCI_PCIINTSTATUS_REG   0x90#define PCI_PCIINTMASK_REG     0x94#define PCI_SBMAILBOX_REG      0x98#define PCI_BACKPLANEADDR_REG  0xA0#define PCI_BACKPLANEDATA_REG  0xA4/* Extended PCI Configuration Space (XXX reconcile with above) */#define R_PCI_BAR0_WINDOW       0x080#define R_PCI_BAR1_WINDOW       0x084#define R_BAR1_BURST_CONTROL    0x08C#define R_PCI_INT_STATUS        0x090#define R_PCI_INT_MASK          0x094#define R_PCI_TO_SB_MAILBOX     0x098#define R_BACKPLANE_ADDRESS     0x0A0#define R_BACKPLANE_DATA        0x0A4/* PCI Core Enumeration Space Registers *//* PCICTL: PCI Control Register (0x000, R/W) */#define M_PCICTL_OE             _DD_MAKEMASK1(0)        /* PCIResetOutputEn */#define M_PCICTL_RO             _DD_MAKEMASK1(1)        /* PCIResetOutput */#define M_PCICTL_CE             _DD_MAKEMASK1(2)        /* PCIClockOutputEn */#define M_PCICTL_CO             _DD_MAKEMASK1(3)        /* PCIClockOutput *//* PCIARB: PCI Arbiter Control Register (0x010, R/W) */#define M_PCIARB_IA             _DD_MAKEMASK1(0)        /* InternalArbiter */#define M_PCIARB_EA             _DD_MAKEMASK1(1)        /* ExternalArbiter */#define S_PCIARB_PI             2                       /* ParkID */#define M_PCIARB_PI             _DD_MAKEMASK(2,S_PCIARB_PI)#define V_PCIARB_PI(x)          _DD_MAKEVALUE(x,S_PCIARB_PI)#define G_PCIARB_PI(x)          _DD_GETVALUE(x,S_PCIARB_PI,M_PCIARB_PI)#define K_ARB_PARK_GNT0         0x0#define K_ARB_PARK_GNT1         0x1#define K_ARB_PARK_INT          0x2#define K_ARB_PARK_LAST         0x3/* ISR: Interrupt Status Register (0x020, R/W) *//* IMR: Interrupt Mask Register   (0x024, R/W) */#define M_PCIINT_PA             _DD_MAKEMASK1(0)        /* PCIIntA */#define M_PCIINT_PB             _DD_MAKEMASK1(1)        /* PCIIntB */#define M_PCIINT_PS             _DD_MAKEMASK1(2)        /* PCISerr */#define M_PCIINT_PP             _DD_MAKEMASK1(3)        /* PCIPerr */#define M_PCIINT_PM             _DD_MAKEMASK1(4)        /* PCIPME */#define S_PCIINT_F0             8                       /* Function0 */#define M_PCIINT_F0             _DD_MAKEMASK(2,S_PCIINT_F0)#define V_PCIINT_F0(x)          _DD_MAKEVALUE(x,S_PCIINT_F0)#define G_PCIINT_F0(x)          _DD_GETVALUE(x,S_PCIINT_F0,M_PCIINT_F0)#define S_PCIINT_F1             10                      /* Function1 */#define M_PCIINT_F1             _DD_MAKEMASK(2,S_PCIINT_F1)#define V_PCIINT_F1(x)          _DD_MAKEVALUE(x,S_PCIINT_F1)#define G_PCIINT_F1(x)          _DD_GETVALUE(x,S_PCIINT_F1,M_PCIINT_F1)#define S_PCIINT_F2             12                      /* Function2 */#define M_PCIINT_F2             _DD_MAKEMASK(2,S_PCIINT_F2)#define V_PCIINT_F2(x)          _DD_MAKEVALUE(x,S_PCIINT_F2)#define G_PCIINT_F2(x)          _DD_GETVALUE(x,S_PCIINT_F2,M_PCIINT_F2)#define S_PCIINT_F3             14                      /* Function3 */#define M_PCIINT_F3             _DD_MAKEMASK(2,S_PCIINT_F3)#define V_PCIINT_F3(x)          _DD_MAKEVALUE(x,S_PCIINT_F3)#define G_PCIINT_F3(x)          _DD_GETVALUE(x,S_PCIINT_F3,M_PCIINT_F3)/* SBMBOX: System Backplane to PCI Mailbox Register (0x028, WO) */#define S_SBMBOX_F0             8                      /* Function0 */#define M_SBMBOX_F0             _DD_MAKEMASK(2,S_SBMBOX_F0)#define V_SBMBOX_F0(x)          _DD_MAKEVALUE(x,S_SBMBOX_F0)#define G_SBMBOX_F0(x)          _DD_GETVALUE(x,S_SBMBOX_F0,M_SBMBOX_F0)#define S_SBMBOX_F1             10                      /* Function1 */#define M_SBMBOX_F1             _DD_MAKEMASK(2,S_SBMBOX_F1)#define V_SBMBOX_F1(x)          _DD_MAKEVALUE(x,S_SBMBOX_F1)#define G_SBMBOX_F1(x)          _DD_GETVALUE(x,S_SBMBOX_F1,M_SBMBOX_F1)#define S_SBMBOX_F2             12                      /* Function2 */#define M_SBMBOX_F2             _DD_MAKEMASK(2,S_SBMBOX_F2)#define V_SBMBOX_F2(x)          _DD_MAKEVALUE(x,S_SBMBOX_F2)#define G_SBMBOX_F2(x)          _DD_GETVALUE(x,S_SBMBOX_F2,M_SBMBOX_F2)#define S_SBMBOX_F3             14                      /* Function3 */#define M_SBMBOX_F3             _DD_MAKEMASK(2,S_SBMBOX_F3)#define V_SBMBOX_F3(x)          _DD_MAKEVALUE(x,S_SBMBOX_F3)#define G_SBMBOX_F3(x)          _DD_GETVALUE(x,S_SBMBOX_F3,M_SBMBOX_F3)/* SBXLAT: System Backplane to PCI Translation 0 Register (0x100, R/W) *//* SBXLAT: System Backplane to PCI Translation 1 Register (0x104, R/W) *//* SBXLAT: System Backplane to PCI Translation 2 Register (0x108, R/W) */#define S_SBXLAT_AT             0                       /* AccessType */#define M_SBXLAT_AT             _DD_MAKEMASK(2,S_SBXLAT_AT)#define V_SBXLAT_AT(x)          _DD_MAKEVALUE(x,S_SBXLAT_AT)#define G_SBXLAT_AT(x)          _DD_GETVALUE(x,S_SBXLAT_AT,M_SBXLAT_AT)#define K_AT_RW                 0#define K_AT_IO_RW              1#define K_AT_CFG0_RW            2#define K_AT_CFG1_RW            3#define M_SBXLAT_PE             _DD_MAKEMASK1(2)        /* PrefetchEn */#define M_SBXLAT_WB             _DD_MAKEMASK1(3)        /* WriteBurstEn *//* SBXLAT0,1 span 64MB */#define S_SBXLAT_UA             26                      /* UpperAddress */#define M_SBXLAT_UA             _DD_MAKEMASK(6,S_SBXLAT_UA)#define V_SBXLAT_UA(x)          _DD_MAKEVALUE(x,S_SBXLAT_UA)#define G_SBXLAT_UA(x)          _DD_GETVALUE(x,S_SBXLAT_UA,M_SBXLAT_UA)/* SBXLAT2 spans 1GB */#define S_SBXLAT2_UA            30                      /* UpperAddress */#define M_SBXLAT2_UA            _DD_MAKEMASK(2,S_SBXLAT2_UA)#define V_SBXLAT2_UA(x)         _DD_MAKEVALUE(x,S_SBXLAT2_UA)#define G_SBXLAT2_UA(x)         _DD_GETVALUE(x,S_SBXLAT2_UA,M_SBXLAT2_UA)/* Device Specific PCI Configuration Registers *//* SPROMCTL: SPROM Control Register (0x88, R/W) */#define S_SPROMCTL_SS           0                       /* SPROMSize */#define M_SPROMCTL_SS           _DD_MAKEMASK(2,S_SPROMCTL_SS)#define V_SPROMCTL_SS(x)        _DD_MAKEVALUE(x,S_SPROMCTL_SS)#define G_SPROMCTL_SS(x)        _DD_GETVALUE(x,S_SPROMCTL_SS,M_SPROMCTL_SS)#define K_SPROM_SIZE_128        0#define K_SPROM_SIZE_512        1#define K_SPROM_SIZE_2048       2#define M_SPROMCTL_SB           _DD_MAKEMASK1(2)        /* SPROMBlank */#define M_SPROMCTL_SL           _DD_MAKEMASK1(3)        /* SPROMLocked */#define M_SPROMCTL_SW           _DD_MAKEMASK1(4)        /* SPROMWriteEn *//* BAR1BURST: Bar 1 Burst Control Register (0x8C, R/W) */#define M_BAR1BURST_WB          _DD_MAKEMASK1(0)        /* WriteBufferEn */#define M_BAR1BURST_PE          _DD_MAKEMASK1(1)        /* PrefetchEn */#define M_BAR1BURST_ET          _DD_MAKEMASK1(4)        /* TransactionTimer *//* SBISR: PCI Interrupt Status Register (0x90, R/W) *//* SBIMR: PCI Interrupt Mask Register   (0x94, R/W) */#define S_SBINT_BM              0                       /* SBMailbox */#define M_SBINT_BM              _DD_MAKEMASK(2,S_SBINT_BM)#define V_SBINT_BM(x)           _DD_MAKEVALUE(x,S_SBINT_BM)#define G_SBINT_BM(x)           _DD_GETVALUE(x,S_SBINT_BM,M_SBINT_BM)#define M_SBINT_SB               _DD_MAKEMASK1(2)        /* SBError *//* The following on PCI 2.3 versions (Rev >= 6) only. */#define S_SBINT_IM              8                       /* SBIntMask */#define M_SBINT_IM              _DD_MAKEMASK(8,S_SBINT_IM)#define V_SBINT_IM(x)           _DD_MAKEVALUE(x,S_SBINT_IM)#define G_SBINT_IM(x)           _DD_GETVALUE(x,S_SBINT_IM,M_SBINT_IM)/* PCIMBOX: PCI to System Backplane Mailbox Register (0x98, WO) */#define S_PCIMBOX_BM            0                       /* SBMailbox */#define M_PCIMBOX_BM            _DD_MAKEMASK(2,S_PCIMBOX_BM)#define V_PCIMBOX_BM(x)         _DD_MAKEVALUE(x,S_PCIMBOX_BM)#define G_PCIMBOX_BM(x)         _DD_GETVALUE(x,S_PCIMBOX_BM,M_PCIMBOX_BM)#endif /* _SBPCI_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -