8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man4 / sysbus.4
blob4c171db2e4b5b0517bab86455bafc678e3ba3c5b
1 '\" te
2 .\"  Copyright (c) 2004, Sun Microsystems, Inc.  All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH SYSBUS 4 "Nov 18, 2004"
7 .SH NAME
8 sysbus, isa \- device tree properties for ISA bus device drivers
9 .SH DESCRIPTION
10 .sp
11 .LP
12 Solaris for x86 supports  the \fBISA\fR bus as the system bus. Drivers for
13 devices on this buse use the device tree built by the booting system to
14 retrieve the necessary system resources used by the driver. These resources
15 include device I/O port addresses, any interrupt capabilities  that the device
16 can have, any DMA channels it can require, and any memory-mapped addresses it
17 can occupy.
18 .sp
19 .LP
20 Configuration files for \fBISA\fR device drivers are only necessary to describe
21 properties used by a particular driver that are not part of the standard
22 properties found in the device tree. See \fBdriver.conf\fR(4) for further
23 details of configuration file syntax.
24 .sp
25 .LP
26 The \fBISA\fR nexus drivers all belong to class \fBsysbus\fR. All bus drivers
27 of class \fBsysbus\fR recognize the following properties:
28 .sp
29 .ne 2
30 .na
31 \fB\fBinterrupts\fR\fR
32 .ad
33 .RS 16n
34 An arbitrary-length array where each element of the array represents a hardware
35 interrupt (IRQ) that is used by the device.  In general, this array only has
36 one entry unless a particular device uses more than one IRQ.
37 .sp
38 Solaris defaults all \fBISA\fR interrupts to IPL 5.  This interrupt priority
39 can be overridden by placing an \fBinterrupt-priorities\fR property in a .conf
40 file for the driver. Each entry in the array of integers for the
41 \fBinterrupt-priorities\fR property is matched one-to-one with the elements in
42 the \fBinterrupts\fR property to specify the \fBIPL\fR value that is used by
43 the system for this interrupt in this driver. This is the priority that this
44 device's interrupt handler receives relative to the interrupt handlers of other
45 drivers.  The priority is an integer from  \fB1\fR to \fB16\fR. Generally,
46 disks are assigned a priority of \fB5\fR, while mice and printers are lower,
47 and serial communication devices are higher, typically \fB7\fR. \fB10\fR is
48 reserved by the system and must not be used.  Priorities \fB11\fR and greater
49 are high level priorities and are generally not recommended (see
50 \fBddi_intr_hilevel\fR(9F)).
51 .sp
52 The driver can refer to the elements of this array by index using
53 \fBddi_add_intr\fR(9F). The index into the array is passed as the
54 \fIinumber\fR argument of \fBddi_add_intr()\fR.
55 .sp
56 Only devices that generate interrupts have an \fBinterrupts\fR property.
57 .RE
59 .sp
60 .ne 2
61 .na
62 \fB\fBreg\fR\fR
63 .ad
64 .RS 16n
65 An arbitrary-length array where each element of the array consists of a 3-tuple
66 of integers.  Each array element describes a contiguous memory address range
67 associated with the device on the bus.
68 .sp
69 The first integer of the tuple specifies the memory type, \fB0\fR specifies a
70 memory range and \fB1\fR specifies an I/O range. The second integer specifies
71 the base address of the memory range. The third integer of each 3-tuple
72 specifies  the size, in bytes, of the mappable region.
73 .sp
74 The driver can refer to the elements of this array by index, and construct
75 kernel mappings to these addresses using \fBddi_map_regs\fR(9F). The index into
76 the array is passed as the  \fIrnumber\fR argument of \fBddi_map_regs()\fR.
77 .sp
78 All  \fBsysbus\fR devices have \fBreg\fR properties.  The first tuple of this
79 property  is used to construct the address part of the device name under
80 \fB/devices\fR. In the case of \fBPlug and Play ISA\fR devices, the first tuple
81 is a special tuple that does not denote a memory range, but is used by the
82 system only to create the address part of the device name.  This special tuple
83 can be recognized by determining if the top bit of the first integer is set to
84 a one.
85 .sp
86 The order of the tuples in the reg property is determined by the boot system
87 probe code and depends on the characteristics of each particular device.
88 However, the reg property maintains the same order of entries from system boot
89 to system boot.  The recommended way to determine the reg property for a
90 particular device is to use the \fBprtconf\fR(1M) command after installing the
91 particular device.  The output of the \fBprtconf\fR command can be examined to
92 determine the reg property for any installed device.
93 .sp
94 You can use the \fBddi_get*\fR and \fBddi_put*\fR family of functions to access
95 register space from a high-level interrupt context.
96 .RE
98 .sp
99 .ne 2
101 \fB\fBdma-channels\fR\fR
103 .RS 16n
104 A list of integers that specifies the DMA channels used by this device. Only
105 devices that use DMA channels have a \fBdma-channels\fR property.
108 .SH ATTRIBUTES
111 See \fBattributes\fR(5) for descriptions of the following attributes:
116 box;
117 c | c
118 l | l .
119 ATTRIBUTE TYPE  ATTRIBUTE VALUE
121 Architecture    x86
124 .SH SEE ALSO
127 \fBprtconf\fR(1M), \fBdriver.conf\fR(4), \fBscsi\fR(4), \fBattributes\fR(5),
128 \fBddi_add_intr\fR(9F), \fBddi_intr_hilevel\fR(9F), \fBddi_map_regs\fR(9F),
129 \fBddi_prop_op\fR(9F)
132 \fIWriting Device Drivers\fR