Date: Fri, 22 Nov 2002 12:27:35 -0500 From: Jake Burkholder <jake@locore.ca> To: Oliver Blasnik <oliver.blasnik@de.tiscali.com> Cc: "Small, Jim" <jim.small@eds.com>, freebsd-sparc@FreeBSD.ORG Subject: Re: Fw: [PATCH] HME (Happy Meal Ethernet) and T1/105... Message-ID: <20021122122735.H12431@locore.ca> In-Reply-To: <012b01c2923f$e9637700$1d0a310a@de.tiscali.com>; from oliver.blasnik@de.tiscali.com on Fri, Nov 22, 2002 at 04:57:51PM %2B0100 References: <8AA870658244D4119AF600508BDF0A3612D79095@usahm014.exmi01.exch.eds.com> <012b01c2923f$e9637700$1d0a310a@de.tiscali.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Apparently, On Fri, Nov 22, 2002 at 04:57:51PM +0100,
Oliver Blasnik said words to the effect of;
> Hi Jim,
>
> > Does the PCI qfe card work correctly on UltraSparcs? Right now, it
> doesn't
> > on OpenBSD--probably because of a bridge issue:
>
> I have seen such a card somewhere at our lab, I'll check it out asap.
>
> > >> I think the same sort of PCI-PCI bridge fun happens with the DEC
> > >> quad-2114x cards as well, and probably also the Dlink clones, so it
> > >> isn't real suprising the Sun qfe-pci is similar.
>
> This is good to know, as the single PCI HME doesn't work... So, if
> the QFE doesn't, too, this probably is a global brigde/IRQ Problem.
I have one of these cards which Thomas and I got to work this week,
there are some issues with pci interrupt routing. We're in code
freeze right now so its taking a little while to get stuff committed
though. I think this patch should make it work unless I'm forgetting
something else that needed to change. It will break pci on some machines
though.
Jake
Index: pci/ofw_pci.c
===================================================================
RCS file: /home/ncvs/src/sys/sparc64/pci/ofw_pci.c,v
retrieving revision 1.5
diff -u -r1.5 ofw_pci.c
--- pci/ofw_pci.c 7 Nov 2002 16:07:46 -0000 1.5
+++ pci/ofw_pci.c 22 Nov 2002 17:06:32 -0000
@@ -64,7 +64,7 @@
};
#define OPQ_NENT (sizeof(ofw_pci_quirks) / sizeof(ofw_pci_quirks[0]))
-static int pci_quirks;
+static int pci_quirks = OPQ_NEED_SWIZZLE;
#define OFW_PCI_PCIBUS "pci"
#define PCI_BUS_MAP_INC 10
@@ -88,7 +88,8 @@
*/
bcopy(pintptr, &pintr, sizeof(pintr));
bcopy(pregptr, &preg, sizeof(preg));
- intr = (OFW_PCI_PHYS_HI_DEVICE(preg.phys_hi) + pintr) % 4;
+ intr = ((OFW_PCI_PHYS_HI_DEVICE(preg.phys_hi) + pintr + 3) %
+ 4) + 1;
*rintr = malloc(sizeof(intr), M_OFWPROP, M_WAITOK);
bcopy(&intr, *rintr, sizeof(intr));
*terminate = 0;
Index: pci/psycho.c
===================================================================
RCS file: /home/ncvs/src/sys/sparc64/pci/psycho.c,v
retrieving revision 1.18
diff -u -r1.18 psycho.c
--- pci/psycho.c 14 Nov 2002 11:29:16 -0000 1.18
+++ pci/psycho.c 19 Nov 2002 21:06:47 -0000
@@ -673,7 +674,7 @@
/* Hunt thru obio first */
diag = PSYCHO_READ8(sc, PSR_OBIO_INT_DIAG);
for (intrmap = PSR_SCSI_INT_MAP, intrclr = PSR_SCSI_INT_CLR;
- intrmap <= PSR_FFB1_INT_MAP; intrmap += 8, intrclr += 8,
+ intrmap < PSR_FFB1_INT_MAP; intrmap += 8, intrclr += 8,
diag >>= 2) {
im = PSYCHO_READ8(sc, intrmap);
if (INTINO(im) == ino) {
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-sparc" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021122122735.H12431>
