freebsd-dev/sys
Marius Strobl d5e0798e6d All of Oxford/PLX OX16PCI954, OXm16PCI954 and OXu16PCI954 share the
exact same (subsystem) device and vendor IDs. However, the reference
design for the OXu16PCI954 uses a 14.7456 MHz clock (as does the EXSYS
EX-41098-2 equipped with these), while at least the OX16PCI954 defaults
to a 1.8432 MHz one. According to the datasheets of these chips, the
only difference in PCI configuration space is that OXu16PCI954 have
a revision ID of 1 while the other two are at 0. So employ the latter
for determining the default clock rates of this family.
Note that one might think that the actual clock could be derived from
the Clock Prescaler Register (CPR) of these chips. Unfortunately, this
is not that case and its use and content are orthogonal to the frequency
of the crystal employed.
Tested with an EXSYS EX-41098-2, which identifies and attaches as:
pcib4@pci0:19:0:0:      class=0x060400 card=0x02dd1014 chip=0x10801b21
rev=0x03 hdr=0x01
    vendor     = 'ASMedia Technology Inc.'
    device     = 'ASM1083/1085 PCIe to PCI Bridge'
    class      = bridge
    subclass   = PCI-PCI
puc0@pci0:20:4:0:       class=0x070006 card=0x00001415 chip=0x95011415
rev=0x01 hdr=0x00
    vendor     = 'Oxford Semiconductor Ltd'
    device     = 'OX16PCI954 (Quad 16950 UART) function 0 (Uart)'
    class      = simple comms
    subclass   = UART
puc1@pci0:20:4:1:       class=0x068000 card=0x00001415 chip=0x95111415
rev=0x01 hdr=0x00
    vendor     = 'Oxford Semiconductor Ltd'
    device     = 'OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)'
    class      = bridge
puc2@pci0:20:8:0:       class=0x070006 card=0x00001415 chip=0x95011415
rev=0x01 hdr=0x00
    vendor     = 'Oxford Semiconductor Ltd'
    device     = 'OX16PCI954 (Quad 16950 UART) function 0 (Uart)'
    class      = simple comms
    subclass   = UART
puc3@pci0:20:8:1:       class=0x068000 card=0x00001415 chip=0x95111415
rev=0x01 hdr=0x00
    vendor     = 'Oxford Semiconductor Ltd'
    device     = 'OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)'
    class      = bridge

pci20: <ACPI PCI bus> on pcib4
puc0: <Oxford Semiconductor OX16PCI954 UARTs> port 0x5000-0x501f,
0x5020-0x503f mem 0xc6000000-0xc6000fff,0xc6001000-0xc6001fff irq 16 at
device 4.0 on pci20
uart1: <16950 or compatible> at port 1 on puc0
uart2: <16950 or compatible> at port 2 on puc0
uart3: <16950 or compatible> at port 3 on puc0
uart4: <16950 or compatible> at port 4 on puc0
puc1: <Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)> port
0x5040-0x505f,0x5060-0x507f mem 0xc6002000-0xc6002fff,0xc6003000-0xc6003fff
irq 16 at device 4.1 on pci20
puc2: <Oxford Semiconductor OX16PCI954 UARTs> port 0x5080-0x509f,
0x50a0-0x50bf mem 0xc6004000-0xc6004fff,0xc6005000-0xc6005fff irq 16 at
device 8.0 on pci20
uart5: <16950 or compatible> at port 1 on puc2
uart6: <16950 or compatible> at port 2 on puc2
uart7: <16950 or compatible> at port 3 on puc2
uart8: <16950 or compatible> at port 4 on puc2
puc3: <Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)> port
0x50c0-0x50df,0x50e0-0x50ff mem 0xc6006000-0xc6006fff,0xc6007000-0xc6007fff
irq 16 at device 8.1 on pci20

