Date: Fri, 15 Aug 2008 13:10:03 GMT From: Gavin Atkinson <gavin@FreeBSD.org> To: freebsd-i386@FreeBSD.org Subject: Re: i386/126525: Extended PCI Configuration register (>= 0x100) not enabled Message-ID: <200808151310.m7FDA3jq025076@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR i386/126525; it has been noted by GNATS. From: Gavin Atkinson <gavin@FreeBSD.org> To: bug-followup@FreeBSD.org Cc: Subject: Re: i386/126525: Extended PCI Configuration register (>= 0x100) not enabled Date: Fri, 15 Aug 2008 14:03:49 +0100 (BST) Patch follows. Index: src/sys/i386/pci/pci_cfgreg.c =================================================================== RCS file: /home/ncvs/src/sys/i386/pci/pci_cfgreg.c,v retrieving revision 1.126 diff -u -r1.126 pci_cfgreg.c --- src/sys/i386/pci/pci_cfgreg.c 28 Nov 2007 22:22:05 -0000 1.126 +++ src/sys/i386/pci/pci_cfgreg.c 15 Aug 2008 11:38:42 -0000 @@ -163,14 +163,37 @@ vid = pci_cfgregread(0, 0, 0, PCIR_VENDOR, 2); did = pci_cfgregread(0, 0, 0, PCIR_DEVICE, 2); if (vid == 0x8086) { - if (did == 0x3590 || did == 0x3592) { + switch (did) { + case 0x3590: + case 0x3592: /* Intel 7520 or 7320 */ pciebar = pci_cfgregread(0, 0, 0, 0xce, 2) << 16; pciereg_cfgopen(); - } else if (did == 0x2580 || did == 0x2584) { - /* Intel 915 or 925 */ + break; + case 0x2580: + case 0x2584: + case 0x2590: + /* Intel 915, 925, 915GM/PM/GMS/GME or 910GML/GMLE */ pciebar = pci_cfgregread(0, 0, 0, 0x48, 4); pciereg_cfgopen(); + break; + case 0x25d8: + case 0x25d0: + case 0x25d4: + /* Intel 5000P/Z/V */ + pciebar = pci_cfgregread(0, 16, 0, 0x64, 4); +#ifndef PAE + if (pciebar >= 0x10000) { + printf("%s: Memory mapped PCI configuration " + "area base 0x%08x too high\n", + __FUNCTION__, pciebar); + pciebar = 0; + break; + } +#endif + pciebar = pciebar << 16; + pciereg_cfgopen(); + break; } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808151310.m7FDA3jq025076>