The ata driver supports disk and ATAPI CD/DVD devices conforming to the AT Attachment specification including IDE interfaces. Support is provided for both parallel ATA (PATA) and serial ATA (SATA) interfaces.
Refer to the Solaris x86 Hardware Compatibility List for a list of supported controllers.
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 master 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 for the primary controller when in compatibility mode are:
Supported settings for the secondary controller when in compatibility mode are:
# use cdrom drive /dev/rdsk/c*s2 dev_cdrom.so cdrom%d
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 environment, 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 modifications 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.
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 administrator using the GRUB kernel boot command line or the eeprom(1M) command.
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 manpage.
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 property 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.
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 /platform/i86pc/kernel directory subtree. This ensures that a bootable kernel subtree exists in the event of a failed test.
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 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 Revert to defaults property
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 Change DMA property using GRUB
To change a DMA property using the GRUB kernel boot command line:
Add: -B atapi-cd-dma-enabled=1
Add: atapi-cd-dma-enabled=1 to the end of the current -B option. For example:-B foo=bar,atapi-cd-dma-enabled=1.
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:
See attributes(5) for descriptions of the following attributes:
INCITS T13 ATA/ATAPI-7 specifications