|
|
1.1 root 1: aatt -- Device Driver
2:
3:
4: /ddeevv/aatt* are the COHERENT system's AT devices for the hard-disk's
5: partitions. Each device is assigned major-device number 11, and may be
6: accessed as a block- or character-special device.
7:
8: aatt handles two drives with up to four partitions each. Minor devices 0
9: through 3 identify the partitions on drive 0. Minor devices 4 through 7
10: identify the partitions on drive 1. Minor device 128 allows access to all
11: of drive 0. Minor device 129 allows access to all of drive 1. To modify
12: the offsets and sizes of the partitions, use the command ffddiisskk on the
13: special device for each drive (minor devices 128 and 129).
14:
15: To access a disk partition through COHERENT, directory /ddeevv must contain a
16: device file that has the appropriate type, major and minor device numbers,
17: and permissions. To create a special file for this device, invoke the
18: command mmkknnoodd as follows:
19:
20: /etc/mknod /dev/at0a b 11 0 ; : drive 0, partition 0
21: /etc/mknod /dev/at0b b 11 1 ; : drive 0, partition 1
22: /etc/mknod /dev/at0c b 11 2 ; : drive 0, partition 2
23: /etc/mknod /dev/at0d b 11 3 ; : drive 0, partition 3
24: /etc/mknod /dev/at0x b 11 128 ; : drive 0, partition table
25:
26: _K_e_r_n_e_l _V_a_r_i_a_b_l_e_s
27: Please note that the COHERENT 286 kernel references variables with a
28: trailing underscore character; for example, aattppaarrmm_. The COHERENT 386
29: kernel, however, does _n_o_t use a trailing underscore; for example, aattppaarrmm.
30:
31: The following descriptions apply to both COHERENT 286 and COHERENT 386, but
32: the notation will be in the COHERENT-386 form.
33:
34: _D_r_i_v_e _C_h_a_r_a_c_t_e_r_i_s_t_i_c_s
35: When processing BIOS I/O requests prior to booting COHERENT, many IDE
36: drives use ``translation-mode'' drive parameters: number of heads,
37: cylinders, and sectors per track. These numbers are called translation-
38: mode parameters because they do not reflect true physical drive geometry.
39: The translation-mode parameters used by the BIOS code present on your host
40: adapter can be obtained using the iinnffoo command from ttbboooott. It is often
41: necessary to patch the aatt driver with BIOS values of translation-mode
42: parameters in order to boot COHERENT on IDE hard drives. In COHERENT
43: versions 3.1.0 and later, drive parameters are stored in table aattppaarrmm in
44: the driver. For the first hard drive, number of cylinders is a short (two-
45: byte) value at aattppaarrmm+00, number of heads is a single byte at aattppaarrmm+22, and
46: number of sectors per track is a single byte at aattppaarrmm+1144. For the second
47: hard drive, number of cylinders is a short value at aattppaarrmm+1166, number of
48: heads is a single byte at aattppaarrmm+1188, and number of sectors per track is a
49: single byte at aattppaarrmm+3300. For example, if tteessttccoohh is a kernel linked with
50: the aatt driver and you want to patch it for a second hard drive with 829
51: cylinders, 10 heads, and 26 sectors per track, you can do:
52:
53: /conf/patch testcoh atparm+16=829:s atparm+18=10:c atparm+30=26:c
54:
55: To read the characteristics of a hard disk once the aatt driver is running,
56: use the call to iiooccttll of the following form:
57:
58: #include <sys/hdioctl.h>
59: hdparm_t hdparms;
60: . . .
61: ioctl(fd, HDGETA, (char *)&hdparms);
62:
63: where _f_d is a file descriptor for the hard disk device and _h_d_p_a_r_m_s receives
64: the disk characteristics.
65:
66: _N_o_n-_S_t_a_n_d_a_r_d _a_n_d _U_n_s_u_p_p_o_r_t_e_d _T_y_p_e_s _o_f _D_r_i_v_e_s
67: Prior releases of the the COHERENT aatt hard-disk driver would not support
68: disk drives whose geometry was not supported by the BIOS disk parameter
69: tables. COHERENT adds support for these drives during installation by
70: ``patching'' the disk parameters into the bootstrap and the /ccoohheerreenntt image
71: on the hard disk.
72:
73: _F_i_l_e_s
74: /ddeevv/aatt* -- Block-special files
75: /ddeevv/rraatt* -- Character-special files
76:
77: _S_e_e _A_l_s_o
78: ddeevviiccee ddrriivveerrss, ffddiisskk
79:
80: _N_o_t_e_s
81: You can patch integer variable AATTSSRREEGG to specify normal or alternate
82: polling. Use addresss 0x3F6 for normal polling, which works with most
83: newer drives. Use address 0x1F7 for alternate polling, which is necessary
84: for Perstor controllers and some other older equipment. The driver is
85: shipped with a default value of 0x3F6; patching is usually done during
86: installation as needed. Setting this variable improperly causes frequent
87: controller timeouts and bad-track messages.
88:
89: Integer variable AATTSSEECCSS specifies the number of seconds to wait for a
90: response from the drive after an I/O request. The default value is six.
91: Some IDE drives occasionally become unresponsive for long intervals
92: (several seconds) while control firmware makes adjustments to drive
93: operation.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.