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