unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

sysbus(4)                        File Formats                        sysbus(4)



NAME
       sysbus, isa - device tree properties for ISA bus device drivers

DESCRIPTION
       Solaris  for  x86  supports  the ISA bus as the system bus. Drivers for
       devices on this buse 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 capabilities
       that the device can have, any DMA channels it can require, and any mem-
       ory-mapped addresses it can occupy.

       Configuration files for  ISA  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 configuration file syntax.

       The  ISA  nexus  drivers all belong to class sysbus. All bus drivers of
       class sysbus recognize the following properties:

       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 interrupts  to  IPL  5.   This
                       interrupt  priority  can  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 is  used  by  the  system  for  this
                       interrupt  in  this  driver.  This is the priority that
                       this device's interrupt handler  receives  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 pri-
                       orities   and   are   generally  not  recommended  (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  have  an  inter-
                       rupts 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  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 recog-
                       nized by determining if the top bit of the first  inte-
                       ger 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 maintains the same  order  of  entries
                       from  system  boot to system boot.  The recommended way
                       to determine the reg property for a  particular  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 inter-
                       rupt context.



       dma-channels    A list of integers that specifies the DMA channels used
                       by this device. Only devices that use DMA channels have
                       a dma-channels property.



ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:


       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE Architecturex86


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



SunOS 5.10                        18 Nov 2004                        sysbus(4)