Annotation of coherent/f/usr/man/KERNEL/at, revision 1.1.1.1

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.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.