Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Nov 1999 13:10:48 -0800 (PST)
From:      king@sstar.com
To:        freebsd-gnats-submit@freebsd.org
Subject:   kern/14962: PnP doesn't detect AWE64 when PnP modem is present
Message-ID:  <19991117211048.B853514D97@hub.freebsd.org>

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

>Number:         14962
>Category:       kern
>Synopsis:       PnP doesn't detect AWE64 when PnP modem is present
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Nov 17 13:20:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Jim King
>Release:        3.3-STABLE
>Organization:
>Environment:
FreeBSD raspberry.lgc.com 3.3-STABLE FreeBSD 3.3-STABLE #2: Sun Nov 14 12:53:36 CST 1999     jim@raspberry.lgc.com:/usr/src/sys/compile/RASP  i386
>Description:
Had a working system with a USR3090 ISA PnP modem.  Installed a Soundblaster AWE64, booted Win98, Win98 found the card, booted FreeBSD and FreeBSD doesn't find the card:  pcm doesn't attach, it doesn't show up in pnpinfo, no unknown devices show up in dmesg.
>How-To-Repeat:

>Fix:
I don't know if this is a proper fix, but a workaround is to reverse the loop in pnp_configure() in sys/i386/isa/pnp.c, as in the diff below.  With the loop running in reverse order on my system both the PnP modem and the AWE64 are correctly detected.

Note that applying this change to a working system may hose /boot/kernel.conf, since reversing the probe order changes the PnP CSN assignments.  e.g. in my case the modem moved from 1 to 2 and the AWE64 became 1.

Also note:  This same problem occurs in 4.0-CURRENT, and the same workaround fixes the problem.


*** pnp.c.orig  Sun Nov 14 01:37:25 1999
--- /usr/src/sys/i386/isa/pnp.c Sun Nov 14 12:53:21 1999
***************
*** 638,644 ****
      printf("Probing for PnP devices:\n");
  
      /* Try various READ_DATA ports from 0x203-0x3ff */
!     for (pnp_rd_port = 0x80; (pnp_rd_port < 0xff); pnp_rd_port += 0x10) {
        if (bootverbose)
            printf("Trying Read_Port at %x\n", (pnp_rd_port << 2) | 0x3);
  
--- 638,644 ----
      printf("Probing for PnP devices:\n");
  
      /* Try various READ_DATA ports from 0x203-0x3ff */
!     for (pnp_rd_port = 0xfe; (pnp_rd_port >= 0x80); pnp_rd_port -= 0x10) {
        if (bootverbose)
            printf("Trying Read_Port at %x\n", (pnp_rd_port << 2) | 0x3);
  

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


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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