|
| ata - AT attachment disk driver |
SYNOPSIS
|
The ata driver supports disk and CD-ROM interfaces conforming to the AT Attachment specification including IDE interfaces. It excludes the MFM, RLL, ST506, and ST412 interfaces. 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.
|
|
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:
- IRQ Level: 14
- I/O Address: 0x1F0
Secondary controller:
- IRQ Level: 15
- I/O Address: 0x170
If an IDE CD-ROM drive is installed, the system BIOS parameter for that device should be:
- Drive Type: Not installed
If an enhanced IDE drive is installed, set the system BIOS as follows:
- Enhanced IDE Drive: Enabled
Note If the BIOS supports autoconfiguration, use this facility to set the number of heads, cylinders, and sectors for the IDE disk drive. If this capability is not supported by the BIOS, use the settings provided by the disk manufacturer. |
Known Problems and Limitations
|
- Panasonic LK-MC579B and the Mitsumi FX34005 IDE CD-ROM drives cannot be used to install the Solaris operating environment and are not supported.
- 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.
- You cannot boot from the third or fourth IDE disk drives; however you can install Solaris software on them.
- 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
|
- NEC CDR-260/CDR-260R/CDR-273 and Sony CDU-55E ATAPI CD-ROM drives might fail during installation.
- 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:
- Run the Solaris (Intel Platform Edition) Device Configuration Assistant 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.
- Press F2_Continue to scan for devices.
- Press F2_Continue to display a list of boot devices on the Boot Solaris menu.
- Go to the View/Edit Property Settings menu.
- Press F4_Boot Tasks, select View/Edit Property Settings, and press F2_Continue.
- 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.
- Select the ata-dma-disabled property from the list and press F3_Change.
- Type 0 and press F2_Continue to disable DMA.
- Press F2_Back to return to the Boot Tasks menu.
- Press F3_Back to return to the Boot Solaris menu.
- Select the device from which you want to install (network adapter or CD-ROM drive) and press F2_Continue.
|
|
|
The driver initializes itself in accordance with the information 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 significantly 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 IA based systems, it is recommended 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> (IA 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 characters 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.
|
| 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
|
|
|
|
-
/platform/i86pc/kernel/drv/ata
- Device file.
-
/platform/i86pc/kernel/drv/ata.conf
- Configuration file.
|
|
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | IA |
|
| |