Bernd,

The problem is that the lca gives totally bogus intline values that
aren't 255; so the MI code thinks they are valid & never calls the 
platform specific inter_route code to correct them.

Please try the appended fix, which is basically what we do on x86 SMP.

Matt Dodd said he had a better idea, but it doesn't look like he had
time to implement it.  Mike Smith suggested it, and if it works for you,
I'll commit it.

Drew

------------------------------------------------------------------------------
Andrew Gallatin, Sr Systems Programmer  http://www.cs.duke.edu/~gallatin
Duke University                         Email: [EMAIL PROTECTED]
Department of Computer Science          Phone: (919) 660-6590


Index: alpha/pci//lca_pci.c
===================================================================
RCS file: /home/ncvs/src/sys/alpha/pci/lca_pci.c,v
retrieving revision 1.9
diff -u -r1.9 lca_pci.c
--- alpha/pci//lca_pci.c        2000/12/08 22:11:23     1.9
+++ alpha/pci//lca_pci.c        2001/03/16 21:38:02
@@ -34,6 +34,8 @@
 #include <machine/bus.h>
 #include <sys/rman.h>
 #include <pci/pcivar.h>
+#include <pci/pcireg.h>
+#include <machine/cpuconf.h>
 #include <machine/swiz.h>
 #include <machine/md_var.h>
 
@@ -134,6 +136,12 @@
 lca_pcib_read_config(device_t dev, u_int b, u_int s, u_int f,
                     u_int reg, int width)
 {
+       if ((reg == PCIR_INTLINE) && (width == 1)) {
+               int pin;
+
+               pin = lca_pcib_read_config(dev, b, s, f, PCIR_INTPIN, 1);
+               return (platform.pci_intr_route(NULL, dev, pin));
+       }
        switch (width) {
        case 1:
                CFGREAD(b, s, f, reg, BYTE, u_int8_t);



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to