Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/include/linux/ssb/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 5 kB image not shown  

Quelle  ssb_driver_pci.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef LINUX_SSB_PCICORE_H_
#define LINUX_SSB_PCICORE_H_

#include <linux/types.h>

struct pci_dev;


#ifdef CONFIG_SSB_DRIVER_PCICORE

/* PCI core registers. */
#define SSB_PCICORE_CTL   0x0000 /* PCI Control */
#define  SSB_PCICORE_CTL_RST_OE  0x00000001 /* PCI_RESET Output Enable */
#define  SSB_PCICORE_CTL_RST  0x00000002 /* PCI_RESET driven out to pin */
#define  SSB_PCICORE_CTL_CLK_OE  0x00000004 /* Clock gate Output Enable */
#define  SSB_PCICORE_CTL_CLK  0x00000008 /* Gate for clock driven out to pin */
#define SSB_PCICORE_ARBCTL  0x0010 /* PCI Arbiter Control */
#define  SSB_PCICORE_ARBCTL_INTERN 0x00000001 /* Use internal arbiter */
#define  SSB_PCICORE_ARBCTL_EXTERN 0x00000002 /* Use external arbiter */
#define  SSB_PCICORE_ARBCTL_PARKID 0x00000006 /* Mask, selects which agent is parked on an idle bus */
#define   SSB_PCICORE_ARBCTL_PARKID_LAST 0x00000000 /* Last requestor */
#define   SSB_PCICORE_ARBCTL_PARKID_4710 0x00000002 /* 4710 */
#define   SSB_PCICORE_ARBCTL_PARKID_EXT0 0x00000004 /* External requestor 0 */
#define   SSB_PCICORE_ARBCTL_PARKID_EXT1 0x00000006 /* External requestor 1 */
#define SSB_PCICORE_ISTAT  0x0020 /* Interrupt status */
#define  SSB_PCICORE_ISTAT_INTA  0x00000001 /* PCI INTA# */
#define  SSB_PCICORE_ISTAT_INTB  0x00000002 /* PCI INTB# */
#define  SSB_PCICORE_ISTAT_SERR  0x00000004 /* PCI SERR# (write to clear) */
#define  SSB_PCICORE_ISTAT_PERR  0x00000008 /* PCI PERR# (write to clear) */
#define  SSB_PCICORE_ISTAT_PME  0x00000010 /* PCI PME# */
#define SSB_PCICORE_IMASK  0x0024 /* Interrupt mask */
#define  SSB_PCICORE_IMASK_INTA  0x00000001 /* PCI INTA# */
#define  SSB_PCICORE_IMASK_INTB  0x00000002 /* PCI INTB# */
#define  SSB_PCICORE_IMASK_SERR  0x00000004 /* PCI SERR# */
#define  SSB_PCICORE_IMASK_PERR  0x00000008 /* PCI PERR# */
#define  SSB_PCICORE_IMASK_PME  0x00000010 /* PCI PME# */
#define SSB_PCICORE_MBOX  0x0028 /* Backplane to PCI Mailbox */
#define  SSB_PCICORE_MBOX_F0_0  0x00000100 /* PCI function 0, INT 0 */
#define  SSB_PCICORE_MBOX_F0_1  0x00000200 /* PCI function 0, INT 1 */
#define  SSB_PCICORE_MBOX_F1_0  0x00000400 /* PCI function 1, INT 0 */
#define  SSB_PCICORE_MBOX_F1_1  0x00000800 /* PCI function 1, INT 1 */
#define  SSB_PCICORE_MBOX_F2_0  0x00001000 /* PCI function 2, INT 0 */
#define  SSB_PCICORE_MBOX_F2_1  0x00002000 /* PCI function 2, INT 1 */
#define  SSB_PCICORE_MBOX_F3_0  0x00004000 /* PCI function 3, INT 0 */
#define  SSB_PCICORE_MBOX_F3_1  0x00008000 /* PCI function 3, INT 1 */
#define SSB_PCICORE_BCAST_ADDR  0x0050 /* Backplane Broadcast Address */
#define  SSB_PCICORE_BCAST_ADDR_MASK 0x000000FF
#define SSB_PCICORE_BCAST_DATA  0x0054 /* Backplane Broadcast Data */
#define SSB_PCICORE_GPIO_IN  0x0060 /* rev >= 2 only */
#define SSB_PCICORE_GPIO_OUT  0x0064 /* rev >= 2 only */
#define SSB_PCICORE_GPIO_ENABLE  0x0068 /* rev >= 2 only */
#define SSB_PCICORE_GPIO_CTL  0x006C /* rev >= 2 only */
#define SSB_PCICORE_SBTOPCI0  0x0100 /* Backplane to PCI translation 0 (sbtopci0) */
#define  SSB_PCICORE_SBTOPCI0_MASK 0xFC000000
#define SSB_PCICORE_SBTOPCI1  0x0104 /* Backplane to PCI translation 1 (sbtopci1) */
#define  SSB_PCICORE_SBTOPCI1_MASK 0xFC000000
#define SSB_PCICORE_SBTOPCI2  0x0108 /* Backplane to PCI translation 2 (sbtopci2) */
#define  SSB_PCICORE_SBTOPCI2_MASK 0xC0000000
#define SSB_PCICORE_PCICFG0  0x0400 /* PCI config space 0 (rev >= 8) */
#define SSB_PCICORE_PCICFG1  0x0500 /* PCI config space 1 (rev >= 8) */
#define SSB_PCICORE_PCICFG2  0x0600 /* PCI config space 2 (rev >= 8) */
#define SSB_PCICORE_PCICFG3  0x0700 /* PCI config space 3 (rev >= 8) */
#define SSB_PCICORE_SPROM(wordoffset) (0x0800 + ((wordoffset) * 2)) /* SPROM shadow area (72 bytes) */

