Subject: Re: PCI enumeration (was: ne2000 PCMCIA not working as PCMCIA either.)
To: Rafal Boni <rafal@mediaone.net>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: current-users
Date: 10/18/1999 10:38:13
On Sun, 17 Oct 1999 21:34:21 -0400 
 Rafal Boni <rafal@mediaone.net> wrote:

 > -> Are Uchiyama-san's PCI-BIOS patches in
 > ->  ftp://f77.nop.or.jp/users/uch/PCI/PCIBIOS-NetBSD-1.4L-991017.patch.gz
 > -> a useful fix for any of this -- at least on i386?
 > 
 > I've just downloaded Uchiyama-san's patches and it fixed both the no-IRQ-
 > for-CardBus-bridge and the no-IO-space-mapped-for-UHCI problems.  In fact,
 > I'm quite stoked that my configuration works A-OK without any hardcoding
 > of interrupts in the CardBus bridge code or the UHCI code (actually, I had
 > to both force IO-space to 'on' and fudge in an interrupt to get my UHCI to
 > work before Uchiyama-san's patches).
 > 
 > FYI, this is on a DEC HiNote Vp765 (Phoenix NoteBIOS, TI1131 CBB).

Ok, so I'm basically convinced that the code that configures ("enumerates")
the PCI bus needs to be machine-dependent.

i386 needs to use the PCI BIOS.

Power Macintosh needs to use the OpenFirmware nodes (many versions of the
Macintosh firmware program the PCI bus incorrectly in some cases, and
software needs to patch it up).

Alpha systems need to know various things about a specific model's
interrupt routing, on-board devices, etc.

...oh yes, and all of this needs to be done *before* autoconfiguration
happens, because you might reprogram the suboridnate bus number of
a PCI-PCI, which would affect configuration cycles for child devices.

...I'm really failing to see how this can be done in a sufficiently
machine-independent manner.

        -- Jason R. Thorpe <thorpej@nas.nasa.gov>