Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

aha(7D)

cmdk(7D)

dpt(7D)

eha(7D)

ata(7D)

NAME

ata − AT attachment disk driver

SYNOPSIS

ata@ioaddr,0

AVAILABILITY

x86

DESCRIPTION

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. 

CONFIGURATION

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.  It is recommended that the tuning be carried out using a duplicate of the /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 probably should not be changed. 

EXAMPLES

The following is an example configuration file. 

#
# primary controller
#
# for higher performance - set block factor to 16
name="ata" class="sysbus" intr=5,14 reg=0x1f0,0,0
ioaddr1=0x1f0 ioaddr2=0x3f0
drive0_block_factor=0x1 drive1_block_factor=0x1
max_transfer=0x100
flow_control="dmult" queue="qsort" disk="dadk" ;
#
# secondary controller
#
name="ata" class="sysbus" intr=5,15 reg=0x170,0,0
ioaddr1=0x170 ioaddr2=0x370
drive0_block_factor=0x1 drive1_block_factor=0x1
max_transfer=0x100
flow_control="dmult" queue="qsort" disk="dadk" ;

FILES

/kernel/drv/ata the driver

/kernel/drv/ata.conf
the configuration file

SEE ALSO

aha(7D), cmdk(7D), dpt(7D), eha(7D)

SunOS 5.5/SPARC  —  Last change: 14 Mar 1995

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026