Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jul 1997 00:01:51 -0400
From:      "Louis A. Mamakos" <louie@TransSys.COM>
To:        Amancio Hasty <hasty@rah.star-gate.com>
Cc:        multimedia@FreeBSD.ORG
Subject:   Re: ftp://rah.star-gate.com/pub/guspnp11.tar.gz 
Message-ID:  <199707220401.AAA11479@whizzo.TransSys.COM>
In-Reply-To: Your message of "Mon, 21 Jul 1997 19:34:32 PDT." <199707220234.TAA00497@rah.star-gate.com> 
References:  <199707220234.TAA00497@rah.star-gate.com> 

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

Ok, so I'm trying to bring up a Phoneblaster 33.6 PnP board in a 486 box.  The
Phoneblaster looks like an interal modem and a Soundblaster 16 all on one
board.  With funny AT commands to modem, you can interconnect the input
and output of the soundcard to the telephone line/modem part of the board.

First, I had to make a couple of changes to the pnp.c code that Luigi
had modified.  The Phoneblaster has like 5 different logical devices
on board:
  - the modem
  - the IDE interface
  - the game port/joystick
  - the audio (with 3 I/O address, an interrupt an a couple of DMA channels)
  - a "reserved" device with one I/O port that does some other secret
    stuff I don't know about yet.

The problem with the pnp.c code is that it marches through the table
trying to match the bd_id field (which smells like it's the individual
device identifier), rather then the board serial number which should
match multiple entries.

--- pnp.c~      Sun Jul 20 01:31:46 1997
+++ pnp.c       Sun Jul 20 10:37:13 1997
@@ -520,7 +520,7 @@

 #if 1  /* configure device basing on a kernel table */
     for (ci = cinfo; (int)ci < ((int)cinfo + sizeof (cinfo)); ci++) {
-       if (ci->bd_id == p->vendor_id) {
+       if (ci->serial == p->serial) {
            unsigned int old;
            printf ("   Configuring (Logical Device %x)\n",
                    ci->ldn != -1 ? ci->ldn : 0);

Once I got that changed (and added all the entries to the array of
structs defining the devices), I was able to "wake up" the devices on
the board.  I know that the modem component came alive as I was able
to tip at it and chat with AT commands at it.

I've just got the guspnp11 code that Amancio announced; I got started
with the guspnp10 code before this.  I'm running the guspnp8 on my
Pentium box with a GUS PnP, which is working just great.

Here's the relevent kernel config pieces:

controller      pnp0
device          sio2    at isa? port 0x2a0 tty irq 11 vector siointr
controller      snd0
device          sb0      at isa? port 0x280 irq 10 drq 1 conflicts vector 
sbintr
device          sbxvi0   at isa? port? irq? drq 5 conflicts
device          opl0     at isa? port 0x388 conflicts
device          sbmidi0  at isa? port 0x330 irq? conflicts 

When the kernel boots, I get messages like this:

sio2 at 0x2a0-0x2a7 irq 11 on isa
sio2: type 16550A

(Ok, so it found the modem/serial port OK.  Based on the messages from
the PnP code and this, I'm lead to believe the board is being turned
on OK).

-- sndtable_probe(2)
-- installing card 0
-- Driver name 'SoundBlaster' probe 0xf01ca434

Probing sb at 0x00000280
start sb_dsp_detect, base 0x280 irq 10
-- Hardware probed OK
sb0 at 0x280 irq 10 drq 1 flags 0xffffffff on isa
sndtable_init_card(2) entered
Located card - calling attach routine
 at 0x280 irq 10 dma 1,7
attach routine finished

-- sndtable_probe(6)
-- installing card 1
-- Driver name 'SoundBlaster16' probe 0xf01ce1e4
-- Hardware probed OK
sbxvi0 at ? irq 31 drq 5 flags 0xffffffff on isa
sndtable_init_card(6) entered
Located card - calling attach routine
 at 0xffffffff irq -1 dma 5,7
attach routine finished

create_intr: requested irq31 too high, limit is 15
-- sndtable_probe(1)
-- installing card 2
-- Driver name 'OPL-2/OPL-3 FM' probe 0xf01c8b74
-- Hardware probed OK
opl0 at 0x388 irq 31 on isa
sndtable_init_card(1) entered
Located card - calling attach routine
 at 0x388
attach routine finished

create_intr: requested irq31 too high, limit is 15
-- sndtable_probe(7)
-- installing card 3
-- Driver name 'SB16 MIDI' probe 0xf01ce63c
-- Hardware probed OK
sbmidi0 at 0x330 irq 31 on isa
sndtable_init_card(7) entered
Located card - calling attach routine
 at 0x330 irq -1
attach routine finished

create_intr: requested irq31 too high, limit is 15


Should I be worried about the -1/31 irq indications here?  Also, does this
/dev/sndstat look reasonable; compared to the GUS PnP on another box, it
looks a little bare:

VoxWare Sound Driver:3.5-alpha11-9707221 (Mon Jul 21 18:41:01 PDT 1997 Amancio 
Hasty@rah.star-gate.com)
Config options:

Installed drivers:
Type 1: OPL-2/OPL-3 FM
Type 2: SoundBlaster
Type 6: SoundBlaster16
Type 7: SB16 MIDI


Card config:
SoundBlaster at 0x280 irq 10 drq 1,7
SoundBlaster16 at 0xffffffff irq 1 drq 5,7
OPL-2/OPL-3 FM at 0x388 irq 1
SB16 MIDI at 0x330 irq 1

Audio devices:
0: SoundBlaster 16 4.13

Synth devices:
0: Yamaha OPL-3

Midi devices:
0: SoundBlaster 16 Midi

Timers:
0: System clock

Mixers:
0: SoundBlaster


I'm real excited about the sound driver work; when all this comes together,
I expect to have a pretty annoying voice mail system at home :-)

louie





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