From owner-freebsd-i386@FreeBSD.ORG Fri Aug 15 13:10:04 2008 Return-Path: Delivered-To: freebsd-i386@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 01F601065674 for ; Fri, 15 Aug 2008 13:10:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id D47F68FC20 for ; Fri, 15 Aug 2008 13:10:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m7FDA3P8025077 for ; Fri, 15 Aug 2008 13:10:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m7FDA3jq025076; Fri, 15 Aug 2008 13:10:03 GMT (envelope-from gnats) Date: Fri, 15 Aug 2008 13:10:03 GMT Message-Id: <200808151310.m7FDA3jq025076@freefall.freebsd.org> To: freebsd-i386@FreeBSD.org From: Gavin Atkinson Cc: Subject: Re: i386/126525: Extended PCI Configuration register (>= 0x100) not enabled X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Gavin Atkinson List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Aug 2008 13:10:04 -0000 The following reply was made to PR i386/126525; it has been noted by GNATS. From: Gavin Atkinson 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; } }