COHERENT manpages
This page displays the COHERENT manpage for at [Drivers for hard-disk partitions].
List of available manpages
Index
at -- Device Driver
Drivers for hard-disk partitions
/dev/at* are the COHERENT system's AT devices for the hard-disk's
partitions. Each device is assigned major-device number 11, and may be
accessed as a block- or character-special device.
at handles two drives with up to four partitions each:
-> Minor devices 0 through 3 identify the partitions on drive 0.
-> Minor devices 4 through 7 identify the partitions on drive 1.
-> Minor device 128 allows access to all of drive 0.
-> Minor device 129 allows access to all of drive 1.
To modify the offsets and sizes of the partitions, use the command fdisk on
the special device for each drive (minor devices 128 and 129).
To access a disk partition through COHERENT, directory /dev must contain a
device file that has the appropriate type, major and minor device numbers,
and permissions. To create a special file for this device, invoke the
command mknod as follows:
/etc/mknod /dev/at0a b 11 0 ; : drive 0, partition 0
/etc/mknod /dev/at0b b 11 1 ; : drive 0, partition 1
/etc/mknod /dev/at0c b 11 2 ; : drive 0, partition 2
/etc/mknod /dev/at0d b 11 3 ; : drive 0, partition 3
/etc/mknod /dev/at0x b 11 128 ; : drive 0, partition table
Drive Characteristics
When processing BIOS I/O requests prior to booting COHERENT, many IDE
drives use translation-mode drive parameters: number of heads, cylinders,
and sectors per track. These numbers are called ``translation-mode''
parameters because they do not reflect true physical drive geometry. The
translation-mode parameters used by the BIOS code present on your host
adapter can be obtained using the command info from within the tertiary-
boot routine tboot. (For details on info, see the Lexicon entry for tboot.)
It is often necessary to patch the at driver with BIOS values of
translation-mode parameters in order to boot COHERENT on IDE hard drives.
In COHERENT versions 3.1.0 and later, drive parameters are stored in table
atparm in the driver. For the first hard drive, number of cylinders is a
short (two-byte) value at atparm+0, number of heads is a single byte at
atparm+2, and number of sectors per track is a single byte at atparm+14.
For the second hard drive, number of cylinders is a short value at
atparm+16, number of heads is a single byte at atparm+18, and number of
sectors per track is a single byte at atparm+30. For example, if testcoh is
a kernel linked with the at driver and you want to patch it for a second
hard drive with 829 cylinders, 10 heads, and 26 sectors per track, you can
do:
/conf/patch testcoh atparm+16=829:s atparm+18=10:c atparm+30=26:c
To read the characteristics of a hard disk once the at driver is running,
use the call to ioctl of the following form:
#include <sys/hdioctl.h>
hdparm_t hdparms;
. . .
ioctl(fd, HDGETA, (char *)&hdparms);
where fd is a file descriptor for the hard-disk device and hdparms receives
the disk characteristics.
Non-Standard and Unsupported Types of Drives
Prior releases of the the COHERENT at hard-disk driver would not support
disk drives whose geometry was not supported by the BIOS disk parameter
tables. COHERENT adds support for these drives during installation by
``patching'' the disk parameters into the bootstrap and the /coherent image
on the hard disk.
Files
/dev/at* -- Block-special files
/dev/rat* -- Character-special files
See Also
device drivers,
fdisk,
hai,
ideinfo
Notes
The driver at offers two varieties of polling: normal and alternate.
Normal, as its name implies, is used with most varieties of AT controllers.
Alternate polling is for Perstor controllers and some other older
equipment. Using the wrong type of polling causes frequent controller
timeouts and bad-track messages.
at also lets you specify the number of seconds to wait for a response from
the drive after an I/O request. The default value is six. Some IDE drives
occasionally become unresponsive for long intervals (several seconds) while
control firmware makes adjustments to drive operation.
To set either the type of polling or the default waiting period, su to the
superuser root; then cd to directory /etc/conf and run the script at/mkdev.
This script will walk you through describing your AT controller to
COHERENT. Once you have run this script, execute the command
/etc/conf/bin/idmkcoh -o cohtest
to create a test kernel that incorporates your changes; then reboot your
system and invoke the new kernel, as described in the Lexicon entry
booting. Note that the changes you make to the driver will not be seen by
your COHERENT system until you boot the new kernel.
The at driver lets you have up to two AT hard disks on your system. Note,
however, that in our experience, it is very difficult to combine different
brands of AT hard disks and have both run successfully. This is especially
true with Conner drives, which apparently do not cooperate with other IDE
drives as master and slave. Caveat utilitor.



