PCI scan is broken

Stephen Williams (steve@icarus.icarus.com)
Wed, 18 Mar 1998 14:30:22 -0800


I have a device that has multiple functions, and I'm porting its driver
to 2.1 on the alpha. Specifically, the device has on it an i960Rx and I'm
trying to get at function unit 1.

When a PCI device header type field bit 7 is set, the device is a multi-
function device and all the functions must be scanned as well. I see that
the pci.c code does attempt to do that, apparently, but it doesn't seem
to work.

The device I'm looking for is at 0:7.1. As you can see by this pci space
dump, the 0:7.0 device is there, and the header type byte has 0x81, which
is what we would expect for an i960RP (actually its an RD) board. However,
you will note the lack of the 0:7.1 device anywhere.

With 2.0 kernels (even on this very same alpha) the device is located just
fine. I don't have my ix86 box handy, nor do I have 2.1 on it. I have to
move on other tasks right now, otherwise I would try to fix it myself. I will
gladly try things as I get the chance, though.

If it gets really confusing, I can scrape up a logic analyzer and bus
extender and figure out what is going on.

icarus.icarus.com % lspci -x
00:05.0 Ethernet controller: Digital Equipment Corporation DECchip 21041 [Tulip Pass 3] (rev 11)
00: 11 10 14 00 47 01 80 02 11 00 00 02 00 60 00 00
10: 01 90 00 00 00 10 00 0c 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 10 00 00 00 00 00 00 00 00 00 12 01 00 00

00:06.0 SCSI storage controller: Adaptec AIC-7881U
00: 04 90 78 81 57 01 80 02 00 00 00 01 08 20 00 00
10: 01 88 00 00 00 00 00 0c 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 10 01 08 08

00:07.0 PCI bridge: Intel Corporation 80960RP [i960 RP Microprocessor/Bridge] (rev 02)
00: 86 80 60 09 44 01 80 02 02 00 04 06 08 20 81 00
10: 00 00 00 00 00 00 00 00 00 01 01 00 f0 00 80 22
20: f0 ff 00 00 f0 ff 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00

00:08.0 Non-VGA unclassified device: Intel Corporation 82378IB [SIO ISA Bridge] (rev 43)
00: 86 80 84 04 07 00 00 02 43 00 00 00 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00:09.0 VGA compatible controller: S3 Inc. Vision 968
00: 33 53 f0 88 83 00 00 02 00 00 00 03 00 00 00 00
10: 00 00 00 f8 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 01 00 0c 00 00 00 00 00 00 00 00 00 13 01 00 00

00:0b.0 IDE interface: CMD Technology Inc PCI0646 (rev 01)
00: 95 10 46 06 45 00 80 02 01 80 01 01 00 20 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 15 01 02 04

-- 
Steve Williams                "The woods are lovely, dark and deep.
steve@icarus.com              But I have promises to keep,
steve@picturel.com            and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu