~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/scsi/aha152x.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/scsi/aha152x.rst (Version linux-6.12-rc7) and /Documentation/scsi/aha152x.rst (Version linux-6.3.13)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2 .. include:: <isonum.txt>                           2 .. include:: <isonum.txt>
  3                                                     3 
  4 ==============================================      4 =====================================================
  5 Adaptec AHA-1520/1522 SCSI driver for Linux (a      5 Adaptec AHA-1520/1522 SCSI driver for Linux (aha152x)
  6 ==============================================      6 =====================================================
  7                                                     7 
  8 Copyright |copy| 1993-1999 Jürgen Fischer <fis      8 Copyright |copy| 1993-1999 Jürgen Fischer <fischer@norbit.de>
  9                                                     9 
 10 TC1550 patches by Luuk van Dijk (ldz@xs4all.nl     10 TC1550 patches by Luuk van Dijk (ldz@xs4all.nl)
 11                                                    11 
 12                                                    12 
 13 In Revision 2 the driver was modified a lot (e     13 In Revision 2 the driver was modified a lot (especially the
 14 bottom-half handler complete()).                   14 bottom-half handler complete()).
 15                                                    15 
 16 The driver is much cleaner now, has support fo     16 The driver is much cleaner now, has support for the new
 17 error handling code in 2.3, produced less cpu      17 error handling code in 2.3, produced less cpu load (much
 18 less polling loops), has slightly higher throu     18 less polling loops), has slightly higher throughput (at
 19 least on my ancient test box; a i486/33Mhz/20M     19 least on my ancient test box; a i486/33Mhz/20MB).
 20                                                    20 
 21                                                    21 
 22 Configuration Arguments                            22 Configuration Arguments
 23 =======================                            23 =======================
 24                                                    24 
 25 ============  ================================     25 ============  ========================================  ======================
 26 IOPORT        base io address                      26 IOPORT        base io address                           (0x340/0x140)
 27 IRQ           interrupt level                      27 IRQ           interrupt level                           (9-12; default 11)
 28 SCSI_ID       scsi id of controller                28 SCSI_ID       scsi id of controller                     (0-7; default 7)
 29 RECONNECT     allow targets to disconnect from     29 RECONNECT     allow targets to disconnect from the bus  (0/1; default 1 [on])
 30 PARITY        enable parity checking               30 PARITY        enable parity checking                    (0/1; default 1 [on])
 31 SYNCHRONOUS   enable synchronous transfers         31 SYNCHRONOUS   enable synchronous transfers              (0/1; default 1 [on])
 32 DELAY:        bus reset delay                      32 DELAY:        bus reset delay                           (default 100)
 33 EXT_TRANS:    enable extended translation          33 EXT_TRANS:    enable extended translation               (0/1: default 0 [off])
 34               (see NOTES)                          34               (see NOTES)
 35 ============  ================================     35 ============  ========================================  ======================
 36                                                    36 
 37 Compile Time Configuration                         37 Compile Time Configuration
 38 ==========================                         38 ==========================
 39                                                    39 
 40 (go into AHA152X in drivers/scsi/Makefile):        40 (go into AHA152X in drivers/scsi/Makefile):
 41                                                    41 
 42 - DAUTOCONF                                        42 - DAUTOCONF
 43     use configuration the controller reports (     43     use configuration the controller reports (AHA-152x only)
 44                                                    44 
 45 - DSKIP_BIOSTEST                                   45 - DSKIP_BIOSTEST
 46     Don't test for BIOS signature (AHA-1510 or     46     Don't test for BIOS signature (AHA-1510 or disabled BIOS)
 47                                                    47 
 48 - DSETUP0="{ IOPORT, IRQ, SCSI_ID, RECONNECT,      48 - DSETUP0="{ IOPORT, IRQ, SCSI_ID, RECONNECT, PARITY, SYNCHRONOUS, DELAY, EXT_TRANS }"
 49     override for the first controller              49     override for the first controller
 50                                                    50 
 51 - DSETUP1="{ IOPORT, IRQ, SCSI_ID, RECONNECT,      51 - DSETUP1="{ IOPORT, IRQ, SCSI_ID, RECONNECT, PARITY, SYNCHRONOUS, DELAY, EXT_TRANS }"
 52     override for the second controller             52     override for the second controller
 53                                                    53 
 54 - DAHA152X_DEBUG                                   54 - DAHA152X_DEBUG
 55     enable debugging output                        55     enable debugging output
 56                                                    56 
 57 - DAHA152X_STAT                                    57 - DAHA152X_STAT
 58     enable some statistics                         58     enable some statistics
 59                                                    59 
 60                                                    60 
 61 LILO Command Line Options                          61 LILO Command Line Options
 62 =========================                          62 =========================
 63                                                    63 
 64  ::                                                64  ::
 65                                                    65 
 66     aha152x=<IOPORT>[,<IRQ>[,<SCSI-ID>[,<RECON     66     aha152x=<IOPORT>[,<IRQ>[,<SCSI-ID>[,<RECONNECT>[,<PARITY>[,<SYNCHRONOUS>[,<DELAY> [,<EXT_TRANS]]]]]]]
 67                                                    67 
 68  The normal configuration can be overridden by     68  The normal configuration can be overridden by specifying a command line.
 69  When you do this, the BIOS test is skipped. E     69  When you do this, the BIOS test is skipped. Entered values have to be
 70  valid (known).  Don't use values that aren't      70  valid (known).  Don't use values that aren't supported under normal
 71  operation.  If you think that you need other      71  operation.  If you think that you need other values: contact me.
 72  For two controllers use the aha152x statement     72  For two controllers use the aha152x statement twice.
 73                                                    73 
 74                                                    74 
 75 Symbols for Module Configuration                   75 Symbols for Module Configuration
 76 ================================                   76 ================================
 77                                                    77 
 78 Choose from 2 alternatives:                        78 Choose from 2 alternatives:
 79                                                    79 
 80 1. specify everything (old)::                      80 1. specify everything (old)::
 81                                                    81 
 82     aha152x=IOPORT,IRQ,SCSI_ID,RECONNECT,PARIT     82     aha152x=IOPORT,IRQ,SCSI_ID,RECONNECT,PARITY,SYNCHRONOUS,DELAY,EXT_TRANS
 83                                                    83 
 84   configuration override for first controller      84   configuration override for first controller
 85                                                    85 
 86   ::                                               86   ::
 87                                                    87 
 88     aha152x1=IOPORT,IRQ,SCSI_ID,RECONNECT,PARI     88     aha152x1=IOPORT,IRQ,SCSI_ID,RECONNECT,PARITY,SYNCHRONOUS,DELAY,EXT_TRANS
 89                                                    89 
 90   configuration override for second controller     90   configuration override for second controller
 91                                                    91 
 92 2. specify only what you need to (irq or io is     92 2. specify only what you need to (irq or io is required; new)
 93                                                    93 
 94 io=IOPORT0[,IOPORT1]                               94 io=IOPORT0[,IOPORT1]
 95   IOPORT for first and second controller           95   IOPORT for first and second controller
 96                                                    96 
 97 irq=IRQ0[,IRQ1]                                    97 irq=IRQ0[,IRQ1]
 98   IRQ for first and second controller              98   IRQ for first and second controller
 99                                                    99 
100 scsiid=SCSIID0[,SCSIID1]                          100 scsiid=SCSIID0[,SCSIID1]
101   SCSIID for first and second controller          101   SCSIID for first and second controller
102                                                   102 
103 reconnect=RECONNECT0[,RECONNECT1]                 103 reconnect=RECONNECT0[,RECONNECT1]
104   allow targets to disconnect for first and se    104   allow targets to disconnect for first and second controller
105                                                   105 
106 parity=PAR0[PAR1]                                 106 parity=PAR0[PAR1]
107   use parity for first and second controller      107   use parity for first and second controller
108                                                   108 
109 sync=SYNCHRONOUS0[,SYNCHRONOUS1]                  109 sync=SYNCHRONOUS0[,SYNCHRONOUS1]
110   enable synchronous transfers for first and s    110   enable synchronous transfers for first and second controller
111                                                   111 
112 delay=DELAY0[,DELAY1]                             112 delay=DELAY0[,DELAY1]
113   reset DELAY for first and second controller     113   reset DELAY for first and second controller
114                                                   114 
115 exttrans=EXTTRANS0[,EXTTRANS1]                    115 exttrans=EXTTRANS0[,EXTTRANS1]
116   enable extended translation for first and se    116   enable extended translation for first and second controller
117                                                   117 
118                                                   118 
119 If you use both alternatives the first will be    119 If you use both alternatives the first will be taken.
120                                                   120 
121                                                   121 
122 Notes on EXT_TRANS                                122 Notes on EXT_TRANS
123 ==================                                123 ==================
124                                                   124 
125 SCSI uses block numbers to address blocks/sect    125 SCSI uses block numbers to address blocks/sectors on a device.
126 The BIOS uses a cylinder/head/sector addressin    126 The BIOS uses a cylinder/head/sector addressing scheme (C/H/S)
127 scheme instead.  DOS expects a BIOS or driver     127 scheme instead.  DOS expects a BIOS or driver that understands this
128 C/H/S addressing.                                 128 C/H/S addressing.
129                                                   129 
130 The number of cylinders/heads/sectors is calle    130 The number of cylinders/heads/sectors is called geometry and is required
131 as base for requests in C/H/S addressing.  SCS    131 as base for requests in C/H/S addressing.  SCSI only knows about the
132 total capacity of disks in blocks (sectors).      132 total capacity of disks in blocks (sectors).
133                                                   133 
134 Therefore the SCSI BIOS/DOS driver has to calc    134 Therefore the SCSI BIOS/DOS driver has to calculate a logical/virtual
135 geometry just to be able to support that addre    135 geometry just to be able to support that addressing scheme.  The geometry
136 returned by the SCSI BIOS is a pure calculatio    136 returned by the SCSI BIOS is a pure calculation and has nothing to
137 do with the real/physical geometry of the disk    137 do with the real/physical geometry of the disk (which is usually
138 irrelevant anyway).                               138 irrelevant anyway).
139                                                   139 
140 Basically this has no impact at all on Linux,     140 Basically this has no impact at all on Linux, because it also uses block
141 instead of C/H/S addressing.  Unfortunately C/    141 instead of C/H/S addressing.  Unfortunately C/H/S addressing is also used
142 in the partition table and therefore every ope    142 in the partition table and therefore every operating system has to know
143 the right geometry to be able to interpret it.    143 the right geometry to be able to interpret it.
144                                                   144 
145 Moreover there are certain limitations to the     145 Moreover there are certain limitations to the C/H/S addressing scheme,
146 namely the address space is limited to up to 2    146 namely the address space is limited to up to 255 heads, up to 63 sectors
147 and a maximum of 1023 cylinders.                  147 and a maximum of 1023 cylinders.
148                                                   148 
149 The AHA-1522 BIOS calculates the geometry by f    149 The AHA-1522 BIOS calculates the geometry by fixing the number of heads
150 to 64, the number of sectors to 32 and by calc    150 to 64, the number of sectors to 32 and by calculating the number of
151 cylinders by dividing the capacity reported by    151 cylinders by dividing the capacity reported by the disk by 64*32 (1 MB).
152 This is considered to be the default translati    152 This is considered to be the default translation.
153                                                   153 
154 With respect to the limit of 1023 cylinders us    154 With respect to the limit of 1023 cylinders using C/H/S you can only
155 address the first GB of your disk in the parti    155 address the first GB of your disk in the partition table.  Therefore
156 BIOSes of some newer controllers based on the     156 BIOSes of some newer controllers based on the AIC-6260/6360 support
157 extended translation.  This means that the BIO    157 extended translation.  This means that the BIOS uses 255 for heads,
158 63 for sectors and then divides the capacity o    158 63 for sectors and then divides the capacity of the disk by 255*63
159 (about 8 MB), as soon it sees a disk greater t    159 (about 8 MB), as soon it sees a disk greater than 1 GB.  That results
160 in a maximum of about 8 GB addressable diskspa    160 in a maximum of about 8 GB addressable diskspace in the partition table
161 (but there are already bigger disks out there     161 (but there are already bigger disks out there today).
162                                                   162 
163 To make it even more complicated the translati    163 To make it even more complicated the translation mode might/might
164 not be configurable in certain BIOS setups.       164 not be configurable in certain BIOS setups.
165                                                   165 
166 This driver does some more or less failsafe gu    166 This driver does some more or less failsafe guessing to get the
167 geometry right in most cases:                     167 geometry right in most cases:
168                                                   168 
169 - for disks<1GB: use default translation (C/32    169 - for disks<1GB: use default translation (C/32/64)
170                                                   170 
171 - for disks>1GB:                                  171 - for disks>1GB:
172                                                   172 
173   - take current geometry from the partition t    173   - take current geometry from the partition table
174     (using scsicam_bios_param and accept only     174     (using scsicam_bios_param and accept only 'valid' geometries,
175     ie. either (C/32/64) or (C/63/255)).  This    175     ie. either (C/32/64) or (C/63/255)).  This can be extended translation
176     even if it's not enabled in the driver.       176     even if it's not enabled in the driver.
177                                                   177 
178   - if that fails, take extended translation i    178   - if that fails, take extended translation if enabled by override,
179     kernel or module parameter, otherwise take    179     kernel or module parameter, otherwise take default translation and
180     ask the user for verification.  This might    180     ask the user for verification.  This might on not yet partitioned
181     disks.                                        181     disks.
182                                                   182 
183                                                   183 
184 References Used                                   184 References Used
185 ===============                                   185 ===============
186                                                   186 
187  "AIC-6260 SCSI Chip Specification", Adaptec C    187  "AIC-6260 SCSI Chip Specification", Adaptec Corporation.
188                                                   188 
189  "SCSI COMPUTER SYSTEM INTERFACE - 2 (SCSI-2)"    189  "SCSI COMPUTER SYSTEM INTERFACE - 2 (SCSI-2)", X3T9.2/86-109 rev. 10h
190                                                   190 
191  "Writing a SCSI device driver for Linux", Rik    191  "Writing a SCSI device driver for Linux", Rik Faith (faith@cs.unc.edu)
192                                                   192 
193  "Kernel Hacker's Guide", Michael K. Johnson (    193  "Kernel Hacker's Guide", Michael K. Johnson (johnsonm@sunsite.unc.edu)
194                                                   194 
195  "Adaptec 1520/1522 User's Guide", Adaptec Cor    195  "Adaptec 1520/1522 User's Guide", Adaptec Corporation.
196                                                   196 
197  Michael K. Johnson (johnsonm@sunsite.unc.edu)    197  Michael K. Johnson (johnsonm@sunsite.unc.edu)
198                                                   198 
199  Drew Eckhardt (drew@cs.colorado.edu)             199  Drew Eckhardt (drew@cs.colorado.edu)
200                                                   200 
201  Eric Youngdale (eric@andante.org)                201  Eric Youngdale (eric@andante.org)
202                                                   202 
203  special thanks to Eric Youngdale for the free    203  special thanks to Eric Youngdale for the free(!) supplying the
204  documentation on the chip.                       204  documentation on the chip.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php