$Id: README.aha152x,v 1.2 1999/12/25 15:32:30 fischer Exp fischer $
Adaptec AHA-1520/1522 SCSI driver for Linux (aha152x)

Copyright 1993-1999 Jürgen Fischer <fischer@norbit.de>
TC1550 patches by Luuk van Dijk (ldz@xs4all.nl)


In Revision 2 the driver was modified a lot (especially the
bottom-half handler complete()).

The driver is much cleaner now, has support for the new
error handling code in 2.3, produced less cpu load (much
less polling loops), has slightly higher throughput (at
least on my ancient test box; a i486/33Mhz/20MB).


CONFIGURATION ARGUMENTS:

IOPORT        base io address                           (0x340/0x140)
IRQ           interrupt level                           (9-12; default 11)
SCSI_ID       scsi id of controller                     (0-7; default 7)
RECONNECT     allow targets to disconnect from the bus  (0/1; default 1 [on])
PARITY        enable parity checking                    (0/1; default 1 [on])
SYNCHRONOUS   enable synchronous transfers              (0/1; default 1 [on])
DELAY:        bus reset delay                           (default 100)
EXT_TRANS:    enable extended translation               (0/1: default 0 [off])
              (see NOTES)

COMPILE TIME CONFIGURATION (go into AHA152X in drivers/scsi/Makefile):

-DAUTOCONF
 use configuration the controller reports (AHA-152x only)

-DSKIP_BIOSTEST
 Don't test for BIOS signature (AHA-1510 or disabled BIOS)

-DSETUP0="{ IOPORT, IRQ, SCSI_ID, RECONNECT, PARITY, SYNCHRONOUS, DELAY, EXT_TRANS }"
 override for the first controller 

-DSETUP1="{ IOPORT, IRQ, SCSI_ID, RECONNECT, PARITY, SYNCHRONOUS, DELAY, EXT_TRANS }"
 override for the second controller

-DAHA152X_DEBUG
 enable debugging output

-DAHA152X_STAT
 enable some statistics


LILO COMMAND LINE OPTIONS:

aha152x=<IOPORT>[,<IRQ>[,<SCSI-ID>[,<RECONNECT>[,<PARITY>[,<SYNCHRONOUS>[,<DELAY> [,<EXT_TRANS]]]]]]]

 The normal configuration can be overridden by specifying a command line.
 When you do this, the BIOS test is skipped. Entered values have to be
 valid (known).  Don't use values that aren't supported under normal
 operation.  If you think that you need other values: contact me.
 For two controllers use the aha152x statement twice.


SYMBOLS FOR MODULE CONFIGURATION:

Choose from 2 alternatives:

1. specify everything (old)

aha152x=IOPORT,IRQ,SCSI_ID,RECONNECT,PARITY,SYNCHRONOUS,DELAY,EXT_TRANS
  configuration override for first controller


aha152x1=IOPORT,IRQ,SCSI_ID,RECONNECT,PARITY,SYNCHRONOUS,DELAY,EXT_TRANS
  configuration override for second controller

2. specify only what you need to (irq or io is required; new)

io=IOPORT0[,IOPORT1]
  IOPORT for first and second controller

irq=IRQ0[,IRQ1]
  IRQ for first and second controller

scsiid=SCSIID0[,SCSIID1]
  SCSIID for first and second controller

reconnect=RECONNECT0[,RECONNECT1]
  allow targets to disconnect for first and second controller

parity=PAR0[PAR1]
  use parity for first and second controller

sync=SYNCHRONOUS0[,SYNCHRONOUS1]
  enable synchronous transfers for first and second controller

delay=DELAY0[,DELAY1]
  reset DELAY for first and second controller

exttrans=EXTTRANS0[,EXTTRANS1]
  enable extended translation for first and second controller


If you use both alternatives the first will be taken.


NOTES ON EXT_TRANS: 

SCSI uses block numbers to address blocks/sectors on a device.
The BIOS uses a cylinder/head/sector addressing scheme (C/H/S)
scheme instead.  DOS expects a BIOS or driver that understands this
C/H/S addressing.

The number of cylinders/heads/sectors is called geometry and is required
as base for requests in C/H/S addressing.  SCSI only knows about the
total capacity of disks in blocks (sectors).

Therefore the SCSI BIOS/DOS driver has to calculate a logical/virtual
geometry just to be able to support that addressing scheme.  The geometry
returned by the SCSI BIOS is a pure calculation and has nothing to
do with the real/physical geometry of the disk (which is usually
irrelevant anyway).

Basically this has no impact at all on Linux, because it also uses block
instead of C/H/S addressing.  Unfortunately C/H/S addressing is also used
in the partition table and therefore every operating system has to know
the right geometry to be able to interpret it.

Moreover there are certain limitations to the C/H/S addressing scheme,
namely the address space is limited to upto 255 heads, upto 63 sectors
and a maximum of 1023 cylinders.

The AHA-1522 BIOS calculates the geometry by fixing the number of heads
to 64, the number of sectors to 32 and by calculating the number of
cylinders by dividing the capacity reported by the disk by 64*32 (1 MB).
This is considered to be the default translation.

With respect to the limit of 1023 cylinders using C/H/S you can only
address the first GB of your disk in the partition table.  Therefore
BIOSes of some newer controllers based on the AIC-6260/6360 support
extended translation.  This means that the BIOS uses 255 for heads,
63 for sectors and then divides the capacity of the disk by 255*63
(about 8 MB), as soon it sees a disk greater than 1 GB.  That results
in a maximum of about 8 GB addressable diskspace in the partition table
(but there are already bigger disks out there today).

To make it even more complicated the translation mode might/might
not be configurable in certain BIOS setups.

This driver does some more or less failsafe guessing to get the
geometry right in most cases:

- for disks<1GB: use default translation (C/32/64)

- for disks>1GB:
  - take current geometry from the partition table
    (using scsicam_bios_param and accept only `valid' geometries,
    ie. either (C/32/64) or (C/63/255)).  This can be extended translation
    even if it's not enabled in the driver.

  - if that fails, take extended translation if enabled by override,
    kernel or module parameter, otherwise take default translation and
    ask the user for verification.  This might on not yet partitioned
    disks.


REFERENCES USED:

 "AIC-6260 SCSI Chip Specification", Adaptec Corporation.

 "SCSI COMPUTER SYSTEM INTERFACE - 2 (SCSI-2)", X3T9.2/86-109 rev. 10h

 "Writing a SCSI device driver for Linux", Rik Faith (faith@cs.unc.edu)

 "Kernel Hacker's Guide", Michael K. Johnson (johnsonm@sunsite.unc.edu)

 "Adaptec 1520/1522 User's Guide", Adaptec Corporation.

 Michael K. Johnson (johnsonm@sunsite.unc.edu)

 Drew Eckhardt (drew@cs.colorado.edu)

 Eric Youngdale (eric@andante.org) 

 special thanks to Eric Youngdale for the free(!) supplying the
 documentation on the chip.
