man Pages(7): Special Files
  Sök endast i den här boken
Ladda ner denna bok i PDF

NAME

ata - AT attachment disk driver

AVAILABILITY

x86

DESCRIPTION

The ata driver supports disk interfaces conforming to the AT Attachment specification. This includes IDE and ESDI interfaces. It excludes the MFM, RLL, ST506, and ST412 interfaces. The driver initializes itself in accordance with the information found in the configuration file (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.
NOTE: If your controller hangs when attempting to use higher block factors, you may be unable to reboot the system. We recommend that the tuning be carried out using a duplicate of the /kernel 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.
#
# 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(7), cmdk(7), dpt(7), eha(7)