Linuxaxxon
Linuxaxxon
Linuxaxxon
Revision 1.2
This document discusses the installation of the Axxon MAP/950 PCI family of products under the Linux operating system.
Axxon offers are a variety of PCI bus products based on the enhanced Oxford Semiconductor PCI bus components.
1) PCI 2 Ports based on the OX16PCI954 device. In this model, the OX16PCI954 device is configured using the
onboard EEPROM device to appear as a 2 Port Serial adapter using:
The MAP/950 products based on the OX16PCI954 chip are supported with the default Linux 2.4 kernel. If required you
may download the most recent Linux serial driver by selecting the URL found later in this document. Axxon has confirmed
the installation and auto-detection of the noted products under Linux 7.1, 7.2 and 7.3 distributions.
2) PCI 2 Ports based on the OX16PCI952 device. In this model, the OX16PCI952 device is configured using the
onboard EEPROM device to appear as a 2 Port Serial adapter using:
During the development of the Linux serial driver a few minor errors were coded into the distributions.
These errors will prevent the automatic installation and recognition of the Axxon MAP/950 Pro and similar products based
on the OX16PCI952 device.
The issues that need correction in the Linux device driver are:
http://prdownloads.sourceforge.net/serial/serial-5.05.tar.gz?download
You must change the Linux serial driver from 0x950A to 0x9521 Device ID.
to this:
b) Correct the register mappings for the OX16PCI952 such that the 2nd serial port channel is supported under Linux.
Assuming the rev 5.05 serial driver package on SourceForge, in file serial.c at line 4341, change the 16PCI952 table
entry from this:
{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952,
PCI_ANY_ID, PCI_ANY_ID,
SPCI_FL_BASE0 , 2, 115200 },
To this:
{ PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952,
PCI_ANY_ID, PCI_ANY_ID,
SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE , 2, 115200 },
The SPCI_FL_BASE_TABLE flag means that the second port is addressed by the
next BAR instead of at a higher address in the first BAR.
b) The 115200 base baud value is your oscillator rate divided by the default oversample rate, 16. An alternative
method to establish the correct baud rate relationship is to use the “set base baud” command. Varying with the
distribution of your Linux operating system, the default serial port driver may be expecting a higher clock value for
the serial port. If this is the present then the Axxon I/O card will not be able to frame at the proper baud rate. That
is, 115,200 baud may be skewed to a multiple of due to the expectations of the device driver.
Eg. setserial /dev/ttyS6 baud_base 115200 ; change the ttySx to suit your installation
If you wish to confirm the baud rate relationship, please run this test to see what the actual baud rate is:
The default OX16PCI952 Linux driver code is expecting a clock value of 14.7456 Mhz while the Axxon designs typically
are pre-set to a value of 1.8432 Mhz. You may either configure the device driver or the clock value to compensate.
The MAP/950 products based on the OX16PCI954 / OX16C954 chips are supported with the default Linux 2.4 kernel. If
required you may download the most recent Linux serial driver by selecting the URL found in this document. The
MAP/950 PCI 4 and 8 Port Serial I/O Cards are based on the 1.8432 Mhz clock oscillator. Axxon has confirmed the
installation and auto-detection of the noted products under Linux 7.1, 7.2 and 7.3 distributions.
The MAP/950 products featuring RS422 electrical interface are transparently supported under the Linux operating system.
Provided the necessary changes are made as documented above, the Linux OS will not care if the electrical interface is
RS232 or RS422. In RS422 configurations, the TRANSMITTER and RECEIVER are always enabled.
The MAP/950 products featuring RS485 electrical interface require that the proper register in the Oxford UART be
enabled for hardware auto-gating of the RS485 transmitter. In the Axxon designs, the DTR line is used to auto-gate the
RS485 transmitter during a byte transmission and disable otherwise. The DTR RS485 feature is supported under the
Windows 9x, ME, XP, 2000 as DTR Active High Enable.
For Linux the device driver may required to be configured to support the DTR RS485 toggling mode.
Please consult the details of the ACR[4:3] register in the Oxford UARTS:
Acknowledgements:
Our thanks to Mr. Ed Vance and the numerous Linux gurus for their public contributions to the correction of the Oxford
UART device driver code for the Linux operating system.