Unprobed PCI bus on VXPro II chipset
John Baldwin
jhb at FreeBSD.org
Fri Dec 26 09:00:57 PST 2003
On 24-Dec-2003 Sean Welch wrote:
> 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).
>
> 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*
> ago:
>
> http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=Pine.BSF.3.96.990120135600.282
> 21A-100000_gate1.ilhadamagia.com.br%40ns.sol.net&rnum=5&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-
> 8%26oe%3DUTF-8%26q%3Dfreebsd%2Bvxpro%26btnG%3DGoogle%2BSearch
>
> 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
> root@:/usr/src/sys/compile/WARPPHYS i386
What I'd like to do is get 5.x working first and then MFC the fix if that is ok.
> 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
Well, your BIOS seems to be broken. Maybe. Can you send me the output
of scanpci -v? I'm curious what method it uses to access PCI config space.
Also, can you try this change:
Index: pci_cfgreg.c
===================================================================
RCS file: /usr/cvs/src/sys/i386/pci/pci_cfgreg.c,v
retrieving revision 1.107
diff -u -r1.107 pci_cfgreg.c
--- pci_cfgreg.c 3 Nov 2003 21:53:38 -0000 1.107
+++ pci_cfgreg.c 26 Dec 2003 16:38:13 -0000
@@ -732,7 +732,7 @@
devmax = 32;
outl(CONF1_ADDR_PORT, CONF1_ENABLE_CHK);
- outb(CONF1_ADDR_PORT + 3, 0);
+ DELAY(1);
mode1res = inl(CONF1_ADDR_PORT);
outl(CONF1_ADDR_PORT, oldval1);
All accesses to CONF1_ADDR_PORT and friends are supposed to be
using inl and outl.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
More information about the freebsd-hackers
mailing list