From nobody@FreeBSD.org  Wed Mar 19 16:58:06 2008
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 264381065672
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 19 Mar 2008 16:58:06 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 1A0E48FC19
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 19 Mar 2008 16:58:06 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m2JGw20e028113
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 19 Mar 2008 16:58:02 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.2/8.14.1/Submit) id m2JGw24u028112;
	Wed, 19 Mar 2008 16:58:02 GMT
	(envelope-from nobody)
Message-Id: <200803191658.m2JGw24u028112@www.freebsd.org>
Date: Wed, 19 Mar 2008 16:58:02 GMT
From: "Ivan B. Serezhkin" <ivan@serezhkin.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: pci device driver fails to load on a fujitsu-siemens s7110
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         121872
>Category:       kern
>Synopsis:       [wpi] driver fails to attach on a fujitsu-siemens s7110
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bschmidt
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 19 17:00:03 UTC 2008
>Closed-Date:    Tue Jun 19 07:05:45 UTC 2012
>Last-Modified:  Tue Jun 19 07:05:45 UTC 2012
>Originator:     Ivan B. Serezhkin
>Release:        7.0-STABLE
>Organization:
http://ivan.serezhkin.com
>Environment:
FreeBSD VANY.yandex.ru 7.0-STABLE FreeBSD 7.0-STABLE #41: Sat Mar  8 02:13:36 MSK 2008     root@VANY.yandex.ru:/usr/obj/usr/src/sys/WVANYN  i386
>Description:
I've got a fujitsu-siemens s7110 laptop, but when I try to
load if_wpi.ko from the commandline I get the following error in dmesg
and no driver attached to device:

firmware: 'wpifw' version 2144: 149652 bytes loaded at 0xc65f0000

pci0: driver added
pci2: driver added
pci3: driver added
pci5: driver added
found-> vendor=0x8086, dev=0x4222, revid=0x02
        domain=0, bus=5, slot=0, func=0
        class=02-80-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0006, statreg=0x0010, cachelnsz=16 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=18
        powerspec 2  supports D0 D3  current D0
        MSI supports 1 message, 64 bit
pci0:5:0:0: reprobing on driver added
wpi0: <Intel(R) PRO/Wireless 3945ABG> mem 0xf0100000-0xf0100fff irq 18 at device 0.0 on pci5
wpi0: Driver Revision 20071127
pcib3: wpi0 requested unsupported memory range 0xf0100000-0xf0100fff (decoding 0-0, 0-0)
wpi0: could not allocate memory resource
device_attach: wpi0 attach returned 6
pci8: driver added

also i can provide data about this laptop : 
http://ivan.serezhkin.com/s7110/

>How-To-Repeat:
try to kldload if_wpi on s7110 under 7.0-RELEASE or 7.0-STABLE. under bios version 1.31 or 1.33(latest).
>Fix:


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-i386->freebsd-net 
Responsible-Changed-By: remko 
Responsible-Changed-When: Wed Mar 19 22:55:47 UTC 2008 
Responsible-Changed-Why:  
This is somethin network related. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=121872 
State-Changed-From-To: open->feedback 
State-Changed-By: bschmidt 
State-Changed-When: Mon Dec 20 11:23:23 UTC 2010 
State-Changed-Why:  
Can you retry this with a recent 7.4-BETA, 8.2-BETA or stable/8? There have  
been quite a few changes regarding PCI-bridge resources. 


Responsible-Changed-From-To: freebsd-net->bschmidt 
Responsible-Changed-By: bschmidt 
Responsible-Changed-When: Mon Dec 20 11:23:23 UTC 2010 
Responsible-Changed-Why:  
over to me 

http://www.freebsd.org/cgi/query-pr.cgi?pr=121872 
State-Changed-From-To: feedback->closed 
State-Changed-By: bschmidt 
State-Changed-When: Tue Jun 19 07:05:28 UTC 2012 
State-Changed-Why:  
feedback timeout 

http://www.freebsd.org/cgi/query-pr.cgi?pr=121872 
>Unformatted:

This very crude hack works for me, but obviously there is a trick
our PCI-bridge code needs to learn here...

Index: pci_pci.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/pci/pci_pci.c,v
retrieving revision 1.50
diff -u -r1.50 pci_pci.c
--- pci_pci.c   30 Sep 2007 11:05:15 -0000      1.50
+++ pci_pci.c   4 Apr 2008 23:29:13 -0000
@@ -143,6 +143,14 @@
     sc = device_get_softc(dev);
     sc->dev = dev;
 
+    switch (pci_get_devid(dev)) {
+    case 0x27d48086:           /* 82801G (ICH7 Family) */
+       pci_write_config(dev, PCIR_MEMBASE_1, 0xf010, 2);
+       pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf010, 2);
+       pci_write_config(dev, PCIR_COMMAND, 0x6, 1);
+       /* 0xf0100000-0xf0100fff */
+       break;
+    }
     /*
      * Get current bridge configuration.
      */

