|
|
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.