April 2, 2008 PUC 4

### NAME

puc - PCI ``universal'' communications card driver

### SYNOPSIS

puc* at pci? dev ? function ? com* at puc? port ? lpt* at puc? port ?

### DESCRIPTION

The puc driver provides support for PCI communications cards containing simple communications ports, such as NS16550-family (com) serial ports and standard PC-like (lpt) parallel ports. The driver is called ``universal'' because the interfaces to these devices aren't nearly as well defined and standard as they should be.

The driver currently supports the following cards:

Dolphin Peripherals 4014 (dual parallel)
Dolphin Peripherals 4035 (dual serial)
NetMos NM9835 (dual parallel and single serial)
SIIG Cyber 2P1S PCI (dual parallel and single serial)
SIIG Cyber 2S1P PCI (dual serial and single parallel)
SIIG Cyber 4S PCI (quad serial)
SIIG Cyber I/O PCI (single serial and single parallel)
SIIG Cyber Parallel Dual PCI (dual parallel)
SIIG Cyber Parallel PCI (single parallel)
SIIG Cyber Serial Dual PCI (dual serial)
SIIG Cyber Serial PCI (single serial)
VScom PCI-200 (dual serial)
VScom PCI-400 (4-port serial
VScom PCI-800 (8-port serial)
Titan PCI-800 (8-port serial)
Titan PCI-200 (dual serial)
NEC PK-UG-X001 K56flex PCI Modem
NEC PK-UG-X008
Lava Computers 2SP-PCI (single parallel)
Lava Computers dual serial
Lava Computers Octopus (8-port serial)
US Robotics (3Com) 3CP5609 PCI 16550 Modem
Actiontec 56K PCI Master
Oxford Semiconductor OX16PCI952 (dual serial and single parallel)
Oxford Semiconductor OX16PCI954 (4-port serial)
NetMos 1P PCI (single parallel)
NetMos 2S1P PCI 16C650 (dual serial and single parallel)
NetMos 4S1P PCI NM9845 (4-port serial and single parallel)
Middle Digital, Inc. Weasel serial port
Avlab Technology, Inc. Low Profile PCI 4 Serial (4-port serial)
Boca Research Turbo Serial 654 (4-port serial)
Chase Research / Perle PCI-FAST4 (4-port serial)
Boca Research Turbo Serial 658 (8-port serial)
Chase Research / Perle PCI-FAST8 (8-port serial)
ADDI-DATA APCI-7800 (8-port serial)
Moxa Technologies SmartIO CP104/PCI (4-port serial)
EXAR XR17D152 (2-port serial)
EXAR XR17D154 (4-port serial)
EXAR XR17D158 (8-port serial)
  Digi International Digi Neo 4 (4-port serial)
  Digi International Digi Neo 8 (8-port serial)

The driver does not support the cards:

Dolphin Peripherals 4006 (single parallel)
Dolphin Peripherals 4025 (single serial)
Dolphin Peripherals 4078 (dual serial and single parallel)

but support for them (and for similar cards) should be trivial to add.

The port locator is used to identify the port (starting from 0) on the communications card that a subdevice is supposed to attach to. Typically, the numbering of ports is explained in a card's hardware documentation, and the port numbers used by the driver are the same as (or one off from, e.g. the manual uses ports numbered starting from 1) those described in the documentation.

### SEE ALSO

com(4), lpt(4), pci(4)

### HISTORY

The puc driver appeared in NetBSD1.4.

### AUTHORS

The puc driver was written by Chris Demetriou.

### BUGS

The current design of this driver keeps any com ports on these cards from easily being used as console. Of course, because boards with those are PCI boards, they also suffer from dynamic address assignment, which also means that they can't easily be used as console.

Some of the cards supported by this driver have jumper-selectable com port clock multipliers, which are unsupported by this driver. Those can be easily accommodated with driver flags, or by using a properly scaled baud rate when talking to the card.

Some of the cards supported by this driver, e.g. the VScom PCI-800, have software-selectable com port clock multipliers, which are unsupported by this driver. Those can be accommodated using internal driver flags, or by using a properly scaled baud rate when talking to the card.

Some ports use an lpt driver other than the machine-independent driver. Those ports will not be able to use lpt ports attached to puc devices.