public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: jamal <hadi@cyberus.ca>
To: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Greg KH <greg@kroah.com>, Linus Torvalds <torvalds@transmeta.com>,
	Jeff Garzik <jgarzik@pobox.com>, "" <kuznet@ms2.inr.ac.ru>,
	"" <david.knierim@tekelec.com>,
	Robert Olsson <Robert.Olsson@data.slu.se>,
	Donald Becker <becker@scyld.com>,
	"" <linux-kernel@vger.kernel.org>, "" <alexander@netintact.se>
Subject: PCI init issues
Date: Sun, 2 Mar 2003 12:44:06 -0500 (EST)	[thread overview]
Message-ID: <20030302121050.F61365@shell.cyberus.ca> (raw)



Seems like Linux 2.4.x has PCI initialization issues when you start
having funky PCI bus setups. Now before you point a finger at
the BIOs please read on...
In other words Linux needs a lot of help from the bios and if it doesnt
get it things get messed up. When the bios initializes _all_ the mp table
or acpi stuff things work great.
For example Linux doesnt seem to be very smart about things like second
level pci bridges...

Example:
------
]0;root@localhost:~[root@localhost root]# lspci -tv
-[00]-+-00.0  Intel Corp. e7500 DRAM Controller
      +-00.1  Intel Corp. e7500 DRAM Controller Error Reporting
      +-02.0-[01-04]--+-1c.0  Intel Corp. 82870P2 P64H2 I/OxAPIC
      |               +-1d.0-[02]--
      |               +-1e.0  Intel Corp. 82870P2 P64H2 I/OxAPIC
      |               \-1f.0-[03-04]----01.0-[04]--+-04.0  Digital
Equipment Corporation DECchip 21142/43
      |                                            +-05.0  Digital
Equipment Corporation DECchip 21142/43
      |                                            +-06.0  Digital
Equipment Corporation DECchip 21142/43
      |                                            \-07.0  Digital
Equipment Corporation DECchip 21142/43
      +-03.0-[05-07]--+-1c.0  Intel Corp. 82870P2 P64H2 I/OxAPIC
      |               +-1d.0-[06]--+-01.0  Intel Corp.: Unknown device
100f
      |               |            +-02.0  Intel Corp.: Unknown device
1010
      |               |            \-02.1  Intel Corp.: Unknown device
1010
      |               +-1e.0  Intel Corp. 82870P2 P64H2 I/OxAPIC
      |               \-1f.0-[07]--
      +-1d.0  Intel Corp. 82801CA/CAM USB (Hub
      +-1d.1  Intel Corp. 82801CA/CAM USB (Hub
      +-1d.2  Intel Corp. 82801CA/CAM USB (Hub
      +-1e.0-[08]--+-01.0  ATI Technologies Inc Rage XL
      |            +-02.0  Intel Corp. 82557/8/9 [Ethernet Pro 100]
      |            \-03.0  Intel Corp. 82557/8/9 [Ethernet Pro 100]
      +-1f.0  Intel Corp. 82801CA ISA Bridge (LPC)
      +-1f.1  Intel Corp. 82801CA IDE U100
      \-1f.3  Intel Corp. 82801CA/CAM SMBus
-------------

See those DECchip 21142/43 devices? They are about 3 layers down
from the root and theyll never work properly unless the BIOS is capable
of initializing everything. The first of the 4 devices will receive
interupts correctly, the rest dont.

-------
]0;root@localhost:~[root@localhost root]# cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3
  0:     441198     441826     442361     439749    IO-APIC-edge  timer
  1:          1          0          0          1    IO-APIC-edge  keyboard
  2:          0          0          0          0          XT-PIC  cascade
  4:         75         78         82         52    IO-APIC-edge  serial
  8:          1          0          0          0    IO-APIC-edge  rtc
 14:       2000       1787       1960       1535    IO-APIC-edge  ide0
 15:       1860       1750       2021       1603    IO-APIC-edge  ide1
 17:       3396       3440       3400       3415   IO-APIC-level  eth0
 18:          6          2          2          3   IO-APIC-level  eth1
 24:          5          3          5          3   IO-APIC-level  eth5,
eth6, eth7, eth8
 96:        426        424        425        424   IO-APIC-level  eth2
100:        427        424        424        425   IO-APIC-level  eth3
101:        425        424        425        423   IO-APIC-level  eth4
NMI:          0          0          0          0
LOC:    1762876    1762850    1762971    1762970
ERR:          0
MIS:          0
--------------

Interupt routing as can be seen above is really messed for that device.

The workaround is to move the board so the the DECchip 21142/43 devices
are at a depth not to exceed 3.

Seems this has been an ongoing problem on Linux.
http://www.tux.org/hypermail/linux-tulip/2002-Aug/0000.html

The above is the same motherboard as mentioned in the thread above except
the two processors have hyperthreading capability.

Q1: How do we resolve this other than moving around boards?
Q2: Should we really be dependent on bios this bad?
According to that thread things dont work on the BSDs either but work fine
on WinXP (shudder). Does this mean winxp doesnt depend on BIOS?
Should we really be dependent on the BIOS this much?
Shouldnt things like second level pci bridge be part of Linux discovery?

cheers,
jamal

             reply	other threads:[~2003-03-02 17:34 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-02 17:44 jamal [this message]
2003-03-03 12:14 ` PCI init issues Ivan Kokshaysky
2003-03-03 16:01   ` David S. Miller
2003-03-04  1:51     ` jamal
2003-03-04  1:48   ` jamal
2003-03-04 15:28     ` Ivan Kokshaysky
2003-03-04 18:16   ` Donald Becker
2003-03-04 22:30     ` Ivan Kokshaysky
2003-03-04 22:59       ` kuznet
2003-03-04 23:36       ` Donald Becker
  -- strict thread matches above, loose matches on Subject: below --
2003-03-04 16:26 david.knierim
2003-03-04 16:41 ` Linus Torvalds
2003-03-04 17:54 ` Ron Arts
2003-03-04 18:26   ` Ivan Kokshaysky
2003-03-04 18:54     ` Linus Torvalds
2003-03-04 19:37       ` Ron Arts
2003-03-04 22:46         ` Zwane Mwaikambo
2003-03-04 23:22           ` Ron Arts
2003-03-04 23:58             ` Zwane Mwaikambo
2003-03-04 22:46       ` Ivan Kokshaysky
2003-03-04 23:12         ` kuznet
2003-03-05 11:06           ` Ivan Kokshaysky
2003-03-05 13:54       ` Ron Arts
2003-03-04 21:50 david.knierim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030302121050.F61365@shell.cyberus.ca \
    --to=hadi@cyberus.ca \
    --cc=Robert.Olsson@data.slu.se \
    --cc=alexander@netintact.se \
    --cc=becker@scyld.com \
    --cc=david.knierim@tekelec.com \
    --cc=greg@kroah.com \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jgarzik@pobox.com \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox