sysbus(4)
NAME
sysbus, isa, eisa - device tree properties for ISA and EISA
bus device drivers
DESCRIPTION
Solaris for x86 supports the ISA and EISA buses as the sys-
tem bus. Drivers for devices on these buses use the device
tree built by the booting system to retrieve the necessary
system resources used by the driver. These resources
include device I/O port addresses, any interrupt capabili-
ties
that the device may have, any DMA channels it may require,
and any memory-mapped addresses it may occupy.
Configuration files for ISA and EISA device drivers are only
necessary to describe properties used by a particular driver
that are not part of the standard properties found in the
device tree. See driver.conf(4) for further details of con-
figuration file syntax.
The ISA and EISA nexus drivers all belong to class sysbus.
All bus drivers of class sysbus recognize the following pro-
perties:
interrupts
An arbitrary-length array where each element of the
array represents a hardware interrupt (IRQ) that is
used by the device. In general, this array only has
one entry unless a particular device uses more than
one IRQ.
Solaris defaults all ISA and EISA interrupts to IPL 5.
This interrupt priority may be overridden by placing
an interrupt-priorities property in a .conf file for
the driver. Each entry in the array of integers for
the interrupt-priorities property is matched one-to-
one with the elements in the interrupts property to
specify the IPL value that will be used by the system
for this interrupt in this driver. This is the prior-
ity that this device's interrupt handler will receive
relative to the interrupt handlers of other drivers.
The priority is an integer from 1 to 16. Generally,
disks are assigned a priority of 5, while mice and
printers are lower, and serial communication devices
are higher, typically 7. 10 is reserved by the system
and must not be used. Priorities 11 and greater are
high level priorities and are generally not recom-
mended (see ddi_intr_hilevel(9F)).
The driver can refer to the elements of this array by
index using ddi_add_intr(9F). The index into the
array is passed as the inumber argument of
ddi_add_intr().
Only devices that generate interrupts will have an
interrupts property.
reg An arbitrary-length array where each element of the
array consists of a 3-tuple of integers. Each array
element describes a contiguous memory address range
associated with the device on the bus.
The first integer of the tuple specifies the memory
type, 0 specifies a memory range and 1 specifies an
I/O range. The second integer specifies the base
address of the memory range. The third integer of each
3-tuple specifies the size, in bytes, of the mappable
region.
The driver can refer to the elements of this array by
index, and construct kernel mappings to these
addresses using ddi_map_regs(9F). The index into the
array is passed as the rnumber argument of
ddi_map_regs().
All sysbus devices will have reg properties. The
first tuple of this property is used to construct the
address part of the device name under /devices. In
the case of Plug and Play ISA devices, the first tuple
is a special tuple that does not denote a memory
range, but is used by the system only to create the
address part of the device name. This special tuple
can be recognized by determining if the top bit of the
first integer is set to a one.
The order of the tuples in the reg property is deter-
mined by the boot system probe code and depends on the
characteristics of each particular device. However,
the reg property will maintain the same order of
entries from system boot to system boot. The recom-
mended way to determine the reg property for a partic-
ular device is to use the prtconf(1M) command after
installing the particular device. The output of the
prtconf command can be examined to determine the reg
property for any installed device.
You can use the ddi_get* and ddi_put* family of func-
tions to access register space from a high-level
interrupt context.
dma-channels
A list of integers that specifies the DMA channels
used by this device. Only devices that use DMA chan-
nels will have a dma-channels property.
It is recommended that drivers for devices connected to the
system bus recognize the following standard property names:
slot The number of the slot containing the device, if
known. (Only for EISA devices).
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Architecture | x86 |
|_____________________________|_____________________________|
SEE ALSO
prtconf(1M), driver.conf(4), scsi(4), attributes(5),
ddi_add_intr(9F), ddi_intr_hilevel(9F), ddi_map_regs(9F),
ddi_prop_op(9F)
Writing Device Drivers
Man(1) output converted with
man2html