linux-3.8.13-gentoo
x86_64


Today I finally received my DFE-580TX multiport server network adapter and was looking forward to seeing it work. But so far I haven't succeeded in setting it up. In modern time it is a piece of antiques. But please don't blame me, I didn't have a free PCIe slot to insert a newer card.

But let's go back to the business. DFE-580TX simply consists of four DL10050C MAC/PHY microcontrollers connected to one Intel S21152BB PCI-to-PCI bridge. And my problem consists in that I cannot make the bridge work. Here is lspci printout:

Code:
[root@ktulhu]:0:/home/krokoziabla# lspci -knn
........................
02:00.0 PCI bridge [0604]: Integrated Technology Express, Inc. Device [1283:8892] (rev 10)
03:00.0 PCI bridge [0604]: Intel Corporation 21152 PCI-to-PCI Bridge [8086:b152]
03:01.0 RAID bus controller [0104]: Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller [1095:3114] (rev 02)
	Subsystem: Silicon Image, Inc. Device [1095:7114]
	Kernel driver in use: sata_sil
03:02.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
03:02.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
03:02.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:00.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:00.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:00.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:01.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:01.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:01.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:02.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:02.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:02.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:03.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:03.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:03.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:04.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:04.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:04.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:05.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:05.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:05.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:06.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:06.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:06.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:07.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:07.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:07.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:08.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:08.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:08.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:09.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:09.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:09.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:0a.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0a.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0a.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:0b.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0b.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0b.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:0c.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0c.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0c.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:0d.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0d.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0d.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:0e.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0e.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0e.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:0f.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0f.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:0f.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:10.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:10.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:10.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:11.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:11.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:11.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:12.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:12.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:12.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:13.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:13.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:13.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:14.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:14.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:14.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:15.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:15.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:15.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:16.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:16.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:16.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:17.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:17.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:17.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:18.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:18.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:18.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:19.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:19.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:19.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:1a.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1a.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1a.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:1b.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1b.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1b.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:1c.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1c.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1c.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:1d.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1d.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1d.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:1e.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1e.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1e.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
04:1f.0 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1f.1 Serial controller [0700]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:1000]
	Kernel driver in use: serial
04:1f.2 Parallel controller [0701]: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller [9710:9865]
	Subsystem: Device [a000:2000]
05:00.0 PCI bridge [0604]: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge [10b5:8112] (rev aa)
............................................
You can see that the bridge is present but is not served by any driver. Also in the printout the four Ethernet DL100C50 Ethernet controllers are absent which quite logical. And probably you may have noticed those 96 instances of MosChip Semiconductor device on bus 04. Actually they are false devices. In fact there are only 3 real devices at bus 03 (2 serial ports + 1 parallel). So it appears the Intel bridge drives the kernel mad a bit.

I spent quite a lot of time trying to understand which driver is needed for it. But still I don't have an answer.

As far as I have understood PCI bridges are controlled from
Code:
BUS options (PCI etc.)  --->
menu in 'make menuconfig'. But I fail to find there any explicit mention about different kinds of bridges. For example. In my motherboard there are other PCI bridges:
Code:
00:1c.2 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 [8086:1c14] (rev b5)
	Kernel driver in use: pcieport
And you can see that the bridge is controlled by pcieport driver. But the driver is enabled by this menu item:
Code:
BUS options (PCI etc.)  --->[*] PCI support [*]   PCI Express support
And there is no hint about the supported bus controller/bus bridges.

I tried to grep the kernel sources against 21152 word. The only mention related to the case was in 'include/linux/pci_ids.h' header:
Code:
#define PCI_DEVICE_ID_INTEL_S21152BB    0xb152
But the macro isn't used anywhere in the code. May it mean that the device is not supported by the kernel any longer?

I tried to run Ubuntu LiveCD to see which driver it would propose for the bridge. Ubuntu decided to use shpchp driver for all PCI bridges I had. But from one hand side it didn't help because despite lspci told me that the bridge was controlled by the driver Ubuntu didn't find the four Ethernet controllers and there also were 96 false devices. From the other hand shpchp driver is needed for hot-plugable PCI devices AFAIU but not for bridges...

What else?.. There are also two more PCI bridges on my PC which are not recognized by the kernel:
Code:
02:00.0 PCI bridge [0604]: Integrated Technology Express, Inc. Device [1283:8892] (rev 10)
05:00.0 PCI bridge [0604]: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge [10b5:8112] (rev aa)
Grep through the sources shows that the latter one is somehow connected with my sound card, probably it resides on it. But the card is identified as a separate device controlled by a separate driver...

I do not know where I should move father. Can anyone suggest how should I configure my kernel to make the bridges work?

Thanks in advance.