Unprobed PCI bus on VXPro II chipset
welchsm at earthlink.net
Wed Dec 24 14:55:09 PST 2003
As I'm not quite sure where I should be asking for help with this I figured
I'd try shooting the info over to freebsd-hackers (as it seemed the closest
match) and to freebsd-questions (as there seems to be a requirement to
join the list for hackers mail).
I've got an oldish machine (EDO RAM and such) running a VXPro II chipset.
I have successfully configured FreeBSD from 2.2.8 up to 5-CURRENT to run
on this thing but I've never managed to get it to probe and attach anything
on the PCI bus. Here's what I've found and what I've tried.
I believe the motherboard was sold as PCChips kit. Looking up the stats
I find that it was a rebrand of Hint Co. hardware. The PCI IDs are actually
listed in /usr/share/misc/pci_vendors and look like this:
3388 Hint Corp.
0020 HB6 UNIVERSAL PCI-PCI BRIDGE
0021 HB1-SE33 PCI-to-PCI Bridge
8011 VXPro II Chipset CPU to PCI Bridge
8012 VXPro II Chipset PCI to ISA Bridge
8013 VXPro II Chipset EIDE Controller
I found a commit notice online to the linux kernel that contained these
same IDs so it looks like the complete string should be "33880020",
"33880021", etc. I also managed to find this message from *long*
I'm currently running 4.9-RELEASE. The uname -a output is:
FreeBSD 4.9-RELEASE FreeBSD 4.9-RELEASE #5: Tue Oct 14 11:51:28 CDT 2003
Poking around I discovered that pcibus.c no longer contains the code
referenced in the above message (but that didn't stop me). I found
it instead in pci_cfgreg.c and tried adding the explicit set of oldval1 to
zero but no joy. I ended up adding the PCI IDs to both
/usr/src/sys/i386/isa/pcibus.c and also /usr/src/sys/pci/pcisupport.c
in the effort to get the chipset recognized. No go.
When I boot verbose this is all I can get about the PCI bus:
pci_open(1): mode 1 addr port (0x0cf8) is 0x0000ff00
pci_open(1a): mode1res=0x00000000 (0x80000000)
pci_open(1b): mode1res=0x00007020 (0xff000001)
pci_open(2): mode 2 enable port (0x0cf8) is 0xff
Infuriatingly, the BIOS sees everything on the bus and labels the devices
with reasonable categories. Likewise, scanpci (comes with XFree86)
identifies the chipsets and the devices without any trouble at all -- that
at least explains why I've never had any trouble using the PCI video card
under X. The output of scanpci identifies the last three chipsets from
that snipet I put above (from pci_vendors) with the last being labeled as
IDE rather than EIDE (which is correct).
Based on this digging around I'm convinced that there must be some
ugly hack that is posible to get FreeBSD to probe and attach the bus
and devices on it. I've only got this desktop and while I've been able
to live without the PCI USB card, I need to test out a PCI WinTV card.
The whole machine is old enough that isn't feasible to just try swapping
out the motherboard (the case isn't even ATX compatible) and I've not
got the money to just buy something else.
Would anyone be willing to help me get this sorted out? I'm out of
my depth here but to my inexperienced eyes this doesn't look to be
an insurmountable issue.
More information about the freebsd-questions