diff options
Diffstat (limited to 'c/src/libchip/serial/README.ns16550')
-rw-r--r-- | c/src/libchip/serial/README.ns16550 | 92 |
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. + |