puc driver (Oxford Semiconductor Ltd OX16PCI954) not recognized

From: <klaus.troffob_at_caliopea.com>
Date: Mon, 08 Aug 2022 23:27:33 UTC

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 ;-)