# 8.1 and ISA Modem



## ertyu (Dec 31, 2010)

I recently upgraded my trusty old 4.x system to 8.1 and the one little bit I can't get working is the internal ISA modem in the system. On 4.x it was detected automatically by the sio driver:

```
/kernel: sio4: <U.S. Robotics Sportster 33600 FAX/Voice Int> at port 0x3e8-0x3ef irq 5 on isa0
Sep 27 12:55:32 sinat /kernel: sio4: type 16550A
```

But it doesn't show up with the new uart driver. I tried adding the bits for it to device.hints and it shows up, but isn't correctly detected and fails to function. I've tried having the modem set to full PnP and to fixed specification with no change in results.

dmesg contains a few lines like this which may be related:

```
PnP device failed to report resource data
```

pnpinfo spews this:

```
Checking for Plug-n-Play devices...

Card assigned CSN #1
Vendor ID USR0011 (0x11007256), Serial Number 0x20300104
PnP Version 1.0, Vendor Version 0
Device Description: U.S. Robotics Sportster 33600 FAX/Voice Int  

Logical Device ID: USR0006 0x06007256 #0
TAG Start DF
Good Configuration
    FIXED I/O base address 0x2f8 length 0x8
    IRQ: 3  - only one type (true/edge)
TAG Start DF
Acceptable Configuration
    FIXED I/O base address 0x3f8 length 0x8
    IRQ: 4  - only one type (true/edge)
TAG Start DF
Acceptable Configuration
    FIXED I/O base address 0x3e8 length 0x8
    IRQ: 3 4 5 7  - only one type (true/edge)
TAG Start DF
Acceptable Configuration
    FIXED I/O base address 0x2e8 length 0x8
    IRQ: 3 4 5 7  - only one type (true/edge)
TAG End DF
End Tag

Successfully got 16 resources, 1 logical fdevs
-- card select # 0x0001

CSN USR0011 (0x11007256), Serial Number 0x20300104

Logical device #0
IO:  0x03e8 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
IRQ 5 0
DMA 4 4
IO range check 0x00 activate 0x01
```

I tried to compile the old sio driver into the kernel, but that fails:

```
/usr/src/sys/dev/sio/sio.c: In function 'sysctl_machdep_comdefaultrate':
/usr/src/sys/dev/sio/sio.c:356: error: 'struct tty' has no member named 't_init_in'
/usr/src/sys/dev/sio/sio.c:356: error: 'struct tty' has no member named 't_init_in'
/usr/src/sys/dev/sio/sio.c:357: error: 'struct tty' has no member named 't_lock_in'
/usr/src/sys/dev/sio/sio.c:357: error: 'struct tty' has no member named 't_lock_in'
/usr/src/sys/dev/sio/sio.c:358: error: 'struct tty' has no member named 't_init_out'
/usr/src/sys/dev/sio/sio.c:358: error: 'struct tty' has no member named 't_init_out'
/usr/src/sys/dev/sio/sio.c:359: error: 'struct tty' has no member named 't_lock_out'
/usr/src/sys/dev/sio/sio.c:359: error: 'struct tty' has no member named 't_lock_out'
/usr/src/sys/dev/sio/sio.c:361: error: 'struct tty' has no member named 't_state'
/usr/src/sys/dev/sio/sio.c:361: error: 'TS_ISOPEN' undeclared (first use in this function)
/usr/src/sys/dev/sio/sio.c:361: error: (Each undeclared identifier is reported only once
/usr/src/sys/dev/sio/sio.c:361: error: for each function it appears in.)
...
```

Any pointers for getting this working?


----------



## ertyu (Jan 15, 2011)

So I went through my big box of hardware and found several other ISA modems, gave them all a try with similar results. One I was able to get the uart driver to recognize as a 16550 port as opposed to the 8250 when I hardcoded the hints and the resources after disabling PNP. But it still doesn't appear to function correctly.

Next I gathered up collection of friends old PCI modems, tried each one in turn and no drivers would attach. (PUC was compiled in). I discovered that one is supported by the comms/ltmdm port and one by comms/hcfmdm port, neither of which work on 8.x. The other modems I couldn't determine which driver would support them.

I'm surprised at how difficult it is to get a modem going


----------

