Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Apr 2006 18:32:54 GMT
From:      Brian McGovern <mcgovern@beta.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/95661: pci_pci still not correct for initializing cardbus on HP AMD laptop
Message-ID:  <200604121832.k3CIWsFq042801@www.freebsd.org>
Resent-Message-ID: <200604121840.k3CIeFvn083118@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         95661
>Category:       kern
>Synopsis:       pci_pci still not correct for initializing cardbus on HP AMD laptop
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 12 18:40:15 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Brian McGovern
>Release:        6.1-RC1
>Organization:
>Environment:
FreeBSD bmcgover-hp-laptop 6.1-RC1 FreeBSD 6.1-RC1 #1: Wed Apr 12 14:27:07 EDT 2006    root@bmcgover-hp-laptop:/usr/src/sys/i386/compile/LAPTOP  i386
>Description:
The BIOS on the system sets the wrong subordinate bus number (see patch). This causes cardbus cards not to be detected/attached properly on boot, or when inserted.
>How-To-Repeat:
Boot 6.1-RC1 kernel, insert cardbus card (e.g. Netgear WG511T)
>Fix:
Jung-uk Kim sent me the following patch based on 6.0-RELEASE that fixes the problem. It also appears to apply cleanly to 6.1-RC1.

Index: pci_pci.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/pci/pci_pci.c,v
retrieving revision 1.37
diff -u -r1.37 pci_pci.c
--- pci_pci.c   29 Apr 2005 06:22:41 -0000      1.37
+++ pci_pci.c   11 Oct 2005 01:58:00 -0000
@@ -186,6 +186,14 @@
     case 0x060513d7:           /* Toshiba ???? */
        sc->flags |= PCIB_SUBTRACTIVE;
        break;
+
+    /* Compaq R3000 BIOS sets wrong subordinate bus number. */
+    case 0x00dd10de:
+       if (sc->subbus < 0xa) {
+           pci_write_config(dev, PCIR_SUBBUS_1, 0xa, 1);
+           sc->subbus = pci_read_config(dev, PCIR_SUBBUS_1, 1);
+       }
+       break;
     }
 
     /*

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604121832.k3CIWsFq042801>