MFC after:	2 weeks
2013-06-13 22:13:41 +00:00
..
amd64 - Add a BIT_FFS() macro and use it to replace cpusetffs_obj() 2013-06-13 20:46:03 +00:00
arm Fix the vfp code to work with the 16 register variants of the VFP unit. We 2013-06-13 21:31:33 +00:00
boot - The method introduced as part of r234898 for not altering the boot path 2013-06-09 23:50:30 +00:00
bsm Implement chflagsat(2) system call, similar to fchmodat(2), but operates on 2013-03-21 22:59:01 +00:00
cam Revert r251649: 2013-06-13 08:34:23 +00:00
cddl MFV r251644: 2013-06-12 07:07:06 +00:00
compat aio_mlock() added: 2013-06-08 13:30:13 +00:00
conf Add C11 atomic fallbacks for ARM. 2013-06-13 18:46:49 +00:00
contrib Set the FreeBSD capability bit to indicate that LNA diversity is enabled. 2013-06-13 02:20:45 +00:00
crypto When porting XTS-related code from OpenBSD I forgot to update copyright (only 2013-02-20 22:59:53 +00:00
ddb
dev All of Oxford/PLX OX16PCI954, OXm16PCI954 and OXu16PCI954 share the 2013-06-13 22:13:41 +00:00
fs Relax some unnecessary unsigned type changes in ext2fs. 2013-06-13 03:23:24 +00:00
gdb
geom Make CAM return and GEOM DISK pass through new GEOM::lunid attribute. 2013-06-12 13:36:20 +00:00
gnu/fs/reiserfs Garbage collect XFS bits which are now already completely disconnected 2013-03-02 15:33:54 +00:00
i386 - Add a BIT_FFS() macro and use it to replace cpusetffs_obj() 2013-06-13 20:46:03 +00:00
ia64 Driver 'aacraid' added. Supports Adaptec by PMC RAID controller families Series 6, 7, 8 and upcoming products. Older Adaptec RAID controller families are supported by the 'aac' driver. 2013-05-24 09:22:43 +00:00
isa
kern - Add a BIT_FFS() macro and use it to replace cpusetffs_obj() 2013-06-13 20:46:03 +00:00
kgssapi Isilon reported that sec=krb5p NFS mounts had a problem when m_len == 0 2013-05-01 22:07:55 +00:00
libkern Attempt to mitigate poor initialization of arc4 by one-shot 2013-04-19 00:30:52 +00:00
mips - Add a BIT_FFS() macro and use it to replace cpusetffs_obj() 2013-06-13 20:46:03 +00:00
modules Migrate the LNA mixing diversity machinery from the AR9285 HAL to the driver. 2013-06-12 14:52:57 +00:00
net Properly set curvnet context in lagg_port_setlladdr() task handler. 2013-06-07 10:27:50 +00:00
net80211 Don't hold the node lock over the iterator. 2013-06-07 09:03:56 +00:00
netatalk Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
netgraph Fix several typos 2013-05-12 16:43:26 +00:00
netinet Disable IGMPv3 link timers on a transition to IGMPv2. 2013-06-07 17:12:08 +00:00
netinet6 Really fix netmask address family this time. 2013-05-19 19:42:46 +00:00
netipsec Use IP6STAT_INC/IP6STAT_DEC macros to update ip6 stats. 2013-04-09 07:11:22 +00:00
netipx
netnatm
netpfil Improve locking strategy between keys hash and ID hash. 2013-06-13 06:07:19 +00:00
netsmb If the kernel is compiled with VMIMAGE support, the first attempt of 2013-05-04 16:55:48 +00:00
nfs Move the NFS FHA (File Handle Affinity) code from sys/nfsserver to 2013-04-17 22:42:43 +00:00
nfsclient - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
nfsserver - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
nlm
ofed Store a reference to the vnode associated with a file descriptor in the 2013-06-11 15:37:07 +00:00
opencrypto When porting XTS-related code from OpenBSD I forgot to update copyright (only 2013-02-20 22:59:53 +00:00
pc98 MFi386: revision 251039 2013-06-01 12:21:59 +00:00
pci - Corrrect mispellings of word useful 2013-04-17 11:45:15 +00:00
powerpc Pad the PCPU MD struct, to satisfy an assert added with the projects/counters 2013-06-04 00:40:26 +00:00
rpc Fix a potential socket leak in the NFS server. If a client closes its 2013-04-08 19:03:01 +00:00
security Relax the vm object locking in mac_proc_vm_revoke_recurse(). A read lock 2013-06-04 17:23:09 +00:00
sparc64 - Add a BIT_FFS() macro and use it to replace cpusetffs_obj() 2013-06-13 20:46:03 +00:00
sys - Add a BIT_FFS() macro and use it to replace cpusetffs_obj() 2013-06-13 20:46:03 +00:00
teken
tools Further refine the handling of stop signals in the NFS client. The 2013-02-21 19:02:50 +00:00
ufs - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
vm - Convert the slab free item list from a linked array of indices to a 2013-06-13 21:05:38 +00:00
x86 Add basic support for FDT to i386 & amd64. This change includes: 2013-05-21 03:05:49 +00:00
xdr Use m_get() and m_getcl() instead of compat macros. 2013-03-15 10:21:18 +00:00
xen Fix loss of the emulated keyboard on Xen PV HVM domains. 2013-05-22 19:22:44 +00:00
Makefile Remove netncp cscope entry missed in r248097 2013-03-12 14:21:52 +00:00