How to enable DMA mode in X64 Solaris


While perusing the system logfiles on a server running X64 Solaris 10 6/06 this weekend, I noticed several errors similar to the following:

$ tail -10 /var/adm/messages

Jul 16 15:45:49 neutron genunix: [ID 935449 kern.info] ATA DMA off:
disabled. Control with "atapi-cd-dma-enabled" property
Jul 16 15:45:49 neutron genunix: [ID 882269 kern.info] PIO mode 4
selected
Jul 16 15:45:49 neutron genunix: [ID 935449 kern.info] ATA DMA off:
disabled. Control with "atapi-cd-dma-enabled" property
Jul 16 15:45:49 neutron genunix: [ID 882269 kern.info] PIO mode 4
selected
Jul 16 15:45:49 neutron genunix: [ID 935449 kern.info] ATA DMA off:
disabled. Control with "atapi-cd-dma-enabled" property
Jul 16 15:45:49 neutron genunix: [ID 882269 kern.info] PIO mode 4
selected
Jul 16 15:45:49 neutron genunix: [ID 935449 kern.info] ATA DMA off:
disabled. Control with "atapi-cd-dma-enabled" property
Jul 16 15:45:49 neutron genunix: [ID 882269 kern.info] PIO mode 4
selected
Jul 16 15:45:49 neutron genunix: [ID 773945 kern.info] UltraDMA mode 6
selected

The syslog entry mentioned that the “atapi-cd-dma-enabled” eeprom property can be used to enable DMA on the CD drive, so I ran the eeprom utility with the “atapi-cd-dma-enabled=1” option to enable DMA:

$ eeprom "atapi-cd-dma-enabled=1"

To verify that the setting took effect, I ran the eeprom utility:

$ eeprom

kbd-type=US-English
ata-dma-enabled=1
atapi-cd-dma-enabled=1
ttyb-rts-dtr-off=false
ttyb-ignore-cd=true
ttya-rts-dtr-off=false
ttya-ignore-cd=true
ttyb-mode=9600,8,n,1,-
ttya-mode=9600,8,n,1,-
lba-access-ok=1
prealloc-chunk-size=0x2000
bootpath=/pci@0,0/pci-ide@11,1/ide@0/cmdk@0,0:a
console=text

This stopped the errors from appearing in my system logfiles, and the CD drive is performing awesome.

This article was posted by Matty on 2006-07-17 18:31:00 -0400 -0400