ata(7D) Devices ata(7D)NAMEata - AT attachment disk driver
SYNOPSIS
ide@unit-address
DESCRIPTION
The ata driver supports disk and ATAPI CD/DVD devices conforming to the
AT Attachment specification including IDE interfaces. Support is pro‐
vided for both parallel ATA (PATA) and serial ATA (SATA) interfaces.
Refer to the Solaris x86 Hardware Compatibility List for a list of sup‐
ported controllers.
PRECONFIGURE
A PCI IDE controller can operate in compatibility mode or in PCI-native
mode. If more than one controller is present in the system, only one
can operate in compatibility mode.
If two PATA drives share the same controller, you must set one to mas‐
ter and the other to slave. If both a PATA disk drive and a PATA 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.
Supported Settings
Supported settings for the primary controller when in compatibility
mode are:
o IRQ Level: 14
o I/O Address: 0x1F0
Supported settings for the secondary controller when in compatibility
mode are:
o IRQ Level: 15
o I/O Address: 0x170
Note -
When in PCI-native mode, the IRQ and I/O address resources are con‐
figured by the system BIOS.
Known Problems and Limitations
o This driver does not support any RAID features present on a
PATA/SATA controller. As a result, you should configure BIOS
to select IDE mode rather than RAID mode. Some systems may
require updating BIOS to allow switching modes.
o On some systems, the SATA controller must have option ROM
enabled or BIOS will not consider SATA drives as bootable
devices.
o Panasonic LK-MC579B and the Mitsumi FX34005 IDE CD-ROM
drives are not supported and cannot be used to install the
Solaris operating environment.
o CMD-604 is unable to 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 inter‐
face at address 0x1F0.
o The Solaris Volume Management software does not work with
the Sony CDU-55E CD-ROM drive whether configured as device 0
or 1 (master or slave). Comment out the following line in
the /etc/vold.conf file 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.
o The Compact Flash(CF) card can work as an ATA disk through a
CF<->ATA adapter. If both card and adapter implement CF
Ver2.0, DMA is supported. If either does not, set ata-disk-
dma-enabled to 0.
CONFIGURATION
The ata driver properties are usually set in ata.conf. However, it may
be convenient, or in some cases necessary, for you to set some of the
DMA related properties as a system global boot environment property.
You set or modify properties in the boot environment immediately prior
to booting the Solaris kernel using the GRUB boot loader kernel boot
command line. You can also set boot environment properties using the
eeprom(1M) command or by editing the bootenv.rc configuration file. If
a property is set in both the driver's ata.conf file and the boot envi‐
ronment, the ata.conf property takes precedence.
Property modifications other than with the GRUB kernel boot command
line are not effective until you reboot the system. Property modifica‐
tions via the GRUB kernel boot command line do not persist across
future boots.
Direct Memory Access is enabled by default for disks and disabled for
ATAPI CD/DVD devices. If you are trying to enable DMA when booting from
a CD/DVD, you must first set atapi-cd-dma-enabled to 1 using the GRUB
kernel boot command line.
ata-dma-enabled This property is examined before the DMA
properties discussed below. If it is set to
0, DMA is disabled for all ATA/ATAPI
devices, and no further property checks are
made. If this property is absent or is set
to 1, DMA status is determined by further
examining one of the other properties listed
below.
ata-disk-dma-enabled This property is examined only for ATA disk
devices, and only if ata-dma-enabled is not
set to 0.
If ata-disk-dma-enabled set to 0, DMA is
disabled for all ATA disks in the system. If
this property is absent or set to 1, DMA is
enabled for all ATA disks and no further
property checks are made. If needed, this
property should be created by the adminis‐
trator using the GRUB kernel boot command
line or the eeprom(1M) command.
atapi-cd-dma-enabled This property is examined only for ATAPI
CD/DVD devices, and only if ata-dma-enabled
is not set to 0.
If atapi-cd-dma-enabled is absent or set to
0, DMA is disabled for all ATAPI CD/DVD's.
If set to 1, DMA is enabled and no further
property checks are made.
The Solaris installation program creates
this property in the boot environment with a
value of 1. It can be changed with the
GRUB kernel boot command line or eeprom(1M)
as shown in the Example section of this man‐
page.
atapi-other-dma-enabled This property is examined only for non-
CD/DVD ATAPI devices such as ATAPI tape
drives, and only if ata-dma-enabled is not
set to 0.
If atapi-other-dma-enabled is set to 0,
DMA is disabled for all non-CD/DVD ATAPI
devices. If this property is absent or set
to 1, DMA is enabled and no further prop‐
erty checks are made.
If needed, this property should be created
by the administrator using the GRUB kernel
boot command line or the eeprom(1M) command.
drive0_block_factor ATA controllers support some amount of
drive1_block_factor 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 sec‐
tor. 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 con‐
figuration 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 recommended that tuning be performed
using a duplicate of the /plat‐
form/i86pc/kernel directory subtree. This
ensures that a bootable kernel subtree
exists in the event of a failed test.
ata-revert-to-defaults When rebooting or shutting down, the driver
revert—<diskmodel> can set a feature which allows the drive to
return to the power-on settings when the
drive receives a software reset (SRST)
sequence. If this property is present and
set to 1, the driver will set the feature to
revert to defaults during reset. Setting
this property to 1 may prevent some systems
from soft-rebooting and would require
cycling the power to boot the system. If
this property is not present the system will
not set the feature to revert to defaults
during reset.
To determine the string to substitute for
<diskmodel>, boot your system (you may have
to press the reset button or power-cycle)
and then view /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 upper‐
case letters to lower case. If the string
revert-<diskmodel> is longer than 31 charac‐
ters, 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 Reverting to Defaults Property
revert-st320420a=1;
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
Example 3 Changing the DMA Property using GRUB
To change a DMA property using the GRUB kernel boot command line:
1. Reset the system.
2. Press "e" to interrupt the timeout.
3. Select the kernel line.
4. Press "e."
5. If there is no existing -B option:
Add: -B atapi-cd-dma-enabled=1
else...
Add: atapi-cd-dma-enabled=1 to the end of the current -B
option. For example:-B foo=bar,atapi-cd-dma-enabled=1.
6. Press Enter to commit the edited line to memory. (Does not
write to the disk and is non-persistent).
7. Press b to boot the modified entry.
Example 4 Change DMA Property with eeprom(1M)
To enable DMA for optical devices while the Solaris kernel is running
with the eeprom(1M) system command:
eeprom 'atapi-cd-dma-enabled=1'
FILES
/platform/i86pc/kernel/drv/ata
Device driver.
/platform/i86pc/kernel/drv/ata.conf
Configuration file.
/boot/solaris/bootenv.rc
Boot environment variables file for Solaris x86. eeprom(1M) can be
used to modify properties in this file.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Architecture │x86 │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOeeprom(1M), attributes(5)
INCITS T13 ATA/ATAPI-7 specifications
SunOS 5.10 16 May 2011 ata(7D)