Root/Documentation/scsi/ChangeLog.ncr53c8xx

1Sat May 12 12:00 2001 Gerard Roudier (groudier@club-internet.fr)
2    * version ncr53c8xx-3.4.3b
3    - Ensure LEDC bit in GPCNTL is cleared when reading the NVRAM.
4      Fix sent by Stig Telfer <stig@api-networks.com>.
5    - Define scsi_set_pci_device() as nil for kernel < 2.4.4.
6
7Mon Feb 12 22:30 2001 Gerard Roudier (groudier@club-internet.fr)
8    * version ncr53c8xx-3.4.3
9    - Call pci_enable_device() as AC wants this to be done.
10    - Get both the BAR cookies actual and PCI BAR values.
11      (see Changelog.sym53c8xx rev. 1.7.3 for details)
12    - Merge changes for linux-2.4 that declare the host template
13      in the driver object also when the driver is statically
14      linked with the kernel.
15
16Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr)
17    * version ncr53c8xx-3.4.2
18    - See Changelog.sym53c8xx, driver version 1.7.2.
19
20Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr)
21    * version ncr53c8xx-3.4.1
22    - Provide OpenFirmware path through the proc FS on PPC.
23    - Remove trailing argument #2 from a couple of #undefs.
24
25Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr)
26    * version ncr53c8xx-3.4.0
27    - Remove the PROFILE C and SCRIPTS code.
28      This facility was not this useful and thus was not longer
29      desirable given the increasing complexity of the driver code.
30    - Merges from FreeBSD sym-1.6.2 driver:
31      * Clarify memory barriers needed by the driver for architectures
32        that implement a weak memory ordering.
33    - General cleanup:
34      Move definitions for barriers and IO/MMIO operations to the
35      sym53c8xx_defs.h header files. They are now shared by the
36      both drivers.
37      Use SCSI_NCR_IOMAPPED instead of NCR_IOMAPPED.
38
39Thu May 11 12:30 2000 Pam Delaney (pam.delaney@lsil.com)
40    * revision 3.3b
41 
42Mon Apr 24 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
43    * revision 3.2i
44    - Return value 1 (instead of 0) from the driver setup routine.
45    - Let the driver also attach controllers that have been set to
46      OFF in the NVRAM as it did prior to revision 3.2g.
47
48Sat Apr 1 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
49    * revision 3.2h
50    - Fix a compilation problem on Alpha introduced in version 3.2g.
51          (`port' changed to `base_io').
52    - Move from `sym' to this driver a tiny change for __sparc__ that
53      applies to cache line size (? Probably from David S Miller).
54    - Make sure no data transfer will happen for Scsi_Cmnd requests
55      that supply SCSI_DATA_NONE direction (this avoids some BUG()
56      statement in the PCI code when a data buffer is also supplied).
57
58Thu Mar 16 9:30 2000 Pam Delaney (pam.delaney@lsil.com)
59    * revision 3.3b-3
60     - Added exclusion for the 53C1010 and 53C1010_66 chips
61      to the driver (change to sym53c8xx_comm.h).
62
63Mon March 6 23:15 2000 Gerard Roudier (groudier@club-internet.fr)
64    * revision 3.2g
65    - Add the file sym53c8xx_comm.h that collects code that should
66      be shared by sym53c8xx and ncr53c8xx drivers. For now, it is
67      a header file that is only included by the ncr53c8xx driver,
68      but things will be cleaned up later. This code addresses
69      notably:
70      * Chip detection and PCI related initialisations
71      * NVRAM detection and reading
72      * DMA mapping
73      * Boot setup command
74      * And some other ...
75    - Add support for the new dynamic dma mapping kernel interface.
76      Requires Linux-2.3.47 (tested with pre-2.3.47-6).
77    - Get data transfer direction from the scsi command structure
78      (Scsi_Cmnd) when this information is available.
79
80Mon March 6 23:15 2000 Gerard Roudier (groudier@club-internet.fr)
81        * revision 3.2g
82        - Add the file sym53c8xx_comm.h that collects code that should
83          be shared by sym53c8xx and ncr53c8xx drivers. For now, it is
84          a header file that is only included by the ncr53c8xx driver,
85          but things will be cleaned up later. This code addresses
86          notably:
87          * Chip detection and PCI related initialisations
88          * NVRAM detection and reading
89          * DMA mapping
90          * Boot setup command
91          * And some other ...
92        - Add support for the new dynamic dma mapping kernel interface.
93          Requires Linux-2.3.47 (tested with pre-2.3.47-6).
94        - Get data transfer direction from the scsi command structure
95          (Scsi_Cmnd) when this information is available.
96
97Fri Jan 14 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
98    * revision pre-3.3b-1
99    - Merge parallel driver series 3.31 and 3.2e
100
101Tue Jan 11 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
102    * revision 3.31
103    - Added support for mounting disks on wide-narrow-wide
104      scsi configurations.
105    - Built off of version 3.30
106
107Mon Jan 10 13:30 2000 Pam Delaney (pam.delaney@lsil.com)
108    * revision 3.30
109    - Added capability to use the integrity checking code
110      in the kernel (optional).
111    - Disabled support for the 53C1010.
112    - Built off of version 3.2c
113
114Sat Jan 8 22:00 2000 Gerard Roudier (groudier@club-internet.fr)
115    * revision 3.2e
116    - Add year 2000 copyright.
117    - Display correctly bus signals when bus is detected wrong.
118    - Remove the dead code that broke driver 3.2d.
119
120Mon Dec 6 22:00 1999 Gerard Roudier (groudier@club-internet.fr)
121    * revision 3.2d
122    - Change messages written by the driver at initialisation and
123      through the /proc FS (rather cosmetic changes that consist in
124      printing out the PCI bus number and device/function).
125    - Get rid of the old PCI bios interface, but preserve kernel 2.0
126      compatibility from a simple wrapper.
127    - Remove the compilation condition about having to acquire the
128      io_request_lock since it seems to be a definite feature now.:)
129    - proc_dir structure no longer needed for kernel >= 2.3.27.
130    - Change the driver detection code by the sym53c8xx one, modulo
131      some minor changes. The driver can now attach any number of
132      controllers (>40) and does no longer hoger stack space at
133      initialisation.
134    - Definitely disable overlapped PCI arbitration for all dual
135      function chips, since I cannot make sure for what chip revisions
136      it is actually safe.
137    - Add support for the SYM53C1510D.
138    - Update the poor Tekram sync factor table.
139    - Remove the compilation condition about having to acquire the
140      io_request_lock since it seems to be a definite feature now.:)
141    - proc_dir structure no longer needed for kernel >= 2.3.27.
142
143Sat Sep 11 18:00 1999 Gerard Roudier (groudier@club-internet.fr)
144    * revision 3.2c
145    - Handle correctly (hopefully) jiffies wrap-around.
146    - Restore the entry used to detect 875 until revision 0xff.
147      (I removed it inadvertently, it seems :) )
148    - Replace __initfunc() which is deprecated stuff by __init which
149      is not yet so. ;-)
150    - Add support of some 'resource handling' for linux-2.3.13.
151      Basically the BARs have been changed to something more complex
152      in the pci_dev structure.
153    - Remove some deprecated code.
154
155Sat May 10 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
156    * revision pre-3.2b-1
157    - Support for the 53C895A by Pamela Delaney <pam.delaney@lsil.com>
158      The 53C895A contains all of the features of the 896 but has only
159      one channel and has a 32 bit PCI bus. It does 64 bit PCI addressing
160      using dual cycle PCI data transfers.
161    - Miscellaneous minor fixes.
162    - Some additions to the README.ncr53c8xx file.
163
164Sun Apr 11 10:00 1999 Gerard Roudier (groudier@club-internet.fr)
165    * revision 3.2a
166    - Add 'hostid:#id' boot option. This option allows to change the
167      default SCSI id the driver uses for controllers.
168    - Remove nvram layouts and driver set-up structures from the C source,
169      and use the one defined in sym53c8xx_defs.h file.
170      (shared by both drivers).
171    - Set for now MAX LUNS to 16 (instead of 8).
172
173Thu Mar 11 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
174    * revision 3.2 (8xx-896 driver bundle)
175    - Only define the host template in ncr53c8xx.h and include the
176      sym53c8xx_defs.h file.
177    - Declare static all symbols that do not need to be visible from
178      outside the driver code.
179    - Add 'excl' boot command option that allows to pass to the driver
180      io address of devices not to attach.
181    - Add info() function called from the host template to print
182      driver/host information.
183    - Minor documentation additions.
184
185Sat Mar 6 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
186    * revision 3.1h
187    - Fix some oooold bug that hangs the bus if a device rejects a
188      negotiation. Btw, the corresponding stuff also needed some cleanup
189      and thus the change is a bit larger than it could have been.
190    - Still some typo that made compilation fail for 64 bit (trivial fix).
191
192Sun Feb 14:00 1999 Gerard Roudier (groudier@club-internet.fr)
193    * revision 3.1g
194    - Deal correctly with 64 bit PCI address registers on Linux 2.2.
195      Pointed out by Leonard Zubkoff.
196    - Allow to tune request_irq() flags from the boot command line using
197      ncr53c8xx=irqm:??, as follows:
198      a) If bit 0x10 is set in irqm, IRQF_SHARED flag is not used.
199      b) If bit 0x20 is set in irqm, IRQF_DISABLED flag is not used.
200      By default the driver uses both IRQF_SHARED and IRQF_DISABLED.
201      Option 'ncr53c8xx=irqm:0x20' may be used when an IRQ is shared by
202      a 53C8XX adapter and a network board.
203    - Tiny mispelling fixed (ABORT instead of ABRT). Was fortunately
204      harmless.
205    - Negotiate SYNC data transfers with CCS devices.
206
207Sat Jan 16 17:30 1999 Gerard Roudier (groudier@club-internet.fr)
208    * revision 3.1f
209    - Some PCI fix-ups not needed any more for PPC (from Cort).
210    - Cache line size set to 16 DWORDS for Sparc (from DSM).
211    - Waiting list look-up didn't work for the first command of the list.
212    - Remove 2 useless lines of code.
213
214Sun Dec 13 18:00 1998 Gerard Roudier (groudier@club-internet.fr)
215    * revision 3.1e
216    - Same work-around as for the 53c876 rev <= 0x15 for 53c896 rev 1:
217      Disable overlapped arbitration. This will not make difference
218      since the chip has on-chip RAM.
219
220Thu Nov 26 22:00 1998 Gerard Roudier (groudier@club-internet.fr)
221    * revision 3.1d
222    - The SISL RAID change requires now remap_pci_mem() stuff to be
223      compiled for __i386__ when normal IOs are used.
224    - Minor spelling fixes in doc files.
225
226Sat Nov 21 18:00 1998 Gerard Roudier (groudier@club-internet.fr)
227    * revision 3.1c
228    - Ignore chips that are driven by SISL RAID (DAC 960).
229      Change sent by Leonard Zubkoff and slightly reworked.
230    - Still a buglet in the tags initial settings that needed to be fixed.
231      It was not possible to disable TGQ at system startup for devices
232      that claim TGQ support. The driver used at least 2 for the queue
233      depth but did'nt keep track of user settings for tags depth lower
234      than 2.
235
236Wed Nov 11 10:00 1998 Gerard Roudier (groudier@club-internet.fr)
237    * revision 3.1b
238    - The driver was unhappy when configured with default_tags > MAX_TAGS
239      Hopefully doubly-fixed.
240    - Update the Configure.help driver section that speaks of TAGS.
241
242Wed Oct 21 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
243    * revision 3.1a
244    - Changes from Eddie Dost for Sparc and Alpha:
245      ioremap/iounmap support for Sparc.
246      pcivtophys changed to bus_dvma_to_phys.
247    - Add the 53c876 description to the chip table. This is only useful
248      for printing the right name of the controller.
249    - DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15).
250    - Add additional checking of INQUIRY data:
251      Check INQUIRY data received length is at least 7. Byte 7 of
252      inquiry data contains device features bits and the driver might
253      be confused by garbage. Also check peripheral qualifier.
254    - Cleanup of the SCSI tasks management:
255      Remove the special case for 32 tags. Now the driver only uses the
256      scheme that allows up to 64 tags per LUN.
257      Merge some code from the 896 driver.
258      Use a 1,3,5,...MAXTAGS*2+1 tag numbering. Previous driver could
259      use any tag number from 1 to 253 and some non conformant devices
260      might have problems with large tag numbers.
261    - 'no_sync' changed to 'no_disc' in the README file. This is an old
262      and trivial mistake that seems to demonstrate the README file is
263      not often read. :)
264
265Sun Oct 4 14:00 1998 Gerard Roudier (groudier@club-internet.fr)
266    * revision 3.0i
267    - Cosmetic changes for sparc (but not for the driver) that needs
268      __irq_itoa() to be used for printed IRQ value to be understandable.
269    - Some problems with the driver that didn't occur using driver 2.5f
270      were due to a SCSI selection problem triggered by a clearly
271      documented feature that in fact seems not to work: (53C8XX chips
272      are claimed by the manuals to be able to execute SCSI scripts just
273      after abitration while the SCSI core is performing SCSI selection).
274      This optimization is broken and has been removed.
275    - Some broken scsi devices are confused when a negotiation is started
276      on a LUN that does not correspond to a real device. According to
277      SCSI specs, this is a device firmware bug. This has been worked
278      around by only starting negotiation if the LUN has previously be
279      used for at least 1 successful SCSI command.
280    - The 'last message sent' printed out on M_REJECT message reception
281      was read from the SFBR i/o register after the previous message had
282      been sent.
283      This was not correct and affects all previous driver versions and
284      the original FreeBSD one as well. The SCSI scripts has been fixed
285      so that it now provides the right information to the C code.
286
287Sat Jul 18 13:00 1998 Gerard Roudier (groudier@club-internet.fr)
288    * revision 3.0g
289    - Preliminary fixes for Big Endian (sent by Eddie C. Dost).
290      Big Endian architectures should work again with the driver.
291      Eddie's patch has been partially applied since current 2.1.109
292      does not have all the Sparc changes of the vger tree.
293    - Use of BITS_PER_LONG instead of (~0UL == 0xffffffffUL) has fixed
294      the problem observed when the driver was compiled using EGCS or
295      PGCC.
296
297Mon Jul 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr)
298    * revision 3.0f
299    - Some spelling fixes.
300    - linux/config.h misplaced in ncr53c8xx.h
301    - MODULE_PARM stuff added for linux 2.1.
302    - check INQUIRY response data format is exactly 2.
303    - use BITS_PER_LONG if defined.
304
305Sun Jun 28 12:00 1998 Gerard Roudier (groudier@club-internet.fr)
306    * revision 3.0e
307    - Some cleanup, spelling fixes, version checks, documentations
308      changes, etc ...
309
310Sat Jun 20 20:00 1998 Gerard Roudier (groudier@club-internet.fr)
311    * revision 3.0c
312    - Add a boot setup option that allows to set up device queue depths
313      at boot-up. This option is very useful since Linux does not
314      allow to change scsi device queue depth once the system has been
315      booted up.
316
317Sun Jun 15 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
318    * revision 3.0a
319    - Support for up to 64 TAGS per LUN.
320    - Rewrite the TARGET vs LUN capabilities management.
321      CmdQueue is now handled as a LUN capability as it shall be.
322      This also fixes a bug triggered when disabling tagged command
323      queuing for a device that had this feature enabled.
324    - Remove the ncr_opennings() stuff that was useless under Linux
325      and hard to understand to me.
326    - Add "setverbose" procfs driver command. It allows to tune
327      verbose level after boot-up. Setting this level to zero, for
328      example avoid flooding the syslog file.
329    - Add KERN_XXX to some printk's.
330
331Tue Jun 10 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
332    * revision 3.0
333    - Linux config changes for 2.0.34:
334      Remove NVRAM detection config option. This option is now enabled
335      by default but can be disabled by editing the driver header file.
336      Add a PROFILE config option.
337    - Update Configure.help
338    - Add calls to new function mdelay() for milli-seconds delay if
339      kernel version >= 2.1.105.
340    - Replace all printf(s) by printk(s). After all, the ncr53c8xx is
341      a driver for Linux.
342    - Perform auto-sense on COMMAND TERMINATED. Not sure it is useful.
343    - Some other minor changes.
344
345Tue Jun 4 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
346    * revision 2.6n
347    - Code cleanup and simplification:
348      Remove kernel 1.2.X and 1.3.X support.
349      Remove the _old_ target capabilities table.
350      Remove the error recovery code that have'nt been really useful.
351      Use a single alignment boundary (CACHE_LINE_SIZE) for data
352      structures.
353    - Several aggressive SCRIPTS optimizations and changes:
354      Reselect SCRIPTS code rewritten.
355      Support for selection/reselection without ATN.
356      And some others.
357    - Miscallaneous changes in the C code:
358      Count actual number of CCB queued to the controller (future use).
359      Lots of other minor changes.
360
361Wed May 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr)
362    * revision 2.6m
363    - Problem of missed SCSI bus reset with the 53C895 fixed by
364      Richard Waltham. The 53C895 needs about 650 us for the bus
365      mode to settle. Delays used while resetting the controller
366      and the bus have been adjusted. Thanks Richard!
367    - Some simplification for 64 bit arch done ccb address testing.
368    - Add a check of the MSG_OUT phase after Selection with ATN.
369    - The new tagged queue stuff seems ok, so some informationnal
370      message have been conditionned by verbose >= 3.
371    - Donnot reset if a SBMC interrupt reports the same bus mode.
372    - Print out the whole driver set-up. Some options were missing and
373      the print statement was misplaced for modules.
374    - Ignore a SCSI parity interrupt if the chip is not connected to
375      the SCSI bus.
376
377Sat May 1 16:00 1998 Gerard Roudier (groudier@club-internet.fr)
378    * revision 2.6l
379    - Add CCB done queue support for Alpha and perhaps some other
380      architectures.
381    - Add some barriers to enforce memory ordering for x86 and
382      Alpha architectures.
383    - Fix something that looks like an old bug in the nego SIR
384      interrupt code in case of negotiation failure.
385
386Sat Apr 25 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
387    * revision 2.6k
388    - Remove all accesses to the on-chip RAM from the C code:
389      Use SCRIPTS to load the on-chip RAM.
390      Use SCRIPTS to repair the start queue on selection timeout.
391      Use the copy of script in main memory to calculate the chip
392      context on phase mismatch.
393    - The above allows now to use the on-chip RAM without requiring
394      to get access to the on-chip RAM from the C code. This makes
395      on-chip RAM useable for linux-1.2.13 and for Linux-Alpha for
396      instance.
397    - Some simplifications and cleanups in the SCRIPTS and C code.
398    - Buglet fixed in parity error recovery SCRIPTS (never tested).
399    - Minor updates in README.ncr53c8xx.
400
401Wed Apr 15 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
402    * revision 2.6j
403    - Incorporate changes from linux-2.1.95 ncr53c8xx driver version.
404    - Add SMP support for linux-2.1.95 and above.
405    - Fix a bug when QUEUE FULL is returned and no commands are
406      disconnected. This happens with Atlas I / L912 and may happen
407      with Atlas II / LXY4.
408    - Nail another one on CHECK condition when requeuing the command
409      for auto-sense.
410    - Call scsi_done() for all completed commands after interrupt
411      handling.
412    - Increase the done queue to 24 entries.
413
414Sat Apr 4 20:00 1998 Gerard Roudier (groudier@club-internet.fr)
415    * revision 2.6i
416    - CTEST0 is used by the 53C885 for Power Management and
417      priority setting between the 2 functions.
418      Use SDID instead as actual target number. Just have had to
419      overwrite it with SSID on reselection.
420    - Split DATA_IN and DATA_OUT scripts into 2 sub-scripts.
421      64 segments are moved from on-chip RAM scripts.
422      If more segments, a script in main memory is used for the
423      additional segments.
424    - Since the SCRIPTS processor continues SCRIPTS execution after
425      having won arbitration, do some stuff prior to testing any SCSI
426      phase on reselection. This should have the vertue to process
427      scripts in parallel with the SCSI core performing selection.
428    - Increase the done queue to 12 entries.
429
430Sun Mar 29 12:00 1998 Gerard Roudier (groudier@club-internet.fr)
431    * revision 2.6h
432    - Some fixes.
433
434Tue Mar 26 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
435    * revision 2.6g
436    - New done queue. 8 entries by default (6 always useable).
437      Can be increased if needed.
438    - Resources management using doubly linked queues.
439    - New auto-sense and QUEUE FULL handling that does not need to
440      stall the NCR queue any more.
441    - New CCB starvation avoiding algorithm.
442    - Prepare CCBs for SCSI commands that cannot be queued, instead of
443      inserting these commands into the waiting list. The waiting list
444      is now only used while resetting and when memory for CCBs is not
445      yet available?
446
447Sun Feb 8 22:00 1998 Gerard Roudier (groudier@club-internet.fr)
448    * revision 2.6f
449    - Some fixes in order to really support the 53C895, at least with
450      FAST-20 devices.
451    - Heavy changes in the target/lun resources management to allow
452      the scripts to jump directly to the CCB on reselection instead
453      of walking on the lun CCBs list. Up to 32 tags per lun are now
454      supported without script processor and PCI traffic overhead.
455
456Sun Jan 11 22:00 1998 Gerard Roudier (groudier@club-internet.fr)
457    * revision 2.6d
458    - new (different ?) implementation of the start queue:
459          Use a simple CALL to a launch script in the CCB.
460    - implement a minimal done queue (1 entry :-) ).
461          this avoid scanning all CCBs on INT FLY (Only scan all CCBs, on
462          overflow). Hit ratio is better than 99.9 % on my system, so no
463          need to have a larger done queue.
464    - generalization of the restart of CCB on special condition as
465          Abort, QUEUE FULL, CHECK CONDITION.
466          This has been called 'silly scheduler'.
467    - make all the profiling code conditionned by a config option.
468      This spare some PCI traffic and C code when this feature is not
469          needed.
470    - handle more cleanly the situation where direction is unknown.
471      The pointers patching is now performed by the SCRIPTS processor.
472    - remove some useless scripts instructions.
473
474    Ported from driver 2.5 series:
475        ------------------------------
476    - Use FAST-5 instead of SLOW for slow scsi devices according to
477      new SPI-2 draft.
478    - Make some changes in order to accommodate with 875 rev <= 3
479      device errata listing 397. Minor consequences are:
480      . Leave use of PCI Write and Invalidate under user control.
481        Now, by default the driver does not enable PCI MWI and option
482        'specf:y' is required in order to enable this feature.
483      . Memory Read Line is not enabled for 875 and 875-like chips.
484      . Programmed burst length set to 64 DWORDS (instead of 128).
485        (Note: SYMBIOS uses 32 DWORDS for the SDMS BIOS)
486    - Add 'buschk' boot option.
487      This option enables checking of SCSI BUS data lines after SCSI
488      RESET (set by default). (Submitted by Richard Waltham).
489    - Update the README file.
490    - Dispatch CONDITION MET and RESERVATION CONFLICT scsi status
491      as OK driver status.
492    - Update the README file and the Symbios NVRAM format definition
493      with removable media flags values (available with SDMS 4.09).
494    - Several PCI configuration registers fix-ups for powerpc.
495      (Patch sent by Cort).
496

Archive Download this file



interactive