File:  [MW Coherent from dump] / coherent / f / usr / man / KERNEL / at
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed May 29 04:56:40 2019 UTC (7 years, 2 months ago) by root
Branches: MarkWilliams, MAIN
CVS tags: relic, HEAD
coherent

aatt -- Device Driver


/ddeevv/aatt*  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.

aatt 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 ffddiisskk  on the
special device for each drive (minor devices 128 and 129).

To access a disk partition  through COHERENT, directory /ddeevv 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 mmkknnoodd 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

_K_e_r_n_e_l _V_a_r_i_a_b_l_e_s
Please  note  that the  COHERENT  286 kernel  references  variables with  a
trailing  underscore character;  for  example, aattppaarrmm_.   The COHERENT  386
kernel, however, does _n_o_t use a trailing underscore; for example, aattppaarrmm.

The following descriptions apply to both COHERENT 286 and COHERENT 386, but
the notation will be in the COHERENT-386 form.

_D_r_i_v_e _C_h_a_r_a_c_t_e_r_i_s_t_i_c_s
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  iinnffoo command from  ttbboooott. It  is often
necessary  to patch  the  aatt 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 aattppaarrmm in
the driver.  For the first hard drive, number of cylinders is a short (two-
byte) value at aattppaarrmm+00, number of  heads is a single byte at aattppaarrmm+22, and
number of sectors  per track is a single byte  at aattppaarrmm+1144. For the second
hard drive,  number of cylinders is  a short value at  aattppaarrmm+1166, number of
heads is a  single byte at aattppaarrmm+1188, and number  of sectors per track is a
single byte at  aattppaarrmm+3300. For example, if tteessttccoohh is  a kernel linked with
the aatt  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 aatt driver is running,
use the call to iiooccttll of the following form:

    #include <sys/hdioctl.h>
    hdparm_t hdparms;
        . . .
    ioctl(fd, HDGETA, (char *)&hdparms);

where _f_d is a file descriptor for the hard disk device and _h_d_p_a_r_m_s receives
the disk characteristics.

_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
Prior releases  of the the  COHERENT aatt 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 /ccoohheerreenntt image
on the hard disk.

_F_i_l_e_s
/ddeevv/aatt* -- Block-special files
/ddeevv/rraatt* -- Character-special files

_S_e_e _A_l_s_o
ddeevviiccee ddrriivveerrss, ffddiisskk

_N_o_t_e_s
You  can  patch integer  variable  AATTSSRREEGG to  specify  normal or  alternate
polling.   Use addresss  0x3F6 for  normal polling,  which works  with most
newer drives.  Use address  0x1F7 for alternate polling, which is necessary
for  Perstor controllers  and some  other older  equipment.  The  driver is
shipped  with a  default value  of 0x3F6; patching  is usually  done during
installation as  needed.  Setting this variable  improperly causes frequent
controller timeouts and bad-track messages.

Integer  variable AATTSSEECCSS  specifies 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.

unix.superglobalmegacorp.com

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