Skip site navigation (1)Skip section navigation (2)
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>