summaryrefslogtreecommitdiff
path: root/static/netbsd/man9/isapnp.9
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man9/isapnp.9')
-rw-r--r--static/netbsd/man9/isapnp.9239
1 files changed, 239 insertions, 0 deletions
diff --git a/static/netbsd/man9/isapnp.9 b/static/netbsd/man9/isapnp.9
new file mode 100644
index 00000000..8d6d6f30
--- /dev/null
+++ b/static/netbsd/man9/isapnp.9
@@ -0,0 +1,239 @@
+.\" $NetBSD: isapnp.9,v 1.12 2011/05/30 01:50:07 dyoung 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.
+.\"
+.\" 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 June 19, 2001
+.Dt ISAPNP 9
+.Os
+.Sh NAME
+.Nm ISAPNP ,
+.Nm isapnp_devmatch ,
+.Nm isapnp_config ,
+.Nm isapnp_unconfig
+.Nd Plug 'n' Play ISA bus
+.Sh SYNOPSIS
+.In sys/bus.h
+.In dev/isa/isareg.h
+.In dev/isa/isavar.h
+.In dev/isapnp/isapnpreg.h
+.In dev/isapnp/isapnpvar.h
+.In dev/isapnp/isapnpdevs.h
+.Ft int
+.Fn isapnp_devmatch "const struct isapnp_attach_args *ipa" \
+"const struct isapnp_devinfo *dinfo" "int *variant"
+.Ft int
+.Fn isapnp_config "bus_space_tag_t iot" "bus_space_tag_t memt" \
+"struct isapnp_attach_args *ipa"
+.Ft void
+.Fn isapnp_unconfig "bus_space_tag_t iot" "bus_space_tag_t memt" \
+"struct isapnp_attach_args *ipa"
+.Sh DESCRIPTION
+The machine-independent
+.Nm
+subsystem provides support for ISAPNP devices.
+ISAPNP devices were developed to support "plug and play" connection
+on the ISA bus.
+In all other aspects, the ISAPNP bus is same as the ISA bus (see
+.Xr isa 9 ) .
+.Pp
+Devices on the ISAPNP bus are uniquely identified by a 7-character
+string.
+Resources, such as I/O address space and interrupts, should
+be allocated to the devices by the machine firmware.
+On some machine the firmware seems doesn't work correctly and
+.Nx
+will attempt to allocate resources as necessary.
+.Sh DATA TYPES
+Drivers attached to the ISAPNP bus will make use of the following data
+types:
+.Bl -tag -width compact
+.It Fa struct isapnp_matchinfo
+.Nx
+kernel contains a database of known ISAPNP devices.
+Each entry in the database has a
+.Em struct isapnp_matchinfo .
+It contains the following members:
+.Bd -literal
+ const char *name; /* device id string */
+ int variant; /* variant flag */
+.Ed
+.It Fa struct isapnp_devinfo
+Defines the devices supported by a driver.
+It contains pointer to an array of supported
+.Em struct isapnp_matchinfo
+structures and a pointer to another array of compatibility devices.
+It contains the following members:
+.Bd -literal
+ struct isapnp_matchinfo *devlogic;
+ int nlogic;
+ struct isapnp_matchinfo *devcompat;
+ int ncompat;
+.Ed
+.It Fa struct isapnp_region
+Describes ISAPNP bus-space regions.
+It contains the following members:
+.Bd -literal
+ bus_space_handle_t h;
+ uint32_t base;
+ uint32_t length;
+.Ed
+.It Fa struct isapnp_pin
+Describes the wiring of interrupts and DMA pins from the ISAPNP bus
+onto the host processor.
+It contains the following members:
+.Bd -literal
+ uint8_t num;
+ uint8_t flags:4;
+ uint8_t type:4;
+ uint16_t bits;
+.Ed
+.It Fa struct isapnp_attach_args
+A structure used to inform the driver of the device properties.
+It contains the following members:
+.Bd -literal
+ bus_space_tag_t ipa_iot; /* isa i/o space tag */
+ bus_space_tag_t ipa_memt; /* isa mem space tag */
+ bus_dma_tag_t ipa_dmat; /* isa dma tag */
+ isa_chipset_tag_t ipa_ic;
+ struct isapnp_region ipa_io[ISAPNP_NUM_IO];
+ struct isapnp_region ipa_mem[ISAPNP_NUM_MEM];
+ struct isapnp_region ipa_mem32[ISAPNP_NUM_MEM32];
+ struct isapnp_pin ipa_irq[ISAPNP_NUM_IRQ];
+ struct isapnp_pin ipa_drq[ISAPNP_NUM_DRQ];
+.Ed
+.El
+.Sh FUNCTIONS
+.Bl -tag -width compact
+.It Fn isapnp_devmatch "ipa" "dinfo" "variant"
+Matches the device described by the attachment
+.Fa ipa
+with the device-match information in
+.Fa dinfo .
+If the device is matched,
+.Fn isapnp_devmatch
+returns a non-zero value and variant is the flag describing the device
+variant.
+.Fn isapnp_devmatch
+returns zero if the device is not found.
+.It Fn isapnp_config "iot" "memt" "ipa"
+Allocate device resources specified by
+.Fa ipa .
+The device is mapped into the I/O and memory bus spaces specified by
+bus-space tags
+.Fa iot
+and
+.Fa memt
+respectively.
+The
+.Fa ipa_io ,
+.Fa ipa_mem ,
+.Fa ipa_mem32 ,
+.Fa ipa_irq ,
+and
+.Fa ipa_drq
+members of
+.Fa ipa
+are updated to reflect the allocated and mapped resources.
+.Fn isapnp_config
+returns zero on success and non-zero on error.
+.It Fn isapnp_unconfig "iot" "memt" "ipa"
+Free the resources allocated by
+.Fn isapnp_config .
+.El
+.Sh AUTOCONFIGURATION
+During autoconfiguration, an ISAPNP driver will receive a pointer to
+.Fa struct isapnp_attach_args
+describing the device attached to the ISAPNP bus.
+Drivers match the device using
+.Fn ispnp_devmatch .
+.Pp
+During the driver attach step, driver should initially allocate and
+map resources using
+.Fn isapnp_config .
+The I/O (memory) bus-space resources can be accessed using the
+bus-space tag
+.Fa ipa_iot
+.Po
+.Fa ipa_memt
+.Pc
+and the bus-space handle
+.Fa ipa_io[0].h
+.Po
+.Fa ipa_mem[0].h
+.Pc
+members of
+.Fa ipa .
+.Pp
+Interrupts should be established using
+.Fn isa_intr_establish
+.Po
+see
+.Xr isa 9
+.Pc
+with the IRQ specified by the
+.Fa ipa_irq[0].num
+member of
+.Fa ipa .
+Similarly, the standard
+.Xr isa 9
+DMA interface should be used with the
+.Fa ipa_drq[0].num
+member of
+.Fa ipa .
+.Sh DMA SUPPORT
+Extensive DMA facilities are provided through the
+.Xr isa 9
+DMA facilities.
+.Sh CODE REFERENCES
+The
+.Nm
+subsystem itself is implemented within the file
+.Pa sys/dev/isapnp/isapnp.c .
+The database of the known devices exists within the file
+.Pa sys/dev/isapnp/isapnpdevs.c
+and is generated automatically from the file
+.Pa sys/dev/isapnp/isapnpdevs .
+New devices should be added to this file.
+The database can be regenerated using the Makefile
+.Pa sys/dev/isapnp/Makefile.isapnpdevs .
+.Sh SEE ALSO
+.Xr isa 4 ,
+.Xr isapnp 4 ,
+.Xr pnpbios 4 ,
+.Xr autoconf 9 ,
+.Xr bus_dma 9 ,
+.Xr bus_space 9 ,
+.Xr driver 9 ,
+.Xr isa 9
+.Rs
+.%T "Plug and Play ISA Specification V1.0a"
+.%D May 5 1994
+.Re
+.Sh HISTORY
+The machine-independent ISAPNP subsystem appear in
+.Nx 1.3 .