diff options
Diffstat (limited to 'static/netbsd/man4/ppbus.4')
| -rw-r--r-- | static/netbsd/man4/ppbus.4 | 438 |
1 files changed, 438 insertions, 0 deletions
diff --git a/static/netbsd/man4/ppbus.4 b/static/netbsd/man4/ppbus.4 new file mode 100644 index 00000000..e018fcbe --- /dev/null +++ b/static/netbsd/man4/ppbus.4 @@ -0,0 +1,438 @@ +.\" $NetBSD: ppbus.4,v 1.15 2009/08/19 23:17:25 wiz Exp $ +.\" +.\" Copyright (c) 1998, 1999 Nicolas Souchu +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD: src/share/man/man4/ppbus.4,v 1.14.2.5 2001/08/17 13:08:39 ru Exp $ +.\" +.Dd August 19, 2009 +.Dt PPBUS 4 +.Os +.Sh NAME +.Nm ppbus +.Nd Parallel Port Bus system with GPIO +.Sh SYNOPSIS +.Cd "ppbus* at atppc?" +.Cd "options PPBUS_VERBOSE" +.Cd "options PPBUS_DEBUG" +.Cd "options DEBUG_1284" +.Pp +.Cd "gpio* at ppbus?" +.Cd "lpt* at ppbus?" +.Cd "plip* at ppbus?" +.Cd "pps* at ppbus?" +.\" Cd "lpbb* at ppbus?" +.\" Cd "vpo* at ppbus?" +.Sh DESCRIPTION +The +.Nm +system provides a uniform, modular, and architecture-independent +system for the implementation of drivers to control various parallel +devices, and to use different parallel port chip sets. +.Sh DEVICE DRIVERS +In order to write new drivers or port existing drivers, the +.Nm +system provides the following facilities: +.Bl -bullet -offset indent +.It +architecture-independent macros or functions to access parallel ports +.It +mechanism to allow various devices to share the same parallel port +.It +a +.Xr gpio 4 +interface to access the individual pins +.It +a user interface named +.Xr ppi 4 +that allows parallel port access from outside the kernel without +conflicting with kernel-in drivers. +.El +.Ss Developing new drivers +The +.Nm +system has been designed to support the development of standard +and non-standard software: +.Pp +.Bl -column "Driver" -compact +.It Em Driver Ta Em Description +.\" It Sy vpo Ta "VPI0 parallel to Adaptec AIC-7110 SCSI controller driver" . +It uses standard and non-standard parallel port accesses. +.It Sy ppi Ta "Parallel port interface for general I/O" +.It Sy pps Ta "Pulse per second Timing Interface" +.\" It Sy lpbb Ta "Philips official parallel port I2C bit-banging interface" +.El +.Ss Porting existing drivers +Another approach to the +.Nm +system is to port existing drivers. +Various drivers have already been ported: +.Pp +.Bl -column "Driver" -compact +.It Em Driver Ta Em Description +.It Sy lpt Ta "lpt printer driver" +.It Sy lp Ta "plip network interface driver" +.El +.Pp +.Nm +should let you port any other software even from other operating +systems that provide similar services. +.Sh PARALLEL PORT CHIP SETS +Parallel port chip set support is provided by +.Xr atppc 4 . +.Pp +The +.Nm +system provides functions and macros to request service from the +.Nm +including reads, writes, setting of parameters, and bus requests/releases. +.Pp +.Xr atppc 4 +detects chip set and capabilities and sets up interrupt handling. +It makes +methods available for use to the +.Nm +system. +.Sh PARALLEL PORT MODEL +The logical parallel port model chosen for the +.Nm +system is the AT +parallel port model. +Consequently, for the +.Em atppc +implementation of +.Nm , +most of the services provided by +.Nm +will +translate into I/O instructions on actual registers. +However, other parallel port implementations may require more than +one I/O instruction to do a single logical register operation on +data, status and control virtual registers. +.Ss Description +The parallel port may operate in the following modes: +.Bl -bullet -offset indent +.It +Compatible (Centronics -- the standard parallel port mode) mode, +output byte +.It +Nibble mode, input 4-bits +.It +Byte (PS/2) mode, input byte +.It +Extended Capability Port (ECP) mode, bidirectional byte +.It +Enhanced Parallel Port (EPP) mode, bidirectional byte +.El +.Ss Compatible mode +This mode defines the protocol used by most PCs to transfer data +to a printer. +In this mode, data is placed on the port's data lines, the printer +status is checked for no errors and that it is not busy, and then +a data Strobe is generated by the software to clock the data to +the printer. +.Pp +Many I/O controllers have implemented a mode that uses a FIFO buffer +to transfer data with the Compatibility mode protocol. +This mode is referred to as +.Dq Fast Centronics +or +.Dq Parallel Port FIFO mode . +.Ss Nibble mode +The Nibble mode is the most common way to get reverse channel data +from a printer or peripheral. +When combined with the standard host to printer mode, a bidirectional +data channel is created. +Inputs are accomplished by reading 4 of the 8 bits of the status +register. +.Ss Byte mode +In this mode, the data register is used either for outputs and inputs. +All transfers are 8-bits long. +Channel direction must be negotiated when doing +.Tn IEEE 1248 +compliant operations. +.Ss Extended Capability Port mode +The ECP protocol was proposed as an advanced mode for communication +with printer and scanner type peripherals. +Like the EPP protocol, ECP mode provides for a high performance +bidirectional communication path between the host adapter and the +peripheral. +.Pp +ECP protocol features include: +.Bl -item -offset indent +.It +Run_Length_Encoding (RLE) data compression for host adapters (not +supported in these drivers) +.It +FIFO's for both the forward and reverse channels +.It +DMA or programmed I/O for the host register interface. +.El +.Ss Enhanced Parallel Port mode +The EPP protocol was originally developed as a means to provide a +high performance parallel port link that would still be compatible +with the standard parallel port. +.Pp +The EPP mode has two types of cycle: address and data. +What makes the difference at hardware level is the strobe of the +byte placed on the data lines. +Data are strobed with nAutofeed, addresses are strobed with nSelectin +signals. +.Pp +A particularity of the ISA implementation of the EPP protocol is +that an EPP cycle fits in an ISA cycle. +In this fashion, parallel port peripherals can operate at close to +the same performance levels as an equivalent ISA plug-in card. +.Pp +At software level, you may implement the protocol you wish, using +data and address cycles as you want. +This is for the +.Tn IEEE 1284 +compatible part. +Peripheral vendors may implement protocol handshake with the +following status lines: PError, nFault and Select. +Try to know how these lines toggle with your peripheral, allowing +the peripheral to request more data, stop the transfer and so on. +.Pp +At any time, the peripheral may interrupt the host with the nAck +signal without disturbing the current transfer. +.Ss Mixed modes +Some manufacturers, like SMC, have implemented chip sets that +support mixed modes. +With such chip sets, mode switching is available at any time by +accessing the extended control register. +All ECP-capable chip sets can switch between standard, byte, fast +centronics, and ECP modes. +Some ECP chip sets also support switching to EPP mode. +.Sh IEEE 1284 1994 Standard +.Ss Background +This standard is also named +.Do +IEEE Standard Signaling Method for a Bidirectional Parallel Peripheral +Interface for Personal Computers +.Dc . +It defines a signaling method for asynchronous, fully interlocked, +bidirectional parallel communications between hosts and printers +or other peripherals. +It also specifies a format for a peripheral identification string +and a method of returning this string to the host. +.Pp +This standard is architecture independent and only specifies dialog +handshake at signal level. +One should refer to architecture specific documentation in order +to manipulate machine dependent registers, mapped memory or other +methods to control these signals. +.Pp +The +.Tn IEEE 1284 +protocol is fully oriented with all supported parallel port modes. +The computer acts as master and the peripheral as slave. +.Pp +Any transfer is defined as a finite state automate. +It allows software to properly manage the fully interlocked scheme +of the signaling method. +The compatible mode is supported +.Dq as is +without any negotiation because it is the default, backward-compatible +transfer mode. +Any other mode must be firstly negotiated by the host to check it +is supported by the peripheral, then to enter one of the forward +idle states. +.Pp +At any time, the slave may want to send data to the host. +The host must negotiate to permit the peripheral to complete the +transfer. +Interrupt lines may be dedicated to the requesting signals +to prevent time consuming polling methods. +.Pp +If the host accepts the transfer, it must firstly negotiate the +reverse mode and then start the transfer. +At any time during reverse transfer, the host may terminate the +transfer or the slave may drive wires to signal that no more data +is available. +.Ss Implementation +.Tn IEEE 1284 Standard +support has been implemented at the top of the +.Nm +system as a set of procedures that perform high level functions +like negotiation, termination, transfer in any mode without bothering +you with low level characteristics of the standard. +.Pp +.Tn IEEE 1284 +interacts with the +.Nm +system as little as possible. +That means you still have to request the +.Nm +when you want to access it, and of course, release it when finished. +.Sh ARCHITECTURE +.Ss Chip set, ppbus and device layers +First, there is the +.Em chip set +layer, the lowest of the +.Nm +system. +It provides chip set abstraction through a set of low level functions +that maps the logical model to the underlying hardware. +.Pp +Secondly, there is the +.Em ppbus +layer that provides functions to: +.Bl -enum -offset indent +.It +share the parallel port bus among the daisy-chain like connected +devices +.It +manage devices linked to +.Nm +.It +propose an arch-independent interface to access the hardware layer. +.El +.Pp +Finally, the +.Em device +layer represents the traditional device drivers such as +.Xr lpt 4 +which now use an abstraction instead of real hardware. +.Ss Parallel port mode management +Operating modes are differentiated at various +.Nm +system layers. +There is a difference between a +.Em capability +and a +.Em mode . +A chip set may have a combination of capabilities, but at any one +time the +.Nm +system operates in a single mode. +.Pp +Nibble mode is a +.Em virtual +mode: the actual chip set would be in standard mode and the driver +would change its behavior to drive the right lines on the parallel +port. +.Pp +Each child device of +.Nm +must set its operating mode and other parameters whenever it requests +and gets access to its parent +.Nm . +.Sh FEATURES +.Ss The boot process +.Nm +attachment tries to detect any PnP parallel peripheral (according to +.%T "Plug and Play Parallel Port Devices" draft from (c)1993-4 +.Tn Microsoft Corporation ) +then probes and attaches known device drivers. +.Pp +During probe, device drivers should request the +.Nm +and try to determine if the right capabilities are present in the +system. +.Ss Bus request and interrupts +.Nm +reservation via a bus request is mandatory not to corrupt I/O of +other devices. +For example, when the +.Xr lpt 4 +device is opened, the bus will be +.Dq allocated +to the device driver and attempts to reserve the bus for another +device will fail until the +.Xr lpt 4 +driver releases the bus. +.Pp +Child devices can also register interrupt handlers to be called +when a hardware interrupt occurs. +In order to attach a handler, drivers must own the bus. +Drivers should have interrupt handlers that check to see if the +device still owns the bus when they are called and/or ensure that +these handlers are removed whenever the device does not own the +bus. +.Ss Micro-sequences +.Em Micro-sequences +are a general purpose mechanism to allow fast low-level manipulation +of the parallel port. +Micro-sequences may be used to do either standard (in +.Tn IEEE 1284 +modes) or non-standard transfers. +The philosophy of micro-sequences is to avoid the overhead of the +.Nm +layer for a sequence of operations and do most of the job at the +chip set level. +.Pp +A micro-sequence is an array of opcodes and parameters. +Each opcode codes an operation (opcodes are described in +.Xr microseq 9 ) . +Standard I/O operations are implemented at ppbus level whereas +basic I/O operations and microseq language are coded at adapter +level for efficiency. +.\" .Pp +.\" As an example, the +.\" .Xr vpo 4 +.\" driver uses micro-sequences to implement: +.\" .Bl -bullet -offset indent +.\" .It +.\" a modified version of the Nibble transfer mode +.\" .It +.\" various I/O sequences to initialize, select and allocate the +.\" peripheral +.\" .El +.Ss GPIO interface +Pins 1 through 17 of the parallel port can be controlled through the +.Xr gpio 4 +interface, pins 18 through 25 are hardwired to ground. +Pins 10 through 13 and pin 15 are input pins, the others are output +pins. +Some of the pins are inverted by the hardware, the values read or +written are adjusted accordingly. +Note that the +.Xr gpio 4 +interface starts at 0 when numbering pins. +.Sh SEE ALSO +.Xr atppc 4 , +.Xr gpio 4 , +.Xr lpt 4 , +.Xr plip 4 , +.Xr ppi 4 , +.\" Xr vpo 4 , +.Xr microseq 9 +.Sh HISTORY +The +.Nm +system first appeared in +.Fx 3.0 . +.Sh AUTHORS +This manual page is based on the +.Fx +.Nm ppbus +manual page. +The information has been updated for the +.Nx +port by Gary Thorpe. +.Sh BUGS +The +.Nm +framework is still experimental and not enabled by default yet. |
