diff options
author | imp <imp@FreeBSD.org> | 2001-08-29 20:33:08 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2001-08-29 20:33:08 +0000 |
commit | 4b3368b6ec7e3342c5136bceac21cfa29e194f6a (patch) | |
tree | 97c316a01e81c83bdf1a1eed9602231ea23e079b /sys/dev/pccbb | |
parent | e0090eb6468143b2367bf5727b7b1e2f2760f92e (diff) | |
download | FreeBSD-src-4b3368b6ec7e3342c5136bceac21cfa29e194f6a.zip FreeBSD-src-4b3368b6ec7e3342c5136bceac21cfa29e194f6a.tar.gz |
First, The Ricoh 5C47x chips don't have the disable the 3e0 bits.
Second, the TI 1130 need to have the PCI_INTR set, not cleared.
This gets Soren's machine working with NEWCARD again.
# The whole initialization is a mess and needs to be organized ala OLDCARD.
Diffstat (limited to 'sys/dev/pccbb')
-rw-r--r-- | sys/dev/pccbb/pccbb.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/sys/dev/pccbb/pccbb.c b/sys/dev/pccbb/pccbb.c index 2827eeb..4173c41 100644 --- a/sys/dev/pccbb/pccbb.c +++ b/sys/dev/pccbb/pccbb.c @@ -331,7 +331,6 @@ pccbb_chipinit(struct pccbb_softc *sc) /* disable Legacy IO */ switch (sc->sc_chipset) { case CB_RF5C46X: - case CB_RF5C47X: PCI_MASK_CONFIG(sc->sc_dev, PCCBBR_BRIDGECTRL, & ~(PCCBBM_BRIDGECTRL_RL_3E0_EN | PCCBBM_BRIDGECTRL_RL_3E2_EN), 2); @@ -348,12 +347,19 @@ pccbb_chipinit(struct pccbb_softc *sc) | PCCBBM_BRIDGECTRL_WRITE_POST_EN, 2); + /* XXX this should be a function table, ala OLDCARD. */ switch (sc->sc_chipset) { case CB_TI113X: - PCI_MASK2_CONFIG(sc->sc_dev, PCCBBR_CBCTRL, - & ~PCCBBM_CBCTRL_113X_PCI_INTR, - | PCCBBM_CBCTRL_113X_PCI_CSC | - PCCBBM_CBCTRL_113X_PCI_IRQ_EN, 1); + /* + * The TI 1030, TI 1130 and TI 1131 all require another bit + * be set to enable PCI routing of interrupts, and then + * a bit for each of the CSC and Function interrupts we + * want routed. + */ + PCI_MASK_CONFIG(sc->sc_dev, PCCBBR_CBCTRL, + | PCCBBM_CBCTRL_113X_PCI_INTR | + PCCBBM_CBCTRL_113X_PCI_CSC | PCCBBM_CBCTRL_113X_PCI_IRQ_EN, + 1); PCI_MASK_CONFIG(sc->sc_dev, PCCBBR_DEVCTRL, & ~(PCCBBM_DEVCTRL_INT_SERIAL | PCCBBM_DEVCTRL_INT_PCI), 1); |