/* SBtoPCIx */
#define SSB_PCICORE_SBTOPCI_MEM  0x00000000
#define SSB_PCICORE_SBTOPCI_IO  0x00000001
#define SSB_PCICORE_SBTOPCI_CFG0 0x00000002
#define SSB_PCICORE_SBTOPCI_CFG1 0x00000003
#define SSB_PCICORE_SBTOPCI_PREF 0x00000004 /* Prefetch enable */
#define SSB_PCICORE_SBTOPCI_BURST 0x00000008 /* Burst enable */
#define SSB_PCICORE_SBTOPCI_MRM  0x00000020 /* Memory Read Multiple */
#define SSB_PCICORE_SBTOPCI_RC  0x00000030 /* Read Command mask (rev >= 11) */
#define  SSB_PCICORE_SBTOPCI_RC_READ 0x00000000 /* Memory read */
#define  SSB_PCICORE_SBTOPCI_RC_READL 0x00000010 /* Memory read line */
#define  SSB_PCICORE_SBTOPCI_RC_READM 0x00000020 /* Memory read multiple */


/* PCIcore specific boardflags */
#define SSB_PCICORE_BFL_NOPCI  0x00000400 /* Board leaves PCI floating */


struct ssb_pcicore {
 struct ssb_device *dev;
 u8 setup_done:1;
 u8 hostmode:1;
 u8 cardbusmode:1;
};

extern void ssb_pcicore_init(struct ssb_pcicore *pc);

/* Enable IRQ routing for a specific device */
extern int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
       struct ssb_device *dev);

int ssb_pcicore_plat_dev_init(struct pci_dev *d);
int ssb_pcicore_pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);


#else /* CONFIG_SSB_DRIVER_PCICORE */


struct ssb_pcicore {
};

static inline
void ssb_pcicore_init(struct ssb_pcicore *pc)
{
}

static inline
int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
       struct ssb_device *dev)
{
 return 0;
}

static inline
int ssb_pcicore_plat_dev_init(struct pci_dev *d)
{
 return -ENODEV;
}
static inline
int ssb_pcicore_pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{
 return -ENODEV;
}

#endif /* CONFIG_SSB_DRIVER_PCICORE */
#endif /* LINUX_SSB_PCICORE_H_ */

Messung V0.5
C=85 H=100 G=92

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.