# puc/sio/uart question



## DrZarkov (Jun 30, 2009)

I have an IBM3250, which has a internal serial port, which I'm using for a console, which works fine, under FreeBSD 7.2 STABLE.  I need to add some additional serial ports for some other devices.  I have a SIIG CyberSerial Dual PCIe (JJ-E20011-S2).  I've added puc in the kernel config

```
# Serial (COM) ports
device          sio
device          uart
device          puc
```
the device shows up in the boot

```
puc0: <Oxford Semiconductor OX16PCI954 UARTs> port 0x2020-0x203f,0x2000-0x201f mem 0xe8101000-0xe8101fff,0xe8100000-0xe8100fff irq 16 at device 0.0 on pci9
puc0: [FILTER]
uart0: <16950 or compatible> on puc0
uart0: [FILTER]
uart1: <16950 or compatible> on puc0
uart1: [FILTER]
uart2: <16950 or compatible> on puc0
uart2: [FILTER]
uart3: <16950 or compatible> on puc0
uart3: [FILTER]
```
and I get the devices in /dev

```
/dev/cuad0
/dev/cuad0.init
/dev/cuad0.lock
/dev/cuau0
/dev/cuau0.init
/dev/cuau0.lock
/dev/cuau1
/dev/cuau1.init
/dev/cuau1.lock
/dev/cuau2
/dev/cuau2.init
/dev/cuau2.lock
/dev/cuau3
/dev/cuau3.init
/dev/cuau3.lock
/dev/ttyu0
/dev/ttyu0.init
/dev/ttyu0.lock
/dev/ttyu1
/dev/ttyu1.init
/dev/ttyu1.lock
/dev/ttyu2
/dev/ttyu2.init
/dev/ttyu2.lock
/dev/ttyu3
/dev/ttyu3.init
/dev/ttyu3.lock
```
None of these seem to work, I don't see anything on output or input, either I/O or even modem, or flow control signals.

I've tried adding COM_MULTIPORT in the kernel with no difference.  I also tried removing uart, and the the devices all changed to ttyd[0-4]* and cuaa[0-4]*, the ports didn't work, and broke the serial console, which had been ttyd0 before.

I've had the same results in more then one X3250 with another of the same card.

There must be something I'm missing, but can't seem to find it, so wanted to ask for any other hints on things to try.


----------



## DrZarkov (Jun 30, 2009)

I don'[t see anything I changed, but I am seeing modem control signals, but the speed settings don't seem to be working right.


----------



## DrZarkov (Jun 30, 2009)

*serial port problem fixed*

I found a reference to the default clocking rate being off in
/usr/src/sys/dev/puc/pucdata.c for some serial cards.
In pucdata.c I changed the entry for my card from

```
{   0x1415, 0x950a, 0xffff, 0,
            "Oxford Semiconductor OX16PCI954 UARTs",
            DEFAULT_RCLK,
            PUC_PORT_4S, 0x10, 0, 8,
        },
```
to

```
{   0x1415, 0x950a, 0xffff, 0,
            "Oxford Semiconductor OX16PCI954 UARTs",
            DEFAULT_RCLK *10,
            PUC_PORT_4S, 0x10, 0, 8,
        },
```
and that fixed the serial rate problem.


----------



## DutchDaemon (Jun 30, 2009)

Please use 
	
	



```
tags for system output and such.
```


----------



## gcooper@ (Aug 15, 2010)

DrZarkov said:
			
		

> I found a reference to the default clocking rate being off in
> /usr/src/sys/dev/puc/pucdata.c for some serial cards.
> In pucdata.c I changed the entry for my card from
> 
> ...



That's because it's using a wildcard for the subdevice, instead of setting the appropriate chipset specific read clock for the specific subdevice. If you have devinfo -v output that can be provided, I'll see about submitting a patch for that specific case.


----------

