ata(7D)




NAME

     ata - AT attachment disk driver


SYNOPSIS

     ata@1,ioaddr


DESCRIPTION

     The ata driver supports disk and CD-ROM interfaces  conform-
     ing to the  AT Attachment specification including IDE inter-
     faces. It excludes the MFM, RLL,  ST506,  and  ST412  inter-
     faces. Support is provided for CD_ROM drives that conform to
     the Small Form Factor (SFF)  ATA  Packet  Interface  (ATAPI)
     specification: SFF-8020 revision 1.2.


PRECONFIGURE

     If two IDE drives share the same controller,  you  must  set
     one  to  master  and the other to slave. If both an IDE disk
     drive and an IDE CD-ROM drive utilize the  same  controller,
     you  can designate the disk drive as the master with the CD-
     ROM drive as the slave, although this is not  mandatory.  If
     there  is  only one drive on a controller, it must be set to
     master.

  Supported Settings
     Primary controller:

        o  IRQ Level: 14

        o  I/O Address: 0x1F0

     Secondary controller:

        o  IRQ Level: 15

        o  I/O Address: 0x170

     If an IDE CD-ROM drive is installed, the system BIOS parame-
     ter for that device should be:

        o  Drive Type: Not installed

     If an enhanced IDE drive is installed, set the  system  BIOS
     as follows:

        o  Enhanced IDE Drive: Enabled

          Note:

          If the BIOS supports autoconfiguration, use this facil-
          ity  to set the number of heads, cylinders, and sectors
          for the IDE disk drive. If this capability is not  sup-
          ported  by  the  BIOS, use the settings provided by the
          disk manufacturer.

  Known Problems and Limitations
        o  Panasonic LK-MC579B and the Mitsumi FX34005 IDE CD-ROM
           drives cannot be used to install the Solaris operating
           environment and are not supported.

        o  Some  vendors  ship  PCI-equipped  machines  with  IDE
           interfaces  on  the  motherboard.  A  number  of these
           machines use the  CMD-604  PCI-IDE  controller.   This
           chip  provides  two  IDE  interfaces.  The primary IDE
           interface is at I/O address 0x1F0  and  the  secondary
           interface  at  0x170. However, this chip cannot handle
           simultaneous I/O on both IDE interfaces.  This  defect
           causes the Solaris software to hang if both interfaces
           are used.  Use  only  the  primary  IDE  interface  at
           address 0x1F0.

        o  You cannot boot from the  third  or  fourth  IDE  disk
           drives;  however  you  can install Solaris software on
           them.

        o  The Solaris Volume Management software does  not  work
           with the Sony CDU-55E CD-ROM drive no matter how it is
           configured (as the master or the slave).  Comment  out
           the  following  line  in  the  file  /etc/vold.conf to
           prevent vold from hanging the controller:

           # use cdrom drive /dev/rdsk/c*s2 dev_cdrom.so cdrom%d

        o  NEC CDR-260/CDR-260R/CDR-273 and  Sony  CDU-55E  ATAPI
           CD-ROM drives might fail during installation.

        o  Sony CDU-701 CD-ROM drives must  be  upgraded  to  use
           firmware version 1.0r or later to support booting from
           the CD.

  Direct Memory Access (DMA) and PCI-IDE Systems
     Direct Memory Access is enabled by default. To  disable  DMA
     for  the  ata  driver, do the following steps after you have
     installed the Solaris operating environment:

     1. Run the Solaris (x86 Edition) Device Configuration Assis-
        tant  from  the  boot diskette or the installation CD (if
        your system supports CD-ROM booting).

          Note:  After you boot using the boot diskette, the  new
          ata-dma-enabled  property  value  is  preserved  on the
          diskette. This means  that  the  changed  value  is  in
          effect each time you use the boot diskette.

     2. Press F2_Continue to scan for devices.

     3. Press F2_Continue to display a list of  boot  devices  on
        the Boot Solaris menu.

     4. Go to the View/Edit Property Settings menu.

     5. Press F4_Boot Tasks, select View/Edit Property  Settings,
        and press F2_Continue.

     6. Change the value of the ata-dma-enabled property. A value
        of  1  indicates that DMA is enabled and 0 indicates that
        DMA is disabled.

           o  Select the ata-dma-disabled property from the  list
              and press F3_Change.

           o  Type 0 and press F2_Continue to disable DMA.

           o  Press F2_Back to return to the Boot Tasks menu.

           o  Press F3_Back to return to the Boot Solaris menu.

           o  Select the device from which you  want  to  install
              (network   adapter   or  CD-ROM  drive)  and  press
              F2_Continue.


