summaryrefslogtreecommitdiff
path: root/share/man/man4/ppbus.4
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man4/ppbus.4')
-rw-r--r--share/man/man4/ppbus.4315
1 files changed, 0 insertions, 315 deletions
diff --git a/share/man/man4/ppbus.4 b/share/man/man4/ppbus.4
deleted file mode 100644
index 74a06bdd9bcc0..0000000000000
--- a/share/man/man4/ppbus.4
+++ /dev/null
@@ -1,315 +0,0 @@
-.\" 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.
-.\"
-.\"
-.Dd March 1, 1998
-.Dt PPBUS 4
-.Os FreeBSD
-.Sh NAME
-.Nm ppbus
-.Nd
-Parallel port bus system
-.Sh SYNOPSIS
-.Cd "controller ppbus0"
-.Pp
-.Cd "controller vpo0 at ppbus?"
-.Pp
-.Cd "device nlpt0 at ppbus?"
-.Cd "device plip0 at ppbus?"
-.Cd "device ppi0 at ppbus?"
-.Cd "device pps0 at ppbus?"
-.Cd "device lpbb0 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"
-.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
-.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 IEEE1284-1994 Standard
-.Ss Background
-This standard is also named "IEEE Standard Signaling Method for a
-Bidirectional Parallel Peripheral Interface for Personal Computers". It
-defines a signaling method for asynchroneous, 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 outside of the bidirectional data stream.
-.Pp
-This standard is architecture independent and only specifiy dialog handshake
-at signal level. One should refer to any architecture specific document in
-order to manipulate machine dependent registers, mapped memory or whatelse
-to control these signals.
-.Pp
-The IEEE1284 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 "as is" without any negociation because it
-is compatible. Any other mode must be firstly negociated 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. This is only
-possible from forward idle states (nibble, byte, ecp...). So, the
-host must have previously negociated to permit the peripheral to
-request transfer. Interrupt lines may be dedicated to the requesting signals
-to prevent time consuming polling methods.
-.Pp
-But peripheral requests are only a hint to the master host. If the host
-accepts the transfer, it must firstly negociate the reverse mode and then
-starts 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
-IEEE1284 Standard support has been implemented at the top of the ppbus system
-as a set of procedures that perform high level functions like negociation,
-termination, transfer in any mode without bothering you with low level
-caracteristics of the stantdard.
-.Pp
-IEEE1284 interacts with the ppbus system as least as possible. That means
-you still have to request the ppbus when you want to access it, the negociate
-function doesn't do it for you. And of course, release it later.
-.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 .