diff options
author | nsouch <nsouch@FreeBSD.org> | 1998-10-28 00:44:22 +0000 |
---|---|---|
committer | nsouch <nsouch@FreeBSD.org> | 1998-10-28 00:44:22 +0000 |
commit | 5d56183f5d37f1c7cbc11f47e7b788a04ae3628d (patch) | |
tree | b0041924e0677301080087a3eab571d277993c8e /share | |
parent | b7ace7b46d66ca25e1d3bf9bbe72fb8df26127df (diff) | |
download | FreeBSD-src-5d56183f5d37f1c7cbc11f47e7b788a04ae3628d.zip FreeBSD-src-5d56183f5d37f1c7cbc11f47e7b788a04ae3628d.tar.gz |
Finally they arrive! ppbus (Parallel Port Bus framework) manpages.
Diffstat (limited to 'share')
-rw-r--r-- | share/man/man4/imm.4 | 59 | ||||
-rw-r--r-- | share/man/man4/plip.4 | 71 | ||||
-rw-r--r-- | share/man/man4/ppbus.4 | 267 | ||||
-rw-r--r-- | share/man/man4/vpo.4 | 56 |
4 files changed, 453 insertions, 0 deletions
diff --git a/share/man/man4/imm.4 b/share/man/man4/imm.4 new file mode 100644 index 0000000..cbc3070 --- /dev/null +++ b/share/man/man4/imm.4 @@ -0,0 +1,59 @@ +.\" Copyright (c) 1998, 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. +.\" +.\" +.Dd October 27, 1998 +.Dt IMM 4 +.Os FreeBSD +.Sh NAME +.Nm imm +.Nd +Parallel to SCSI interface driver +.Sh SYNOPSIS +.Cd "controller vpo at ppbus?" +.Pp +For one or more SCSI busses: +.Cd "controller scbus0 at vpo0" +.Sh DESCRIPTION +The imm driver is an extension of the +.Xr vpo 4 +driver for the Iomega Matchmaker Parallel to SCSI interface. This driver +is mostly written with the +.Xr microseq 9 +mechanism. +.Sh SEE ALSO +.Xr ppbus 4 , +.Xr vpo 4 , +.Xr microseq 9 , +.Xr scsi 4 , +.Xr sd 4 +.Sh HISTORY +The +.Nm +manual page first appeared in +.Fx 3.0 . +.Sh AUTHOR +This +manual page was written by +.An Nicolas Souchu . diff --git a/share/man/man4/plip.4 b/share/man/man4/plip.4 new file mode 100644 index 0000000..63674ad --- /dev/null +++ b/share/man/man4/plip.4 @@ -0,0 +1,71 @@ +.\" Copyright (c) 1998, 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. +.\" +.\" +.Dd March 5, 1998 +.Dt PLIP 4 +.Os FreeBSD +.Sh NAME +.Nm plip +.Nd +Parallel port network interface +.Sh SYNOPSIS +.Cd "device plip at ppbus?" +.Sh DESCRIPTION +The +.Em plip +driver is the port of the +.Xr lp 4 +driver to the +.Xr ppbus 4 +system. +.Pp +One purpose of this port is to allow parallel port sharing with other +parallel devices. Parallel port bus allocation has been added to the original +.Xr lp 4 +driver. Secondly, inb()/outb() calls have been replaced by ppbus function +calls. plip is now arch-independent thanks to the ppbus interface. See +.Xr ppbus 4 +for more info about the ppbus system. +.Pp +The ppbus is allocated when the parallel network interface comes up, then +released when the interface goes down. Consequently, the parallel port bus +is unavailable to other devices when the network interface is up. plip is +interrupt driven and needs to own the bus to receive parallel port interrupts. +.Pp +Please, ensure the +.Xr ppc 4 +entry in you MACHINE file has the net interrupt level... +.Sh SEE ALSO +.Xr ppbus 4 , +.Xr lp 4 , +.Sh HISTORY +The +.Nm +manual page first appeared in +.Fx 3.0 . +.Sh AUTHOR +This +manual page was written by +.An Nicolas Souchu . diff --git a/share/man/man4/ppbus.4 b/share/man/man4/ppbus.4 new file mode 100644 index 0000000..1a860ed --- /dev/null +++ b/share/man/man4/ppbus.4 @@ -0,0 +1,267 @@ +.\" Copyright (c) 1998, 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. +.\" +.\" +.Dd March 1, 1998 +.Dt PPBUS 4 +.Os FreeBSD +.Sh NAME +.Nm ppbus +.Nd +Parallel port bus system +.Sh SYNOPSIS +.Cd "controller ppbus" +.Pp +.Cd "controller vpo at ppbus?" +.Pp +.Cd "device nlpt at ppbus?" +.Cd "device plip at ppbus?" +.Cd "device ppi at ppbus?" +.Sh DESCRIPTION +The +.Em ppbus +system provides a uniform, modular and architecture-independent +system for the implementation of drivers to control various parallel devices, +and to utilize different parallel port chipsets. +.Sh DEVICE DRIVERS +In order to write new drivers or port existing drivers, the ppbus system +provides the following facilities: +.Bl -bullet -item -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 user interface named +.Xr ppi 4 +that allows parallel port access from outside the kernel without confliting +with kernel-in drivers. +.El +.Ss Developing new drivers +.Pp +The ppbus 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" +.El +.Ss Porting existing drivers +.Pp +Another approach to the ppbus 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 nlpt Ta "lpt printer driver" +.It Sy plip Ta "lp parallel network interface driver" +.El +.Pp +ppbus should let you port any other software even from other operating systems +that provide similar services. +.Sh PARALLEL PORT CHIPSETS +Parallel port chipset support is provided by +.Xr ppc 4 . +.Pp +The ppbus system provides functions and macros to allocate a new +parallel port bus, then initialize it and upper peripheral device drivers. +.Pp +ppc makes chipset detection and initialisation and then calls ppbus attach +functions to initialize the ppbus system. +.Sh PARALLEL PORT MODEL +The logical parallel port model chosen for the ppbus system is the PC's +parallel port model. Consequently, for the i386 implementation of ppbus, +most of the services provided by ppc are macros for inb() +and outb() calls. But, for an other architecture, accesses to one of our logical +registers (data, status, control...) may require more than one I/O access. +.Ss Description +The parallel port may operate in the following modes: +.Bl -bullet -item -offset indent +.It +compatible mode, also called Centronics mode +.It +bidirectional 8/4-bits mode, also called NIBBLE mode +.It +byte mode, also called PS/2 mode +.It +Extended Capability Port mode, ECP +.It +Enhanced Parallel Port mode, EPP +.It +mixed ECP+EPP or ECP+PS/2 modes +.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 sofware 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 +"Fast Centronics" or "Parallel Port FIFO mode". +.Ss Bidirectional mode +The NIBBLE mode is the most common way to get reverse channel data from a +printer or peripheral. Combined with the standard host to printer mode, it +provides a complete bidirectional channel. +.Pp +In this mode, outputs are 8-bits long. 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. Then, +any transfer is 8-bits long. +.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 +.It +FIFOs for both the forward and reverse channels +.It +DMA as well as 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. +.Ss Mixed modes +Some manufacturers, like SMC, have implemented chipsets that support mixed +modes. With such chipsets, mode switching is available at any time by +accessing the extended control register. +.Sh ARCHITECTURE +.Ss adapter, ppbus and device layers +First, there is the +.Em adapter +layer, the lowest of the ppbus system. It provides +chipset abstraction throw 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 ppbus +.It +propose an arch-independent interface to access the hardware layer. +.El +.Pp +Finaly, the +.Em device +layer gathers the parallel peripheral device drivers. +.Pp +Each layer has its own C structure respectively ppb_adapter, ppb_data and +ppb_device. The ppb_link structure gathers pointers to other structures and +info shared among different layers. +.Pp +See description of these structures in +.Xr ppbconf 9 . +.Ss Parallel modes managment +We have to differenciate operating modes at various ppbus system layers. +Actually, ppbus and adapter operating modes on one hands and for each +one, current and available modes are seperated. +.Pp +With this level of abstraction a particular chipset may commute from any +native mode the any other mode emulated with extended modes without +disturbing upper layers. For example, most chipsets support NIBBLE mode as +native and emulated with ECP and/or EPP. +.Pp +This achitecture should support IEEE1284-1994 modes. +.Sh FEATURES +.Ss The boot process +The boot process starts with the probe phasis of the +.Xr ppc 4 +driver during ISA bus (PC architecture) initialisation. During attachment of +the ppc driver, a new ppbus structure is allocated, initialized +(linked to the adapter structure) then passed to the function +.Fn ppb_attachdevs "struct ppb_data *ppb" . +.Pp +.Fn ppb_attachdevs "" +tries to detect any PnP parallel peripheral (according to +.%T "Plug and Play Parallel Port Devices" +draft from (c)1993-4 Microsoft Corporation) +then probes and attaches known device drivers. +.Pp +During probe, device drivers are supposed to request the ppbus and try to +set their operating mode. This mode will be saved in the context structure and +returned each time the driver requests the ppbus. +.Ss Bus allocation and interrupts +ppbus allocation is mandatory not to corrupt I/O of other devices. An other +usage of ppbus allocation is to reserve the port and receive incoming +interrupts. +.Pp +Interrupts are connected to the +.Fn ppcintr "" +function which delivers them to ppbus directly with a +.Fn ppb_intr "struct ppb_link *pl" +call. ppbus redirects the +interrupt to the bus owner's handler if defined. Consequently, if a device +wants to be delivered an interrupt, it must own the ppbus. +.Ss Microsequences +.Em Microsequences +is a general purpose mechanism to allow fast low-level +manipulation of the parallel port. Microsequences may be used to do either +standard (in IEEE1284 modes) or non-standard transfers. The philosophy of +microsequences is to avoid the overhead of the ppbus layer and do most of +the job at adapter level. +.Pp +A microsequence 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 langage are coded at adapter level for efficiency. +.Pp +As an example, the +.Xr vpo 4 +driver uses microsequences 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 +.Sh SEE ALSO +.Xr ppbconf 9 , +.Xr ppc 4 , +.Xr ppi 4 , +.Xr vpo 4 , +.Xr nlpt 4 , +.Xr plip 4 +.Sh HISTORY +The +.Nm +manual page first appeared in +.Fx 3.0 . +.Sh AUTHOR +This +manual page was written by +.An Nicolas Souchu . diff --git a/share/man/man4/vpo.4 b/share/man/man4/vpo.4 new file mode 100644 index 0000000..28f8ed4 --- /dev/null +++ b/share/man/man4/vpo.4 @@ -0,0 +1,56 @@ +.\" Copyright (c) 1998, 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. +.\" +.\" +.Dd March 5, 1998 +.Dt VP0 4 +.Os FreeBSD +.Sh NAME +.Nm vpo +.Nd +Parallel to SCSI interface driver +.Sh SYNOPSIS +.Cd "controller vpo at ppbus?" +.Pp +For one or more SCSI busses: +.Cd "controller scbus0 at vpo0" +.Sh DESCRIPTION +The primary purpose of the +.Em vpo +driver is to provide access to the Adaptec AIC-7110 SCSI controller built +in the Iomega ZIP drive. But it should also work with the Iomega Jaz Traveller +parallel to SCSI interface. +.Sh SEE ALSO +.Xr ppbus 4 , +.Xr scsi 4 , +.Xr sd 4 +.Sh HISTORY +The +.Nm +manual page first appeared in +.Fx 3.0 . +.Sh AUTHOR +This +manual page was written by +.An Nicolas Souchu . |