# PCI bridges are not recognized by the kernel

## krokoziabla

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:

```
[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 

```
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:

```
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:

```
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:

```
#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:

```
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.

----------

## NeddySeagoon

krokoziabla,

Help the kernel to find your buses.  Add

```
lastbus=N
```

where N is the last pcibus you want the kernel to search for.

Normally, the kernel gets help from the BIOS but your card may not have a BIOS, so the the kernel may not see the buesses on the far side of the bridge.

See /usr/src/linux/Documentation/kernel-parameters.txt

----------

## roarinelk

Bridges like the ones on your card are normally transparent and don't need a driver to work.

Are you certain your pci card(s) (and pci slots on the board) are okay?  When my 3c905 card died

it was detected as 16 pci devices by the kernel.  To me your main problem seems to be a 

failing PCI device which disrupts the others.

Experiment with the "pci" kernel parameter a bit.  See the "pci=option" Section in linux/Documentation/kernel-parameters.txt

try at least "pci=conf1" conf2, bios, noacpi

----------

## krokoziabla

roarinelk & NeddySeagoon, thank you for your replies.

I'm glad to learn that the bridge is uncommanded, I do not need to bother about drivers. And it seems all the three bridges are.

I've done some tests of the kernel with pci parameter values you suggested and also some others. No effect.

Also I've made two tests against Windows. At first I put the board into another PC with Windows. The bridge was identified without a problem and I saw the four Ethernet adapters. So I can consider the board healthy. The next thing I did was taking the hard disk from the other PC and connecting it to my Gentoo PC. That way I wanted to see how Windows would identify the bridge in the original PCI topology. And to my grief the bridge wasn't correctly identified and I saw the same 96 false devices.

So it may be the problem of the compatibility between my motherboard and the network card although both of them comply with PCI 2.2 standard. BTW, the slot also seems to be healthy because before this network card another NIC worked quite well in it.

I've checked BIOS options and it looks like there is not that much to control behaviour of PCIe/PCI buses.

The last suspicious thing that worries me is the PCI topology of my system. Recently I've known that lspci can be run with -tv options.  :Smile: 

```

-[0000:00]-+-00.0  Intel Corporation 2nd Generation Core Processor Family DRAM Controller

           +-01.0-[01]--+-00.0  Advanced Micro Devices [AMD] nee ATI Barts PRO [Radeon HD 6850]

           |            \-00.1  Advanced Micro Devices [AMD] nee ATI Barts HDMI Audio [Radeon HD 6800 Series]

           +-02.0  Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller

           +-16.0  Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1

           +-19.0  Intel Corporation 82579V Gigabit Network Connection

           +-1a.0  Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2

           +-1c.0-[02-04]----00.0-[03-04]--+-00.0-[04]--+-00.0  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

           |                               |            +-00.1  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

           |                               |            +-00.2  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

......................... 91 times .......................................................................................................................

           |                               |            +-1f.0  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

           |                               |            +-1f.1  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

           |                               |            \-1f.2  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

           |                               +-01.0  Silicon Image, Inc. SiI 3114 [SATALink/SATARaid] Serial ATA Controller

           |                               +-02.0  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

           |                               +-02.1  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

           |                               \-02.2  MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

           +-1c.2-[05-06]----00.0-[06]----04.0  C-Media Electronics Inc CMI8788 [Oxygen HD Audio]

           +-1c.3-[07]----00.0  NEC Corporation uPD720200 USB 3.0 Host Controller

```

From it I can see that the bus number 04 on which the Ethernet controllers are supposed to be is actually behind not one but three bridges: the first is PCIe Root Port (I have no idea what it is) (bus 00 to bus 02 ) then iTE 8892 PCIe-to-PCI bridge (bus 02 to bus 03) and finally my Intel S21152BB PCI-to-PCI bridge (bus 03 to 04).

I do not know what structure a valid PCI hierarchy should have but can the problem lie in the depth of nesting? Is it limited by two and there only should be primary and secondary buses?

----------

## krokoziabla

I have one more idea. It looks like the bridge is configured wrongly. If I understand rightly the configuration address space of a PCI device determines which memory and i/o address space regions are used by the device. It looks like the regions of S21152BB and  iTE 8892 overlap. At least this would explain why there are 96 false devices and why they pretend to be devices from bus 03.

Does the kernel allow manual configuration of a PCI device? Probably I'll be able to configure the bridge myself if the kernel cannot do this automatically.

----------

## roarinelk

If possible, try the latest -git sources, and make a problem report to linux-kernel@vger.kernel.org  and linux-pci@vger.kernel.org

Include full lspci and dmesg output, and if possible also a dump of all memory regions used by the 4 nics.

----------

## krokoziabla

roarinelk

Good, I'll follow your advise but maybe later. I want to get to the bottom of PCI configuration mechanism myself first.

So if somebody is interested in this topic I've just find out (from http://read.pudn.com/downloads13/doc/52518/PCI-to-PCI%20Bridge%20Architecture.pdf) that PCI-to-PCI bridges can be composed into a multi-level hierarchy. Thus my hardware configuration can be in theory compatible.

Let's see what I'll learn next.

----------

