Date: Thu, 31 May 2001 10:36:29 -0700 (PDT) From: John Baldwin <jhb@FreeBSD.org> To: gallatin@FreeBSD.org Cc: alpha@FreeBSD.org Subject: PCI Interrupt Routing Broken on my Miata Message-ID: <XFMail.010531103629.jhb@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
> gallatin 2001/05/27 15:22:03 PDT > > Modified files: > sys/dev/pci pci.c > sys/alpha/pci pcibus.c > Log: > finally fix intr routing on alphas such as the as500 after months of > breakage: > > - call PCIB_ROUTE_INTERRUPT() regardless of how valid the intline looks. > Some alphas leave garbage in the intline and leave the intr mapping > to OS platform support routines that map slots/buses to intlines > - Down in the alpha pci code, first try platform.pci_intr_route() and > if it doesn't exist or returns garbage, just read the intline out of > config space. > > tested on AS500 (garbage in intline) and UP1000 (PC-like, intline is valid) > > Note that a nice little hack like the APIC_IO section of pci_cfgregread() > is not workable. This is because the calling interface for > alpha_pci_route_interrupt() requires us to figure out the bus/slot/etc > from a device_t. At pci_read_device() time, we don't have a device_t > for the bus/slot/func in question. > > Revision Changes Path > 1.177 +6 -2 src/sys/dev/pci/pci.c > 1.29 +8 -3 src/sys/alpha/pci/pcibus.c This seems to have broken my Miata. Without this the two PCI devices I have (dc0 and isp0) get "IRQ's" 0 and 16 respectively. With this change, both devices are assigned to IRQ 0, except that I think basically isp is still using 16 in hardware, but the OS is just listening on the wrong vector. isp0 keeps timing out during the SCSI probe with mailbox errors and what not. I'll try adding in some printf's to the code either later today or tomorrow to try and narrow it down however. -- John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010531103629.jhb>