Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 May 2001 23:01:04 +0200
From:      georg.schwarz@iname.com (Georg Schwarz)
To:        freebsd-hardware@freebsd.org, freebsd-multimedia@freebsd.org, cg@freebsd.org
Subject:   ISA PnP sound card problem: sort of solved
Message-ID:  <1esr2gp.1oclt811j3nwwlM@georg.schwarz.online.de>

next in thread | raw e-mail | index | archive | help
[ A copy of this message has been posted to the newsgroup ]
[     comp.os.unix.bsd.freebsd.misc                       ]

I've sort of solved the ISA PnP sound card pproblem with FreeBSD which I
had reported yesterday. FreeBSD 4.3 wasn't recognizing my sound card,
and Adlib Gold, for pnpinfo gives:

Vendor ID CSC3137 (0x3731630e), Serial Number 0xffffffff
PnP Version 1.3, Vendor Version 1
Device Description: AdLib MSC 16 PnP V3SB

Logical Device ID: ASB1631 0x31166206 #0
TAG Start DF
Good Configuration
    DMA: channel(s) 1 
        8-bit, not a bus master, count by byte, , Type A
    DMA: channel(s) 0 3 
        8-bit, not a bus master, count by byte, , Type A
    IRQ: 5  - only one type (true/edge)
    I/O Range 0x534 .. 0x534, alignment 0x4, len 0x4
        [16-bit addr]
    I/O Range 0x388 .. 0x388, alignment 0x8, len 0x4
        [16-bit addr]
    I/O Range 0x220 .. 0x220, alignment 0x20, len 0x10
        [16-bit addr]
TAG Start DF
Acceptable Configuration
    DMA: channel(s) 0 1 3 
        8-bit, not a bus master, count by byte, , Type A
    IRQ: 5 7 9 11  - only one type (true/edge)
    I/O Range 0x534 .. 0xf44, alignment 0x4, len 0x4
        [16-bit addr]
    I/O Range 0x388 .. 0x3f8, alignment 0x8, len 0x4
        [16-bit addr]
    I/O Range 0x220 .. 0x2e0, alignment 0x20, len 0x10
        [16-bit addr]
TAG End DF

Logical Device ID: ASB16fd 0xfd166206 #1
TAG Start DF
Good Configuration
    I/O Range 0x200 .. 0x200, alignment 0x8, len 0x8
        [16-bit addr]
TAG Start DF
Sub-optimal Configuration
    I/O Range 0x200 .. 0x2f8, alignment 0x8, len 0x8
        [16-bit addr]
TAG End DF

Logical Device ID: ASB1600 0x00166206 #2
    I/O Range 0x120 .. 0xff8, alignment 0x8, len 0x8
        [16-bit addr]

Logical Device ID: ASB16fe 0xfe166206 #3
TAG Start DF
Good Configuration
    I/O Range 0x330 .. 0x330, alignment 0x8, len 0x2
        [16-bit addr]
TAG Start DF
    IRQ: 9  - only one type (true/edge)
    I/O Range 0x330 .. 0x330, alignment 0x8, len 0x2
        [16-bit addr]
TAG Start DF
    IRQ: 5 7 9 11  - only one type (true/edge)
    I/O Range 0x300 .. 0x370, alignment 0x8, len 0x2
        [16-bit addr]
TAG End DF
End Tag

Successfully got 35 resources, 4 logical fdevs
-- card select # 0x0001

CSN CSC3137 (0x3731630e), Serial Number 0xffffffff

Logical device #0
IO:  0x0534 0x0534 0x0534 0x0534 0x0534 0x0534 0x0534 0x0534
IRQ 5 0
DMA 1 0
IO range check 0x00 activate 0x01

Logical device #1
IO:  0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
IRQ 0 0
DMA 4 4
IO range check 0x00 activate 0x01

Logical device #2
IO:  0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
IRQ 0 0
DMA 4 4
IO range check 0x00 activate 0x01

Logical device #3
IO:  0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
IRQ 0 0
DMA 4 4
IO range check 0x00 activate 0x01



I've now added to struct isa_pnp_id in /usr/src/sys/dev/sound/isa/mss.c
the entry
{0x31166206, "AdLib MSC 16 PnP V3SB"},          /* ASB1631 */

now with an entry of
device pcm
in the kernel config file I get the following:

pcm0: <AdLib MSC 16 PnP V3SB> at port
0x534-0x537,0x388-0x38b,0x220-0x22f irq 5 drq 1,0 on isa0

/dev/sndstat reads as follows:

FreeBSD Audio Driver (newpcm) May  1 2001 19:48:38
Installed devices:
pcm0: <AdLib MSC 16 PnP V3SB> at io 0x534 irq 5 drq 1:0 (1p/1r channels
duplex)

So far, everything seems OK. One problem remaining is that the sound
output works fine, but not when I reboot FreeBSD. After a warm reboot of
FreeBSD the hardware recognition looks identical, but I don't get any
sound any more.
Similarly, when warm booting Linux (2.0.38) after having run FreeBSD 4.3
the card is not detected by Linux (which works fine when cold booting
Linux and any reboot into Linux thereafter.
It appears that FreeBSD somehow messes up the PnP info or does not
suffciently reinitialize the PnP card. Is there anything I could do
about that? It happens regardless whether I'm using the PNPBIOS option
or not.

The machine is an ICL ErgoPRO 486 PC, by the way.

I'd appreciate any feedback. Thanks.

remark:
Unlike what
http://www.freebsd.org/doc/en_US.ISO_8859-1/books/faq/troubleshot.html#P
NP-NOT-FOUND states, it seems to be Logical Device ID, not the Vendor
ID, which is of relevance for detecting the card (although in the
particular example they happent to be identical).


-- 
Georg Schwarz    http://home.pages.de/~schwarz/
 georg.schwarz@iname.com     +49 177 2437545

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




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