1sysbus(4)                        File Formats                        sysbus(4)
2
3
4

NAME

6       sysbus, isa - device tree properties for ISA bus device drivers
7

DESCRIPTION

9       Solaris  for  x86  supports  the ISA bus as the system bus. Drivers for
10       devices on this buse use the device tree built by the booting system to
11       retrieve  the  necessary  system  resources  used  by the driver. These
12       resources include device I/O port addresses, any interrupt capabilities
13       that the device can have, any DMA channels it can require, and any mem‐
14       ory-mapped addresses it can occupy.
15
16
17       Configuration files for  ISA  device  drivers  are  only  necessary  to
18       describe  properties  used  by a particular driver that are not part of
19       the standard properties found in the device  tree.  See  driver.conf(4)
20       for further details of configuration file syntax.
21
22
23       The  ISA  nexus  drivers all belong to class sysbus. All bus drivers of
24       class sysbus recognize the following properties:
25
26       interrupts      An arbitrary-length array where  each  element  of  the
27                       array  represents  a  hardware  interrupt (IRQ) that is
28                       used by the device.  In general, this  array  only  has
29                       one entry unless a particular device uses more than one
30                       IRQ.
31
32                       Solaris defaults all ISA interrupts  to  IPL  5.   This
33                       interrupt  priority  can  be  overridden  by placing an
34                       interrupt-priorities property in a .conf file  for  the
35                       driver.  Each  entry  in  the array of integers for the
36                       interrupt-priorities  property  is  matched  one-to-one
37                       with the elements in the interrupts property to specify
38                       the IPL value that is  used  by  the  system  for  this
39                       interrupt  in  this  driver.  This is the priority that
40                       this device's interrupt handler  receives  relative  to
41                       the  interrupt handlers of other drivers.  The priority
42                       is an integer from   1  to  16.  Generally,  disks  are
43                       assigned  a  priority of 5, while mice and printers are
44                       lower, and serial  communication  devices  are  higher,
45                       typically  7. 10 is reserved by the system and must not
46                       be used.  Priorities 11 and greater are high level pri‐
47                       orities   and   are   generally  not  recommended  (see
48                       ddi_intr_hilevel(9F)).
49
50                       The driver can refer to the elements of this  array  by
51                       index  using ddi_add_intr(9F). The index into the array
52                       is passed as the  inumber argument of ddi_add_intr().
53
54                       Only devices that generate interrupts  have  an  inter‐
55                       rupts property.
56
57
58       reg             An  arbitrary-length  array  where  each element of the
59                       array consists of a 3-tuple of  integers.   Each  array
60                       element  describes  a  contiguous  memory address range
61                       associated with the device on the bus.
62
63                       The first integer of the  tuple  specifies  the  memory
64                       type, 0 specifies a memory range and 1 specifies an I/O
65                       range. The second integer specifies the base address of
66                       the  memory  range.  The  third integer of each 3-tuple
67                       specifies  the size, in bytes, of the mappable region.
68
69                       The driver can refer to the elements of this  array  by
70                       index, and construct kernel mappings to these addresses
71                       using ddi_map_regs(9F). The index  into  the  array  is
72                       passed as the  rnumber argument of ddi_map_regs().
73
74                       All   sysbus  devices  have  reg properties.  The first
75                       tuple of  this  property   is  used  to  construct  the
76                       address part of the device name under  /devices. In the
77                       case of Plug and Play ISA devices, the first tuple is a
78                       special  tuple that does not denote a memory range, but
79                       is used by the system only to create the  address  part
80                       of  the  device name.  This special tuple can be recog‐
81                       nized by determining if the top bit of the first  inte‐
82                       ger is set to a one.
83
84                       The  order  of the tuples in the reg property is deter‐
85                       mined by the boot system probe code and depends on  the
86                       characteristics  of  each  particular device.  However,
87                       the reg property maintains the same  order  of  entries
88                       from  system  boot to system boot.  The recommended way
89                       to determine the reg property for a  particular  device
90                       is  to use the prtconf(1M) command after installing the
91                       particular device.  The output of the  prtconf  command
92                       can  be  examined to determine the reg property for any
93                       installed device.
94
95                       You can use the ddi_get* and ddi_put* family  of  func‐
96                       tions to access register space from a high-level inter‐
97                       rupt context.
98
99
100       dma-channels    A list of integers that specifies the DMA channels used
101                       by this device. Only devices that use DMA channels have
102                       a dma-channels property.
103
104

ATTRIBUTES

106       See attributes(5) for descriptions of the following attributes:
107
108
109
110
111       ┌─────────────────────────────┬─────────────────────────────┐
112       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
113       ├─────────────────────────────┼─────────────────────────────┤
114       │Architecture                 │x86                          │
115       └─────────────────────────────┴─────────────────────────────┘
116

SEE ALSO

118       prtconf(1M), driver.conf(4), scsi(4), attributes(5),  ddi_add_intr(9F),
119       ddi_intr_hilevel(9F), ddi_map_regs(9F), ddi_prop_op(9F)
120
121
122       Writing Device Drivers
123
124
125
126SunOS 5.11                        18 Nov 2004                        sysbus(4)
Impressum