Sar Jul 18 13:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 3.0g - Preliminary fixes for Big Endian (sent by Eddie C. Dost). Big Endian architectures should work again with the driver. Eddie's patch has been partially applied since current 2.1.109 does not have all the Sparc changes of the vger tree. - Use of BITS_PER_LONG instead of (~0UL == 0xffffffffUL) has fixed the problem observed when the driver was compiled using EGCS or PGCC. Mon Jul 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 3.0f - Some spelling fixes. - linux/config.h misplaced in ncr53c8xx.h - MODULE_PARM stuff added for linux 2.1. - check INQUIRY response data format is exactly 2. - use BITS_PER_LONG if defined. Sun Jun 28 12:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 3.0e - Some cleanup, spelling fixes, version checks, documentations changes, etc ... Sat Jun 20 20:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 3.0c - Add a boot setup option that allows to set up device queue depths at boot-up. This option is very usefull since Linux does not allow to change scsi device queue depth once the system has been booted up. Sun Jun 15 23:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 3.0a - Support for up to 64 TAGS per LUN. - Rewrite the TARGET vs LUN capabilities management. CmdQueue is now handled as a LUN capability as it shall be. This also fixes a bug triggered when disabling tagged command queuing for a device that had this feature enabled. - Remove the ncr_opennings() stuff that was useless under Linux and hard to understand to me. - Add "setverbose" procfs driver command. It allows to tune verbose level after boot-up. Setting this level to zero, for example avoid flooding the syslog file. - Add KERN_XXX to some printk's. Tue Jun 10 23:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 3.0 - Linux config changes for 2.0.34: Remove NVRAM detection config option. This option is now enabled by default but can be disabled by editing the driver header file. Add a PROFILE config option. - Update Configure.help - Add calls to new function mdelay() for milli-seconds delay if kernel version >= 2.1.105. - Replace all printf(s) by printk(s). After all, the ncr53c8xx is a driver for Linux. - Perform auto-sense on COMMAND TERMINATED. Not sure it is usefull. - Some other minor changes. Tue Jun 4 23:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6n - Code cleanup and simplification: Remove kernel 1.2.X and 1.3.X support. Remove the _old_ target capabilities table. Remove the error recovery code that have'nt been really usefull. Use a single alignment boundary (CACHE_LINE_SIZE) for data structures. - Several aggressive SCRIPTS optimizations and changes: Reselect SCRIPTS code rewritten. Support for selection/reselection without ATN. And some others. - Miscallaneous changes in the C code: Count actual number of CCB queued to the controller (future use). Lots of other minor changes. Wed May 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6m - Problem of missed SCSI bus reset with the 53C895 fixed by Richard Waltham. The 53C895 needs about 650 us for the bus mode to settle. Delays used while resetting the controller and the bus have been adjusted. Thanks Richard! - Some simplification for 64 bit arch done ccb address testing. - Add a check of the MSG_OUT phase after Selection with ATN. - The new tagged queue stuff seems ok, so some informationnal message have been conditionned by verbose >= 3. - Donnot reset if a SBMC interrupt reports the same bus mode. - Print out the whole driver set-up. Some options were missing and the print statement was misplaced for modules. - Ignore a SCSI parity interrupt if the chip is not connected to the SCSI bus. Sat May 1 16:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6l - Add CCB done queue support for Alpha and perhaps some other architectures. - Add some barriers to enforce memory ordering for x86 and Alpha architectures. - Fix something that looks like an old bug in the nego SIR interrupt code in case of negotiation failure. Sat Apr 25 21:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6k - Remove all accesses to the on-chip RAM from the C code: Use SCRIPTS to load the on-chip RAM. Use SCRIPTS to repair the start queue on selection timeout. Use the copy of script in main memory to calculate the chip context on phase mismatch. - The above allows now to use the on-chip RAM without requiring to get access to the on-chip RAM from the C code. This makes on-chip RAM useable for linux-1.2.13 and for Linux-Alpha for instance. - Some simplifications and cleanups in the SCRIPTS and C code. - Buglet fixed in parity error recovery SCRIPTS (never tested). - Minor updates in README.ncr53c8xx. Wed Apr 15 21:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6j - Incorporate changes from linux-2.1.95 ncr53c8xx driver version. - Add SMP support for linux-2.1.95 and above. - Fix a bug when QUEUE FULL is returned and no commands are disconnected. This happens with Atlas I / L912 and may happen with Atlas II / LXY4. - Nail another one on CHECK condition when requeuing the command for auto-sense. - Call scsi_done() for all completed commands after interrupt handling. - Increase the done queue to 24 entries. Sat Apr 4 20:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6i - CTEST0 is used by the 53C885 for Power Management and priority setting between the 2 functions. Use SDID instead as actual target number. Just have had to overwrite it with SSID on reselection. - Split DATA_IN and DATA_OUT scripts into 2 sub-scripts. 64 segments are moved from on-chip RAM scripts. If more segments, a script in main memory is used for the additionnal segments. - Since the SCRIPTS processor continues SCRIPTS execution after having won arbitration, do some stuff prior to testing any SCSI phase on reselection. This should have the vertue to process scripts in parallel with the SCSI core performing selection. - Increase the done queue to 12 entries. Sun Mar 29 12:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6h - Some fixes. Tue Mar 26 23:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6g - New done queue. 8 entries by default (6 always useable). Can be increased if needed. - Resources management using doubly linked queues. - New auto-sense and QUEUE FULL handling that does not need to stall the NCR queue any more. - New CCB starvation avoiding algorithm. - Prepare CCBs for SCSI commands that cannot be queued, instead of inserting these commands into the waiting list. The waiting list is now only used while resetting and when memory for CCBs is not yet available? Sun Feb 8 22:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6f - Some fixes in order to really support the 53C895, at least with FAST-20 devices. - Heavy changes in the target/lun resources management to allow the scripts to jump directly to the CCB on reselection instead of walking on the lun CCBs list. Up to 32 tags per lun are now supported without script processor and PCI traffic overhead. Sun Jan 11 22:00 1998 Gerard Roudier (groudier@club-internet.fr) * revision 2.6d - new (different ?) implementation of the start queue: Use a simple CALL to a launch script in the CCB. - implement a minimal done queue (1 entry :-) ). this avoid scanning all CCBs on INT FLY (Only scan all CCBs, on overflow). Hit ratio is better than 99.9 % on my system, so no need to have a larger done queue. - generalization of the restart of CCB on special condition as Abort, QUEUE FULL, CHECK CONDITION. This has been called 'silly scheduler'. - make all the profiling code conditionned by a config option. This spare some PCI traffic and C code when this feature is not needed. - handle more cleanly the situation where direction is unknown. The pointers patching is now performed by the SCRIPTS processor. - remove some useless scripts instructions. Ported from driver 2.5 series: ------------------------------ - Use FAST-5 instead of SLOW for slow scsi devices according to new SPI-2 draft. - Make some changes in order to accomodate with 875 rev <= 3 device errata listing 397. Minor consequences are: . Leave use of PCI Write and Invalidate under user control. Now, by default the driver does not enable PCI MWI and option 'specf:y' is required in order to enable this feature. . Memory Read Line is not enabled for 875 and 875-like chips. . Programmed burst length set to 64 DWORDS (instead of 128). (Note: SYMBIOS uses 32 DWORDS for the SDMS BIOS) - Add 'buschk' boot option. This option enables checking of SCSI BUS data lines after SCSI RESET (set by default). (Submitted by Richard Waltham). - Update the README file. - Dispatch CONDITION MET and RESERVATION CONFLICT scsi status as OK driver status. - Update the README file and the Symbios NVRAM format definition with removable media flags values (available with SDMS 4.09). - Several PCI configuration registers fix-ups for powerpc. (Patch sent by Cort).