Re: puc driver (Oxford Semiconductor Ltd OX16PCI954) not recognized

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Tue, 23 Aug 2022 00:31:41 UTC
On 8/8/22 4:27 PM, klaus.troffob@caliopea.com wrote:
> Hello
> 
> I have an old PCI GPS card with an Oxford Semiconductor UART chip on It.
> This chip should be recognized by the "puc" driver. But the device
> number is not in the list of recognized chips.
> 
> from pciconfig:
> none0@pci0:9:1:0:       class=0x070006 rev=0x00 hdr=0x00 vendor=0x1415
> device=0x950c subvendor=0x0000 subdevice=0x0000
>       vendor     = 'Oxford Semiconductor Ltd'
>       class      = simple comms
>       subclass   = UART
> none1@pci0:9:1:1:       class=0x068000 rev=0x00 hdr=0x00 vendor=0x1415
> device=0x9510 subvendor=0x0000 subdevice=0x0000
>       vendor     = 'Oxford Semiconductor Ltd'
>       device     = 'OX16PCI954 (Quad 16950 UART) function 1 (Disabled)'
>       class      = bridge
> 
> 
> I remember a few years ago having patched /usr/src/sys/dev/puc/pucdata.c
> and recompiled the kernel to make it works.
> It was in freebsd 7 ; now, with freebsd 13, I'm sure there must be a
> more modern way to make this card match the driver .
> 
> Perhaps "hint" (but devices.hints is mostly for old "isa" things), or
> recompiling only this kernel driver (but "puc" is already embeded in the
> kernel: it's seem not possible to unload it to reload a new one). I try
> to avoid recompiling a patched kernel since it's likely to be changed at
> next freebsd-update.....
> 
> Any advice would be appreciated ;-)

It's still a matter of patching pucdata.c.

-- 
John Baldwin