Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/share/man/man9 Programmer's guide for MicroChannel.



details:   https://anonhg.NetBSD.org/src/rev/4a40a7baa7a8
branches:  trunk
changeset: 516349:4a40a7baa7a8
user:      gmcgarry <gmcgarry%NetBSD.org@localhost>
date:      Mon Oct 22 03:25:26 2001 +0000

description:
Programmer's guide for MicroChannel.

diffstat:

 share/man/man9/mca.9 |  197 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 197 insertions(+), 0 deletions(-)

diffs (202 lines):

diff -r 1249d0f4228f -r 4a40a7baa7a8 share/man/man9/mca.9
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/share/man/man9/mca.9      Mon Oct 22 03:25:26 2001 +0000
@@ -0,0 +1,197 @@
+.\"     $NetBSD: mca.9,v 1.1 2001/10/22 03:25:26 gmcgarry Exp $
+.\"
+.\" Copyright (c) 2001 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Gregory McGarry.
+.\"
+.\" 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.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"        This product includes software developed by the NetBSD
+.\"        Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\"    contributors may be used to endorse or promote products derived
+.\"    from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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 7, 2001
+.Dt MCA 9
+.Os
+.Sh NAME
+.Nm MCA ,
+.Nm mca_intr_establish ,
+.Nm mca_intr_disestablish ,
+.Nm mca_intr_evcnt ,
+.Nm mca_conf_read ,
+.Nm mca_conf_write
+.Nd MicroChannel Architecture bus
+.Sh SYNOPSIS
+.Fd #include <machine/bus.h>
+.Fd #include <dev/mca/mcavar.h>
+.Fd #include <dev/tc/mcadevs.h>
+.Ft void *
+.Fn mca_intr_establish "mca_chipset_tag_t mc" "mca_intr_handle_t hdl" \
+"int level" "int (*handler)(void *)" "void *arg"
+.Ft void
+.Fn mca_intr_disestablish "mca_chipset_tag_t mc" "mca_intr_handle_t hdl"
+.Ft const struct evcnt *
+.Fn mca_intr_evcnt "mca_chipset_tag_t mc" "mca_intr_handle_t hdl"
+.Ft int
+.Fn mca_conf_read "mca_chipset_tag_t mc" "int slot" "int reg"
+.Ft void
+.Fn mca_conf_write "mca_chipset_tag_t mc" "int slot" "int reg" \
+"int data"
+.Sh DESCRIPTION
+The
+.Nm
+device provides support for IBM's MicroChannel Architecture bus found
+on IBM PS/2 systems and selected workstations.  It was designed as a
+replacement bus for the ISA bus found on IBM's older machines.
+However, the bus specifications were only available under license, so
+MCA did not achieve widespread acceptance in the industry.
+.Pp
+Being a replacement for the ISA bus, the MCA bus does share some
+similar aspects with the ISA bus.  Some MCA devices can be detected
+via the usual ISA-style probing.  However, most device detection is
+done through the Programmable Option Select (POS) registers.  These
+registers provide a window into a device to determine device-specific
+properties and configuration.  The configuration of devices and their
+POS registers is performed using IBM's system configuration software.
+.Pp
+The MCA bus uses level-triggered interrupts while the ISA bus uses
+edge-triggered interrupts.  Level triggered interrupts have the
+advantage that they can be shared among multiple device.  Therefore,
+most MCA-specific devices should be coded with shared interrupts in
+mind.
+.Sh DATA TYPES
+Drivers for devices attached to the MCA bus will make use of the
+following data types:
+.Bl -tag -width compact
+.It Fa mca_chipset_tag_t
+Chipset tag for the MCA bus.
+.It Fa mca_intr_handle_t
+The opaque handle describing an established interrupt handler.
+.It Fa struct mca_attach_args
+A structure use to inform the driver of MCA bus properties.
+It contains the following members:
+.Bd -literal
+       bus_space_tag_t ma_iot;         /* MCA I/O space tag */
+       bus_space_tag_t ma_memt;        /* MCA mem space tag */
+       bus_dma_tag_t ma_dmat;          /* MCA DMA tag */
+       int ma_slot;                    /* MCA slot number */
+       int ma_pos[8];                  /* MCA POS values */
+       int ma_id;                      /* MCA device */
+.Ed
+.El
+.Sh FUNCTIONS
+.Bl -tag -width compact
+.It Fn mca_intr_establish "mc" "hdl" "level" "handler" "arg"
+Establish a MCA interrupt handler on the MCA bus specified by
+.Fa mc
+for the interrupt described completely by
+.Fa hdl .
+The priority of the interrupt is specified by
+.Fa level .
+When the interrupt occurs the function
+.Fa handler
+is called with argument
+.Fa arg .
+.It Fn mca_intr_disestablish "mc" "hdl"
+Dis-establish the interrupt handler on the MCA bus specified by
+.Fa mc
+for the interrupt described completely
+.Fa hdl .
+.It Fn mca_intr_evcnt "mc" "hdl"
+Do interrupt event counting on the MCA bus specified by
+.Fa mc
+for the event described completely by
+.Fa hdl .
+.It Fn mca_conf_read "mc" "slot" "reg"
+Read the POS register
+.Fa reg
+for the device in slot
+.Fa slot
+on the MCA bus specified by
+.Fa mc .
+.It Fn mca_conf_write "mc" "slot" "reg" "data"
+Write data
+.Fa data
+to the POS register
+.Fa reg
+for the device in slot
+.Fa slot
+on the MCA bus specified by
+.Fa mc .
+.El
+.Sh AUTOCONFIGURATION
+The MCA bus is a direct-connection bus.  During autoconfiguration, the
+parent specifies the MCA device ID for the found device in the
+.Fa ma_id
+member of the 
+.Em mca_attach_args
+structure.  Drivers should match on the device ID.  Device
+capabilities and configuration information should be read from device
+POS registers using
+.Fn mca_conf_read .
+Some important configuration information found in the POS registers
+include the I/O base address, memory base address and interrupt
+number.  The location of these configurable options with the POS
+registers are device specific.
+.Sh DMA SUPPORT
+The MCA bus supports 32-bit, bidirectional DMA transfers.  Currently,
+no machine-independent support for MCA DMA is available.
+.Sh CODE REFERENCES
+This section describes places within the
+.Nx
+source tree where actual code implementing or utilising the
+machine-independent MCA subsystem can be found.  All pathnames are
+relative to
+.Pa /usr/src.
+.Pp
+The MCA subsystem itself is implemented within the file
+.Pa sys/dev/mca/mca_subr.c .
+Machine-dependent portions can be found in
+.Pa sys/arch/<arch>/mca/mca_machdep.c .
+The database of known devices exists within the file
+.Fa sys/dev/mca/mcadevs_data.h
+and is generated automatically from the file
+.Pa sys/dev/mca/mcadevs .
+New vendor and product identifiers should be added to this
+file.  The database can be regenerated using the Makefile
+.Pa sys/dev/mca/Makefile.mcadevs .
+.Pp
+A good source of information about MCA devices is IBM's system
+configuration disk.  The disk contains .adf files which describe the
+location of device configuration options in the POS registers.
+.Sh SEE ALSO
+.Xr mca 4 ,
+.Xr autoconf 9 ,
+.Xr bus_dma 9 ,
+.Xr bus_space 9 ,
+.Xr driver 9 ,
+.Xr isa 9
+.Sh BUGS
+The machine-independent
+.Nm
+driver does not currently support DMA.  MCA devices which require DMA
+operation currently access the DMA capabilities directly.
\ No newline at end of file



Home | Main Index | Thread Index | Old Index