CONFIGURATION

     The driver initializes itself in accordance with the  infor-
     mation  found  in  the  configuration  file   ata.conf  (see
     below). The only user configurable items in this file are:

          drive0_block_factor

           drive1_block_factor
                ATA controllers support some amount of  buffering
                (blocking).  The purpose is to interrupt the host
                when an entire buffer full of data has been  read
                or written instead of using an interrupt for each
                sector.  This reduces interrupt overhead and sig-
                nificantly   increases   throughput.  The  driver
                interrogates the controller to  find  the  buffer
                size.   Some  controllers  hang when buffering is
                used, so the values in the configuration file are
                used  by  the  driver  to  reduce  the  effect of
                buffering (blocking). The values presented may be
                chosen from 0x1, 0x2, 0x4, 0x8 and 0x10.

                The values as shipped are set to  0x1,  and  they
                can be tuned to increase performance.

                If your controller hangs when attempting  to  use
                higher block factors, you may be unable to reboot
                the system. For x86 based systems, it  is  recom-
                mended  that  the  tuning  be carried out using a
                duplicate of the /platform/i86pc/kernel directory
                subtree.  This will ensure that a bootable kernel
                subtree exists in the event of a failed test.

          max_transfer
                This  value  controls  the  size  of   individual
                requests for consecutive disk sectors.  The value
                may range from   0x1  to  0x100.   Higher  values
                yield  higher  throughput.  The system is shipped
                with a value  of   0x100,  which  should  not  be
                changed.

          ata-revert-to-defaults

           revert-<diskmodel>
                When preparing to reboot (or shutdown),  the  ata
                driver  issues  a command that allows the disk to
                revert to power-on defaults when  it  receives  a
                software  reset  (SRST) sequence. This is usually
                appropriate as preparation for the boot sequence.
                However,  this  doesn't  work properly on certain
                combinations  of  disk  and  system  ROM  (BIOS).
                Solaris  maintains a list of disks known to cause
                this  problem;  however  the  list  is  not  all-
                inclusive and other models may also be affected.

                To disallow revert to power-on defaults  for  all
                ATA disks, set ata-revert-to-defaults to 0.

                To disallow revert to power-on defaults only  for
                disks   of   a   particular  model,  set  revert-
                <diskmodel> to 0.

                Explicitly set ata-revert-to-defaults or  revert-
                <diskmodel>  (x86 only) to 1 to override Solaris'
                built-in list and  allow  reverting  to  power-on
                defaults  for  all disks or a particular model of
                disk.

                To  determine  the  string  to   substitute   for
                <diskmodel>,  boot  your  system (you may have to
                press the reset button or power-cycle)  and  then
                go to /var/adm/messages. Look for the string "IDE
                device at targ" or "ATAPI device  at  targ."  The
                next  line will contain the word "model" followed
                by the model number and a comma. Ignore all char-
                acters except letters, digits, ".", "_", and "-".
                Change uppercase letters to lower  case.  If  the
                string   revert-<diskmodel>  is  longer  than  31
                characters, use only the first 31 characters.


EXAMPLES

     Example 1: Sample ata Configuration File

     # for higher performance - set block factor to 16
          drive0_block_factor=0x1 drive1_block_factor=0x1
          max_transfer=0x100
          flow_control="dmult" queue="qsort" disk="dadk" ;

     Example 2: ata-revert-to-defaults Property

     # tail ata.conf
     # timer resolution.
     #
     #       standby=-1      don't modify the drive's current setting
     #       standby=0       disable standby timer
     #       standby=n       n == number of seconds to set the timer to
     #

     #standby=900;

     revert-st320420a=0;

     Output of /var/adm/messages:

     Aug 17 06:49:43 caesar ata:[ID 640982 kern.info] IDE device at targ 0,
                                lun 0 lastlun 0x0
     Aug 17 06:49:43 caesar ata:[ID 521533 kern.info] model ST320420A, stat


FILES

     /platform/i86pc/kernel/drv/ata
           Device file.

     /platform/i86pc/kernel/drv/ata.conf
           Configuration file.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Architecture                | x86                         |
    |_____________________________|_____________________________|


SEE ALSO


     attributes(5), cmdk(7D)


Man(1) output converted with man2html