summaryrefslogtreecommitdiffstats
path: root/c/src/libchip/serial/README.ns16550
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/libchip/serial/README.ns16550')
-rw-r--r--c/src/libchip/serial/README.ns1655092
1 files changed, 91 insertions, 1 deletions
diff --git a/c/src/libchip/serial/README.ns16550 b/c/src/libchip/serial/README.ns16550
index 2956173b1b..9b49d6794b 100644
--- a/c/src/libchip/serial/README.ns16550
+++ b/c/src/libchip/serial/README.ns16550
@@ -2,4 +2,94 @@
# $Id$
#
-This driver needs to be debugged before this is written.
+Status
+======
+
+This driver appears to work OK for polled output at this point.
+
+It needs to be tested for:
+
+ + polled input
+ + interrupt driver output
+ + interrupt driver input
+
+This driver does not support the new style RTEMS interrupt processing
+used on the i386 and some PowerPC models.
+
+Configuration Table Use
+=======================
+
+sDeviceName
+
+ The name of this device.
+
+deviceType
+
+ This field must be SERIAL_NS16550.
+
+pDeviceFns
+
+ The device interface control table. This may be:
+ + ns16550_fns for interrupt driven IO
+ + ns16550_fns_polled for polled IO
+
+deviceProbe
+
+ This is the address of the routine which probes to see if the device
+ is present.
+
+pDeviceFlow
+
+ This field is ignored as hardware flow control is not currently supported.
+
+ulMargin
+
+ This is currently unused.
+
+ulHysteresis
+
+ This is currently unused.
+
+pDeviceParams
+
+ This is set to the default settings. At this point, it is the default
+ baud rate cast as a (void *).
+
+ulCtrlPort1
+
+ This field is the base address of this port on the UART.
+
+ulCtrlPort2
+
+ This field is unused for the NS16550.
+
+ulDataPort
+
+ This field is the base address of this port on the UART.
+
+getRegister
+setRegister
+
+ These follow standard conventions.
+
+getData
+setData
+
+ These are unused since the TX and RX data registers can be accessed
+ as regular registers.
+
+ulClock
+
+ This is the clock constant which is divided by the desired baud
+ to get the value programmed into the part. The formula for this
+ for 9600 baud is:
+
+ chip_divisor_value = ulClock / 9600.
+
+ NOTE: When ulClock is 0, the correct value for a PC (115,200) is
+ used.
+
+ulIntVector
+
+ This is the interrupt vector number associated with this chip.
+