patch-2.0.37 linux/drivers/scsi/ChangeLog.ncr53c8xx
Next file: linux/drivers/scsi/Config.in
Previous file: linux/drivers/pci/pci.c
Back to the patch index
Back to the overall index
- Lines: 1411
- Date:
Sun Jun 13 10:21:02 1999
- Orig file:
v2.0.36/linux/drivers/scsi/ChangeLog.ncr53c8xx
- Orig date:
Sun Nov 15 10:49:42 1998
diff -u --recursive --new-file v2.0.36/linux/drivers/scsi/ChangeLog.ncr53c8xx linux/drivers/scsi/ChangeLog.ncr53c8xx
@@ -1,5 +1,265 @@
-Fri Jan 2 18:00 1998 Gerard Roudier (groudier@club-internet.fr)
- * Revision 2.5f
+Sun Dec 13 18:00 1998 Gerard Roudier (groudier@club-internet.fr)
+ * revision 3.1e
+ - Same work-around as for the 53c876 rev <= 0x15 for 53c896 rev 1:
+ Disable overlapped arbitration. This will not make difference
+ since the chip has on-chip RAM.
+
+Thu Nov 26 22:00 1998 Gerard Roudier (groudier@club-internet.fr)
+ * revision 3.1d
+ - The SISL RAID change requires now remap_pci_mem() stuff to be
+ compiled for __i386__ when normal IOs are used.
+ - Minor spelling fixes in doc files.
+
+Sat Nov 21 18:00 1998 Gerard Roudier (groudier@club-internet.fr)
+ * revision 3.1c
+ - Ignore chips that are driven by SISL RAID (DAC 960).
+ Change sent by Leonard Zubkoff and slightly reworked.
+ - Still a buglet in the tags initial settings that needed to be fixed.
+ It was not possible to disable TGQ at system startup for devices
+ that claim TGQ support. The driver used at least 2 for the queue
+ depth but did'nt keep track of user settings for tags depth lower
+ than 2.
+
+Wed Nov 11 10:00 1998 Gerard Roudier (groudier@club-internet.fr)
+ * revision 3.1b
+ - The driver was unhappy when configured with default_tags > MAX_TAGS
+ Hopefully doubly-fixed.
+ - Update the Configure.help driver section that speaks of TAGS.
+
+Wed Oct 21 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
+ * revision 3.1a
+ - Changes from Eddie Dost for Sparc and Alpha:
+ ioremap/iounmap support for Sparc.
+ pcivtophys changed to bus_dvma_to_phys.
+ - Add the 53c876 description to the chip table. This is only usefull
+ for printing the right name of the controller.
+ - DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15).
+ - Add additionnal checking of INQUIRY data:
+ Check INQUIRY data received length is at least 7. Byte 7 of
+ inquiry data contains device features bits and the driver might
+ be confused by garbage. Also check peripheral qualifier.
+ - Cleanup of the SCSI tasks management:
+ Remove the special case for 32 tags. Now the driver only uses the
+ scheme that allows up to 64 tags per LUN.
+ Merge some code from the 896 driver.
+ Use a 1,3,5,...MAXTAGS*2+1 tag numbering. Previous driver could
+ use any tag number from 1 to 253 and some non conformant devices
+ might have problems with large tag numbers.
+ - 'no_sync' changed to 'no_disc' in the README file. This is an old
+ and trivial mistake that seems to demonstrate the README file is
+ not often read. :)
+
+Sun Oct 4 14:00 1998 Gerard Roudier (groudier@club-internet.fr)
+ * revision 3.0i
+ - Cosmetic changes for sparc (but not for the driver) that needs
+ __irq_itoa() to be used for printed IRQ value to be understandable.
+ - Some problems with the driver that didn't occur using driver 2.5f
+ were due to a SCSI selection problem triggered by a clearly
+ documented feature that in fact seems not to work: (53C8XX chips
+ are claimed by the manuals to be able to execute SCSI scripts just
+ after abitration while the SCSI core is performing SCSI selection).
+ This optimization is broken and has been removed.
+ - Some broken scsi devices are confused when a negotiation is started
+ on a LUN that does not correspond to a real device. According to
+ SCSI specs, this is a device firmware bug. This has been worked
+ around by only starting negotiation if the LUN has previously be
+ used for at least 1 successful SCSI command.
+ - The 'last message sent' printed out on M_REJECT message reception
+ was read from the SFBR i/o register after the previous message had
+ been sent.
+ This was not correct and affects all previous driver versions and
+ the original FreeBSD one as well. The SCSI scripts has been fixed
+ so that it now provides the right information to the C code.
+
+Sat 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
@@ -10,1142 +270,13 @@
. 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)
-
-Sun Oct 26 12:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.5e
- 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.
-
-Sat Oct 4 18:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.5d
- 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).
-
-Sat Sep 20 21:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.5c
- Several PCI configuration registers fix-ups for powerpc.
(Patch sent by Cort).
-
-Thu Aug 28 10:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.5b
- - Add 'ncr53c8xx' char pointer variable. This variable allows to
- pass a boot command to the driver when it is loaded as a module.
- Option separator is ' ' instead of ','. Example:
- insmod <mod_path>/ncr53c8xx.o ncr53c8xx='verb:2 sync:0 specf:n'
- - Always use 'driver_setup.settle_delay' for internal resets.
- 2 seconds hardcoded is sometimes too short. Suggested by Richard W.
- This delay may be shortenned in order to avoid spurious timeouts.
- - Fix release module stuff that failed for more than 1 controller.
- - For linux versions > 1.3.70, trust the 'dev_id' parameter passed
- to the interrupt handler (dev_id = struct ncb *).
- - Fix up in 'ncr_log_hard_error()' when the DSP points outside scripts.
- Suggested by Stefan Esser.
-
-Tue Aug 23 23:43 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.5a
- - Update Configure.help for inclusion in linux-2.1.51/2/3
- - Use BASE_2 address from PCI config space instead of some
- IO register for getting the on-board SRAM bus address.
- - Remove error testing of pcibios_read/write functions.
- These functions are intended to be used for successfully
- detected PCI devices. Expecting error condition from them
- is nothing but paranoia.
-
-Thu Aug 21 23:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.5
- - 53C860 chip support fix.
- - Move the 'host_status' to the last DWORD of the CCB header.
- This header is copied back by the script processor. This
- guarantees that the header is entirely copied back over
- the PCI when the CPU completes a CCB.
- - (re)read ISTAT prior to scanning CCBs for completion. This
- ensure that any posted buffer are flushed prior CCBs scan.
- - Support for BIG ENDIAN cpu. Added by Cort <cort@cs.nmt.edu>.
- Initial patch did'nt support disconnections and tagged commands.
- I've completed the patch and it seems that all is ok now.
- Only some powerpc under 2.1.X is supported for the moment.
- - Misc. trivial fixes and cleanups.
-
-Sat July 26 18:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.4
- Several clean-ups:
- - Asynchronous pre-scaler calculation.
- Synchronous divisor calculation.
- - Use FE_ as feature identifier prefix instead of _F_.
- - Change 'ns_sync' identifier to "minsync".
- - Some others.
- Apply some SPI2-R12 recommendations.
- - Use Slow, Fast-10, Fast-20, Fast-40 SCSI instead of SCSI-2,
- FAST SCSI-2, ULTRA, ULTRA-2.
- - Reset the SCSI on bus mode change.
-
-Wed July 02 22:58 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.3c
- - Add define SCSI_NCR_PCI_FIX_UP_SUPPORT for conditionnal compilation
- of the corresponding pci fix-up code when a small driver is needed.
- - Use "ncr53c8xx" as driver name for both request_irq() and
- request_region(). Using different names confused 'lsdev'.
- (Suggestion sent by Henrik Storner).
-
-Wed June 24 22:08 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.3b
- - Print an error message on unexpected boot command line option.
- - Switch to asynchronous data transfer mode after SCSI wide
- negotiation.
-
-Wed June 24 22:08 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.3b
- - Print an error message on unexpected boot command line option.
- - Switch to asynchronous data transfer mode after SCSI wide
- negotiation.
-
-Wed June 14 22:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.3a
- - Add PCI LATENCY TIMER fixup code.
- Increase it if necessary according to burst size.
- Boot option bit : 'pcifix:4'
- - On phase mismatch, calculate residual data size for all OUTPUT
- phases. That's only required for interrupted DATA OUT phase, but
- this information is usefull for problem solving.
- - Add KERN_INFO to some messages printed to the log.
- (Patch sent by Wolfram Kleff).
-
-Tue June 02 22:30 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.3
- - NvRAM support code slightly improved (I think):
- Use IO or MMIO according to driver setup for reading the NvRAM.
- Use structures for NvRAM data instead of raw data.
- - Prevent from queuing more than 1 command to the scsi SCRIPT with
- negotiation attached when tagged command queueing is enabled.
- - Fix-up for old 53C8XX chips that support PCI READ LINE but not
- CACHE LINE SIZE. If the cache line size is unknown, set burst
- to 8 dwords and disable READ LINE, otherwise set burst max to
- the cache line size value.
-
-Sat May 24 12:30 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.2c (for linux-2.1.40)
- - Remove reference to 'x86' symbol when MODULE is defined, since this
- symbol is not exported for module loading.
- The value of 'x86' is used for fixing up the PCI CACHE LINE SIZE
- configuration register.
- - Bytes/words read one bit at a time from the serial NVRAM were'nt
- initialized with zero.
- - Some comments added. Minor cosmetic changes.
-
-Mon May 19 20:30 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.2b
- - Patch for NVRAM support by Richard Waltham applied.
- The code detects Symbios NVRAM format and Tekram NVRAM format.
- This enhancement allows to get hosts and devices user set up
- from the NVRAM.
- - Use the NVRAM contents when present to initialize user definable
- target parameters.
- - Update the README file.
-
-Sun May 11 22:30 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.1b
- - Cosmetic changes.
- - Some heavy testings under pre-linux-2.1.37-6
-
-Sun May 4 22:30 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.1a
- - PFEN wrongly used for PREFETCH feature bit testing.
- Changed to _F_PFEN.
- - 2 SCR_COPY that need NO FLUSH bit to be removed had been missed
- in tp->getscr[] script (loads SXFER and SCNTL3 on reselection).
-
-Sat May 3 22:30 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.1
- - Use the NO FLUSH option for MOVE MEMORY (COPY) each time it is
- possible. More than 100 COPY with NO FLUSH and 6 with FLUSH for
- my configuration (max queued command / device = 8).
- This option bit is removed from the script instance for chips
- that donnot support prefetching.
- - Rewrite the ncr_exception() routine more simple (I think) and
- remove useless code.
- - Change the data_in and data_out script management.
- Use the bottom part of these scripts instead of the beginning.
- That avoids to zero the scatter/gather array when a command is
- queued (1k) and to deal with some weird IID on MOVE 0 bytes when
- a target wants to transfer more bytes than expected.
- - Misc. improvements in the init code.
- - Remove IOMAPPED/MMIO automatic switching option.
- Was useless and reported not reliable.
- - Fix a double read of DSTAT and remove DFE testing in the
- Phase mismatch service routine.
- - Etc...
-
-Fri Apr 26 20:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.0a
- - Add support if the Diamond FirePort 40 (SYM53C875J chip)
-
-Mon Apr 22 22:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 2.0
- - incorporate __initdata and __initfunc directives in order to
- allow 'init' to free unused memory after driver initialisations.
- Patch sent by Roberto Fichera.
- - rewrite the init code of the driver. Now a feature descriptor
- is used for each real chip types. The code is a lot more clean,
- since the driver uses device and revision ids only in the
- detection procedure.
- - add 'pcifix' boot command line. This command allows to fix up PCI
- config space for new chips which support features based on the
- cache line size and 'write and invalidate'.
- - incorporate in the driver, the code used for error recovery
- testing. This code is normally not compiled; have to define
- SCSI_NCR_DEBUG_ERROR_RECOVERY in order to compile it.
- - take into account actual SCSI bus mode for 53C895 LVD/SE controller.
- In single ended mode only fast20 is supported.
- (Just to not be late since such controllers are not yet available)
-
-
-Sat Apr 20 21:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 1.18f
- - fix an old bug included in the initial port (version 0.0).
- The driver allocated 10 bytes of static data and uses 12 bytes.
- No danger, since data are generally aligned on 4 bytes boundary
- and so byte 10 and 11 are free (I hope ...)
-
-Wed Apr 16 12:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 1.18e
- - reset all when an unexpected data cycle is detected while
- disconnecting.
- - make changes to abort() ans reset() functions according to
- Leonard's documentation.
- - small fix in some message for hard errors.
-
-Sat Apr 5 13:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 1.18d
- - Probe NCR pci device ids in reverse order if asked by user from
- the boot command line. Suggested by Richard Waltham.
- - Make a separate function that prints out verbose information on
- severe error (assumed from hardware).
- - Add the transfer period factor and the max commands per lun value
- to the proc info data. If debug flags are set or verbosity is
- greater than 1, debug flags and verbosity are returned in proc
- info data.
- - Update the documentation.
-
-Thu Mar 20 23:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * revision 1.18c
- - Add special features support for NCR53C885 and NCR53C896 chip.
- Quite obvious, but untested, and based on the fact that:
- The 885 supports same features as the 875.
- The 896 is a 64 bits PCI version of the 895.
- - Improve recovery from SCSI GROSS ERRORS.
- I can get such errors by making the driver negotiate offset 8 with
- a disk and setting the ncr chip to a lower offset value.
- I got bunches of errors that have been gracefully recovered by
- the driver.
- The driver now uses its timer handler in order to wait 2 sec. for
- devices to settle after SCSI reset and so does not uselessly freeze
- the system with interrupt masked for seconds.
- - Enable 'burst op code fetch' and 'read line' for 815 chips.
- - Use a 2 commands queue depth instead of 1 for devices that does
- not support tagged command queuing.
- - The ULTRA timing flag setting was based on the output resulting
- period factor of the ncr and not on the negotiated one.
- This flag setting was wrong only for 24 ns negotiated period factor.
- - Some other minor changes and cleanups.
-
-Thu Feb 27 23:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h revision 1.18b
- - 'On paper' support of the NCR53C895 Ultra-2 chip.
- (Clock quadrupler + 7 clock divisors)
- - Load the main part of the script into the on-board RAM.
- - 810A rev. 0x11 PCI problem fixed.
- This chip is now supported with all PCI features enabled and
- 16 dwords burst transfers.
- - Align on 32 boundary some internal structures.
- That fixes the 810A problem and allows cache line bursting when
- moving the global header (64 bytes) from/to CCBs to/from NCB.
- - Synchronous parameters calculation rewritten. The driver
- now uses all available clock divisors and will be able to support
- clock frequencies that are not multiple of 40 Mhz if necessary.
-
-Sat Feb 8 22:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c - revision 1.17a
- - IRQ mode set up from boot setup command.
- irqm:0 open drain (default)
- irqm:1 preserve initial setting (assumed from BIOS)
- irqm:2 totem pole
- - DIFF mode set up from boot setup command.
- Suggested by Richard Waltham.
- diff:0 never set up diff mode (default)
- diff:1 set up diff mode according to initial setting (BIOS?)
- diff:2 always set up diff mode
- diff:3 set up diff mode if GPIO3 is zero (SYMBIOS boards)
- - Change CONFIG option for LED support.
- CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT allows LED support and
- DIFF support for SYMBIOS boards and compatibles (clones?).
- - Set 16 DWORD bursts for 810A rev. >= 0x12 since my SC200 with
- such a chip have no problem with it (MB with Triton 2 HX).
- 810A rev. 0x11 are set to 8 DWORD bursts since they may give
- problems with PCI read multiple and Triton 2 HX.
- Thanks to Stefan for this information.
-
-Sat Jan 25 22:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c - revision 1.17
- - Controller LED support.
- Only works with LED pin wired to GPIO_FETCHN, so probably with
- all boards using SMDS BIOS.
- This option can be enabled only if CONFIG_EXPERIMENTAL is set.
- - Assume clock doubler for 875 chip when clock frequency measurement
- result is 40 MHz. May help when some old stuff as SDMS BIOS 3.0
- or some old driver has broken the normal BIOS settings.
- - Add wide negotiation control from boot setup command.
- May be usefull with systems using a 875 based board connected to
- a wide device through a 50 pins to 68 pins converter.
- - Add a "boot fail safe option" to the boot setup command line.
- - Rewrite the "reset_command" routine.
- Low-level driver are responsible to keep the involved command
- alive. The new code seems to behave correctly.
- - Change some variables used by the script from u_long to u_int32.
- - Remove some useless code.
-
-Sun Jan 12 12:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c - revision 1.16e
- - Add support of PCI burst length control from boot setup command.
- burst:0 disable burst
- burst:255 get burst from initial settings (BIOS settings?)
- burst:#x set burst transfers to 1<<#x
- - Only check xfer direction for common op-codes.
- For all device specific / vendor specific opcodes the driver
- now uses the xfer direction decided by the target.
-
-Sun Jan 05 12:00 1997 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c - revision 1.16d
- - The driver is now able to process scsi commands without
- knowledge of xfer data direction.
- Stefan agreed with this change for Linux. This change is
- not needed under FreeBSD since low-level drivers receive
- the expected data direction for each scsi request.
- - Save ctest5 features bits at start-up and restore them at
- module release step.
- Avoid side effects when a ncr driver which trusts bios
- settings is reloaded (could be the ncr53c8xx itself).
-
-
-Wed Jan 01 23:30 1997 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c - revision 1.16c
- - Bad decision about 20MHz for 13 ns period factor.
- Was wrong, so I restore the previous algorithm.
- - Burst length 128 not correctly set in dmode.
-
-Thu Dec 26 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h README.ncr53c8xx - revision 1.16b
- - Remove useless code.
- - Try to improve error recovery in case of abort and reset.
- - Remove DEBUG_NEGO by default.
- - Add boot setup command support.
- Now, all experimental config options can be removed.
- - Update README file.
-
-
-Mon Dec 23 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h - revision 1.16a
- New display for speed ##.# MB/s (From Stefan)
- - I add "WIDE" qualifier after ULTRA and FAST
- - I get "FAST WIDE SCSI-2 20 MB/s" with my Atlas. That's nice.
-
- Richard Waltham reports SYMBIOS set the 875 to 20 MB/s for 13 ns
- period factor. I decide to trust SYMBIOS. 20 MB/s output speed
- instead of 19.2 MB/s should not cause problem. The ncr is only able
- to use 16.67 MB/s when 20 MB/s is not possible.
-
- Fix from Markus Kossman: "Ultra SCSI enabled" wrongly printed
- when not enabled.
-
- Set DEBUG_NEGO by default in order to get reports about sync nego.
- Will remove it in the next patch.
-
-Thu Dec 19 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h README.ncr53c8xx - revision 1.16
- Incorporate new definitions in ncr53c8xx.h (From Stefan).
- Check changes against Stefan's current version of the driver.
- All seems ok.
-
-Sat Nov 30 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h
- Make changes in order to support:
- - Clock doubler and so 80 Mhz scsi clock for 875 chips.
- - Sync transfers below 7.5 MB/sec.
- Use Clock/2 between 5 and 10 Mega-transfers/s and Clock/4 below 5.
- - Ultra SCSI data transfers.
- - Offset 16.
-
- Works with my configuration. However I cannot test Ultra transfers,
- since my disks are only fast scsi-2.
-
-Tue Nov 28 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- I received yesterday my Promise SCSI Ultra board.
- NCR53C875 rev. 3 with clock doubler.
- Add the code to support some bus features, the large 536 dma fifo and
- burst 128. Works.
-
-Mon Nov 4 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h - revision 1.14c
- Severall control command improvements:
-
- - Allow to specify "all" to commands that apply to #target.
- For example: "setsync all 255" sets asynchronous data
- transfers for all targets on a bus.
-
- - Allow to control disconnection privilege per device, as follow:
- "setflag #target no_sync" disables disconnection for #target.
- "setflag #target" with no flag specified reenables it.
-
- Obviously #target may be specified as "all" in order to control
- disconnection for all targets with a single control command.
-
- - README file updated and some hints about SCSI problems solving added.
-
-Sun Oct 27 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h - revision 1.14b
- Add the following config parameters:
-
- - CONFIG_SCSI_NCR53C8XX_MAX_TAGS
- Max number of queued tagged commands.
- Allow from 2 to 12, default 4.
-
- - CONFIG_SCSI_NCR53C8XX_SYNC
- Synchronous transfers frequency in MHz.
- Allow from 5 to 10, default 5, 0 means asynchronous.
- (And so remove CONFIG_SCSI_NCR53C8XX_FORCE_ASYNCHRONOUS)
-
-Sun Oct 20 16:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- ncr_scatter() rewritten.
- remove "ncr dead" detection.
-
-Sun Oct 13 19:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h - revision 1.14a
- Enabling some special features makes problems with some hardware.
- So, disable them by default.
- Add SCSI_NCR_SPECIAL_FEATURES define to play with.
-
-Sun Oct 13 14:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c ncr53c8xx.h
- Incorporate Stefan's patch for clock frequency detection.
- (Committed in FreeBSD/ncr.c rev. 1.81).
- The driver then does about the following:
- Assume 40 MHz clock for all ncr chips except:
- - NCR53C860 chips:
- Assume 80 Mhz clock.
- - NCR53C875 chips:
- If clock doubler enabled, disable it and assume 40 Mhz clock.
- Else if (scntl3&7)=0 measure scsi clock frequency.
- Else trust bios setting of scntl3&7 (3=40 Mhz, 5=80Mhz).
-
-Wed Oct 9 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c - release 1.14
- For now, just change the clock detection as follow:
- - If clock doubler selected by BIOS, assume 40 MHz clock since
- clock doubler will be disabled by chip reset.
- - Else if NCR53C860 assume 80 MHz clock.
- - Else trust BIOS setting if (scntl3&7 >= 3)
- - Else assume 40 MHz clock.
-
-Sat Oct 05 17:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Stefan sent me a patch that improves the clock frequency detection
- of the driver. Stefan uses the general timer register stime1 in
- order to measure as accurately as possible the scsi clock.
- Works ok with my 825, but needs still testing. So will be
- released later.
-
-Sun Sep 29 17:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Preserve dcntl/dmode/ctest3/ctest4 features bits at start-up.
- Add the define option SCSI_NCR_TRUST_BIOS_SETTING.
- - If this option is defined, the driver will preserve the
- corresponding bits of io registers.
- - Else, the driver will set features bits according to chip
- and revision ids.
-
-Sun Sep 22 17:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Remove useless fields and code and so spare cpu:
- - profile data are accumulated in jiffies ticks and converted
- to milli-seconds when read through proc fs.
- - when IOMAPPED is not defined, try only MMIO.
- (avoid testing a value in order to choose between IO and MMIO)
-
-Sun Sep 01 20:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h, ncr53c8xx.c - Version 1.13
- Adaptation of the tagged command queuing depth control of the
- FreeBSD driver to Linux. Now, tagged command queueing can be
- disabled at run time by a "settags N 0" control command.
- Add the following heuristic in order to manage intelligently (perhaps)
- QUEUE_FULL status:
- - Each time a QUEUE FULL status is returned by a device, disable tagged
- command queuing for that device.
- - Every 100 successfully complete commands, increment the maximum
- queuable commands (up to the allowed limit).
-
-Fri Aug 30 10:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c - Version 1.12c
- Incorporate the changes of FreeBSD/ncr.c revision 1.76.
- The changes add support for the 53c860 and 53c875,
- but without taking advantage of the new features.
- Those chips are used exactly as the old 53c810.
-
-Sun Jul 21 00:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, README.ncr53c8xx
- Add the ncr53c8xx_select_queue_depths() function.
- Set queue_depth to SCSI_NCR_MAX_TAGS (4 by default) for devices that
- support tagged command queueing.
- For other devices, set queue_depth to 1. No need to queue a command
- to the driver if this command cannot be sent to the device.
- Each time the driver hide io requests from the kernel and/or from the
- driver, it may break a little (or a lot) optimization algorithms that
- try to increase throughput by reordering io requests.
- It is better to enable the disk write caching to reduce latencies for
- write operations, and to trust asynchronous read ahead from the device
- and from the kernel that can reduce latencies for read operations,
- even when tagged command queuing is not supported or enabled.
-
-Sat Jul 20 20:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Minor changes:
- - Problem of "CCB address mismatch" that happens with the 3 versions
- of the driver. The CCB is correct and Stefan Esser suggests a little
- patch that seems to be a bypass.
- Stefan says he will change that in a future version of the BSD driver.
- - Set burst transfers to 8 for 815 chips.
-
-Sun Jul 14 15:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, Configure.help
- Memory mapped io donnot work under linux/Alpha for the driver.
- For the moment it is better to not support this feature for this
- architecture.
-
-Tue Jul 09 20:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Garbage printed out with the following command (fixed):
- - cat <some proc scsi device> /proc/scsi/ncr53c8xx/0
-
-Sun Jul 07 20:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Tagged command queueing cannot be disabled at run time.
- I probably never try that because I felt the risk.
- Shortest patch sent to Linus. I have to plan something better.
-
-Wed Jul 03 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- Release 1.12a
- Tested linux releases: 1.2.13, 2.0.0, 2.0.1
-
-Mon Jul 01 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- ncr53c8xx.h, ncr53c8xx.c
- Add "clearprof" user command that clear the profile counters.
- Automatically clear profile counters when num_kbytes=1000000000
- in order to avoid ugly overflow.
- Donnot compile user command code and profile data with 1.2.13.
-
-Wed Jun 29 20:38 1996 Gerard Roudier (groudier@club-internet.fr)
- Matthew Geier reported to me a weird problem of unexpected
- disconnection while asynchronous negotiation.
- The message sent by the driver is 1-3-1-ff-00. I sent a patch to
- Matthew that change the message to 1-3-1-00-00.
- The sync msgout was correct however some devices might be to happy
- with ff.
-
-Wed Jun 26 22:57 1996 Gerard Roudier (groudier@club-internet.fr)
- Patch no 4 sent to Harald.
- The drived used "wtime" for timeouts adn time measurements.
- I change for jiffies.
- Work with my P133.
-
-Mon Jun 24 23:05 1996 Gerard Roudier (groudier@club-internet.fr)
- Patch no 3 sent to Harald.
-
-Sun Jun 23 22:29 1996 Gerard Roudier (groudier@club-internet.fr)
- Patch no 2 sent to Harald.
- I think that the driver have some chance to work.
-
-Sun Jun 23 15:00 1996 Gerard Roudier (groudier@club-internet.fr)
- Harald Koenig is interested in the adaptation of the driver to
- Linux/Alpha.
- I have prepared a patch and sent it to Harald.
-
-Sun Jun 16 19:00 1996 Gerard Roudier (groudier@club-internet.fr)
- Release 1.11
- Tested linux releases: 1.2.13, 2.0.0
-
-Sat Jun 15 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h, Configure.help, scsi/Config.in
- Add CONFIG_SCSI_NCR53C8XX_IOMAPPED config option.
- Prepare the 2.0.0 with the new version of the driver.
-
-Wed Jun 12 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- Rewrite the README file.
- Add some documentations of the proc file system support.
-
-Sun Jun 9 18:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Add proc filesystem support of the driver.
- Read operations returns profile information.
- Write operations send control commands to the host adapter driver.
-
-Wed Jun 5 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- Change xfer direction for SCAN command to write.
- Was bogus.
-
-Tue May 30 18:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Set the DMA FIFO to 88 for 825A and 875 boards.
- The previous value of 536 is bogus since the script only read 7
- bits for the fifo size (thanks to Stefan).
-
-Mon May 27 18:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Correct the xfer direction guessing for scanner SCAN command (write).
-
-Mon May 27 18:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Add the following config options:
- SCSI_NCR_DISABLE_MPARITY_CHECK : disable master parity checking.
- SCSI_NCR_DISABLE_PARITY_CHECK : disable scsi parity checking.
- SCSI_NCR_FORCE_SYNC_NEGO : force sync nego for all scsi 2 devices.
-
-Sat May 25 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- Release 1.10
- Tested linux releases: 1.2.13, 1.3.45, 1.3.71, 1.3.90, 1.3.100
- 1.99.6, 1.99.7
- Switch between Drew's driver and Bsd driver tested for 1.99.7.
- Both driver was made as modules.
-
-Sat May 25 16:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Some weird problems happen with multi-lun configurations and HDs.
- SDTR seems to be sent with TEST UNIT READY of lun 1.
- Tagged Queue cannot be enabled. It seems that inqdata are
- filled with garbage probably due to some INQUIRY command to
- lun 1.
- I have fixed the problem as follow:
- - negotiation are initiated only with a command to lun 0.
- - inquiry data are store only for lun 0.
-
-Wed May 22 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr53c8xx.h
- Have prepared the patch that allow to install the driver in the
- kernel tree, without moving Drew's one.
- Seems to work. However, I have to check that nothing has been
- broken for 1.2.13 and 1.3.45 to 1.3.100.
-
-Sun May 4 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h
- Adapt the source to some modifications of the linux tree of 1.3.98.
- (include/linux/scsicam.h moved to include/scsi/scsicam.h)
-
-Thu Apr 25 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h, ncr53c8xx.c
- Release 1.9
- Prepare conditionnal compilations for the future Linux version(s).
- Assume that these versions will be nicely compatible with current
- one.
- 1.3.255, 1.4.0 or 2.0.0 ?
- I suggest 3.0.0 for some obvious reason.
-
-Wed Apr 24 23:15 1996 Gerard Roudier (groudier@club-internet.fr)
- * Install.ncr53c8xx
- Add Patch-Current.ncr53c8xx to the distribution.
- This patch is applied to the scsi Makefile at installation time for
- Linux release V.P.S (V*1000000000+P*100000000+S > 1300000094).
- Each time it'll be necessary I will send the patch corresponding to
- the current Linux release to the linux-scsi@vger.rutgers.edu.
-
-Sun Apr 21 19:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * README.ncr53c8xx
- Update Bonnie results of linux-1.3.92 + prepatch read-ahead 1.3.93.
- Results are so good that I must remove FreeBSD-2.0.5 results from the
- README file, otherwise I should cause trouble for myself.
-
-Sun Apr 07 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h
- Define SCSI_NCR_MAX_LUN (8) inconditionaly.
- Previous releases did not work for multi-lun devices.
- This definition was wrongly conditionned:
- (SCSI_CONFIG_MULTI_LUN instead of CONFIG_SCSI_MULTI_LUN).
- No luck, since I donnot have multi-lun devices and could'nt
- test it.
- Some tests under linux-1.3.84 with an experimental patch that
- try to do asynchronous read-ahead.
-
-Wed Apr 03 23:15 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h, ncr53c8xx.c
- Change some wrong "assert (target == cmd->target & 7)" to
- "assert (target == (cmd->target & 0xf)".
- Remove NCR_TIMEOUT_ALERT from ncr53c8xx.c
- Add SCSI_NCR_TIMEOUT_ALERT to ncr53c8xx.h
-
-Sun Mar 24 21:15 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h
- During "make dep" of linux-1.2.13, LINUX_VERSION_CODE is undefined.
- Have to assume 1.2.13 in such situation.
- Release 1.8
-
-Sun Mar 24 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * README.ncr53c8xx
- Make changes according to the new uninstallation procedure.
-
-Sun Mar 24 20:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * Uninstall.ncr53c8xx
- Add an uninstallation script to the distribution.
- This shell script restore the standard driver.
- Very usefull for people who prefers to use a driver that
- does not support:
- - Master parity check
- - Tagged command queuing
- - Fast Wide Scsi-2 features (up to 20 MB/sec)
- and that would be capable to reject a Wide Negotiation that it had
- previously initiated.
-
-Sat Mar 23 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * README.ncr53c8xx
- Make changes according to the new installation procedure.
-
-Fri Mar 22 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * Install.ncr53c8xx
- Add an installation script to the distribution.
- 3 differents patches are necessary:
- - linux-1.2.13
- - linux-1.3.45 to linux-1.3.49
- - linux-1.3.50 to linux-1.3.77
-
-Wed Mar 13 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr53c8xx.h
- Add share irq support.
- This facility appears with linux-1.3.70. It seems that the
- corresponding code of the kernel was questionnable before 1.3.72.
- I decide to support this options from linux-1.3.72 and above.
- (Add define option SCSI_NCR_SHARE_IRQ)
- Release 1.7
-
-Tue Mar 12 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Download BSD ncr.c 1.67 and apply the correction of negotiations order.
- Now the Wide and Sync negotiation are done in the proper order.
- (Problem reported by Johannes Plass).
- Round up correctly the announced speed in MB/sec.
-
-Tue Mar 05 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * README.ncr53c8xx
- Have to upload release 1.6 for users of linux-1.3.70-71
-
-Mon Mar 04 16:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * README.ncr53c8xx
- Add some Bonnie results to the README file.
-
-Sun Mar 03 20:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Make changes for linux-1.3.70 according to the new specification of
- irq services interface (request_irq(), free_irq()).
- With 26 letters, "_", and 10 digits we can build about:
- 53x62**9 C names of 10 characters.
- Why to use SAME function names with DIFFERENT parameters ?
-
-Sat Mar 02 22:30 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Using SIMPLE QUEUE TAG for all operations is good for performances,
- but may be bad for assumed timeout values.
- Under heavy disk load (Bonnie), the drive may start IO process of a
- command, then disconnect, then execute lots of other commands
- before completing the interrupted command.
- The standard value of SD_TIMEOUT (6 sec or 7 sec) seems (is) too short.
- I fix the problem by forcing an ORDERED QUEUE TAG for the next
- command when I found some "old" pending command.
- "Old" means that they might be timeouted in a few seconds.
- Add NCR_TIMEOUT_ALERT and set it to 3 seconds.
-
-Fri Mar 01 22:30 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h, ncr53c8xx.c
- Add define SCSI_NCR_SEGMENT_SIZE and set it by default to 512.
- If undefined, the driver use the scatter list given by the upper
- scsi driver, else it tries to split segments into shorter one
- according to the value of SCSI_NCR_SEGMENT_SIZE.
-
-Tue Feb 27 21:30 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h
- Set sg_tablesize to 127 = SCSI_NCR_MAX_SCATTER-1.
- (was 64 = SCSI_NCR_MAX_SCATTER/2).
- May increase the speed (about 20%) for linear read/write operations.
- Bonnie results may be better, but I prefered the previous
- value.
-
-Tue Feb 27 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr54c8xx.c, ncr53c8xx.h
- Tagged command queueing seems to affect linux-1.3.XY kernels.
- I decide to disable tagged queue by default and to provide a command
- tool to enable it per device after boot-up.
- Add scsitag.c to the distribution.
- Usage: scsitag device
- Examples: scsitag /dev/sda
- scsitag /dev/sdb
-
-Sun Feb 25 14:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr53c8xx.h
- Add INQ7_Default definition and set the target capabilities to this
- value by default.
- Add some code to reject a synchronous negotiation request from a target
- that is defined as not capable of Sync in the table of capabilities.
-
-Sat Feb 24 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Add some code to fill some write-only host instance fields:
- - base
- - io_port
- - n_io_port
- - dma_channel
- This fields may be used with some "standard" drivers that do not
- process correctly the release function.
-
-Fri Feb 23 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- I receive a mail from Jason Duerstock.
- A new bug in ncrBsd2Linux which is probably outside the driver code
- and inside Linux kernel code.
- The kernel memory is quite corrupted and we cannot get any information
- by looking into the messages about the crash. However Linus see a bug in
- ncrBsd2Linux because it is a "non standard" driver.
- I think too that ncrBsd2Linux is not a standard driver of Linux kernel,
- because it has no bugs enough to become standard for Linux.
- Drew's driver is quite standard.
-
-Wed Feb 21 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr53c8xx.h
- I incorporate the differences between FreeBSD ncr.c revision 1.62 and
- revision 1.64.
- - Some cosmetic changes.
- - Use M_SIMPLE_TAG by default (even for write operations).
- I seems to me that SIMPLE TAG is safe only if the flag "queue
- algorithm modifier" is set to zero.
- I will ask some questions to Stefan Esser about this.
- Add option SCSI_NCR_ALWAYS_SIMPLE_TAG in ncr53c8xx.h.
-
-Fri Feb 16 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- I have found the bug. It is a recursion in __get_free_pages().
- I will send a mail to Linus about this.
-
-Sat Feb 10 20:00 1996 Gerard Roudier (groudier@club-internet.fr)
- I am sure that the kernel stack overflow is due to a severe bug in
- the Linux kernel.
- I decide to try to find the bug by myself.
-
-Fri Feb 09 20:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr53c8xx.h
- Limit commands per lun to 2 for linux-1.3.XY.
- The patch-1.3.60 does not correct the kernel stack overflow problem.
- I decide to make some tests with Drew's driver and Bsd2Linux with same
- working conditions (3 commands per lun, FAST SCSI, no command queueing).
- I get the stack overflow problem with the 2 drivers at the same
- frequency.
- With only 2 commands per LUN, I don't have the problem with any driver.
- It seems that the madness of recursion and the recent introduction of
- the silly generic read function have broken performance and reliability
- of scsi drivers.
-
-Thu Feb 08 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr_attach()
- Release memory mapped region and io port if initialisation
- does not succeed.
-
-Thu Feb 08 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr53c8xx.c
- Try to spare some CPU time in queue_command() function and interrupt
- handler:
- Add SCSI_NCR_PARANOIA define option in ncr53c8xx.h.
- Add SCSI_NCR_PROFILE define option in ncr53c8xx.h.
- Avoid useless code and function calls.
-
-Tue Feb 06 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr53c8xx.h, ncr_timeout()
- Add SCSI_NCR_BROKEN_INTR define option in ncr53c8xx.h.
- If this option is set, the timeout handler polls the interrupt status
- register every tick (10 ms). So, boards with broken interrupt can work.
-
-Mon Feb 05 21:30 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Print the correct speed, for devices with successfull wide negotiation.
- For same period, such devices are two times faster then narrow ones.
-
-Mon Feb 05 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.h, ncr53c8xx.c, ncr_attach()
- Add define SCSI_NCR_SETTLE_TIME in header file and set it by default
- to 2 seconds.
-
-Sat Jan 27 14:00 1996 Gerard Roudier (groudier@club-internet.fr)
- Upload release 1.3
-
-Wed Jan 24 24:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Update from ncr Bsd 1.60 (Stefan Esser):
- The handshake timeout is disabled, since
- a few devices will delay ACK for more than a
- second: Scanner, CDROM writer and a few old hard
- disk drives.
-
-Wed Jan 24 22:30 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Set the selection timeout to 0.4 sec, since 0.25 sec
- is recommended for scsi-1 devices.
- Note that the Bsd ncr driver sets this timeout to 0.1 sec
- and the linux standard ncr driver sets it to 0.8 sec.
-
-Wed Jan 24 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Add a 5 seconds delay after chip initialization,
- waiting for scsi devices to settle their stomach,
- as FreeBSD generic scsi driver does.
-
-Tue Jan 23 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Set burst length value according to chip type.
- The original Bsd ncr driver sets burst length to 16 for
- all chip types.
-
-Tue Jan 16 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c, ncr53c8xx.h
- Add comments to linux specific glue code.
-
-Mon Jan 15 22:00 1996 Gerard Roudier (groudier@club-internet.fr)
- io mapped versus memory mapped.
- * ncr53c8xx.c
- Add some code to dynamicaly switch to io mapped if memory mapped
- does not work.
- No more need to reconfigure, compile and link the kernel if
- memory mapped is not possible.
-
-Sun Jan 14 18:00 1996 Gerard Roudier (groudier@club-internet.fr)
- Patch sent to ncr mailing list by Jason Duerstock
- <jduersto@kendall.mdcc.edu>
- I have omitted to provide the proc_dir_entry to the middle
- scsi driver.
- * ncr53c8xxx.c
- Add the declaration of the ncr53c8xx proc_dir_entry and return
- the pointer to middle scsi driver.
-
-Sat Jan 13 01:00 1996 Gerard Roudier (groudier@club-internet.fr)
- ncrBsd2Linux 1.1 is ready.
- Upload to sunsite immediatly.
-
-Fri Jan 12 23:45 1996 Gerard Roudier (groudier@club-internet.fr)
- It seems that scsi-2 devices too may cause problems because they
- have flawes in the firmware.
- * ncr53c8xx.h
- I add a table of capabilities per target.
- This table contains one byte per target. The value of this byte
- is anded with byte 7 of INQUIRY data.
- Edit ncr53c8xx.h and read the corresponding comments for more
- details.
-
-Wed Jan 10 22:35 1996 Gerard Roudier (groudier@club-internet.fr)
- I have some time to read the scsi-1 specifications.
- Some very old scsi devices may cause problems with the ncr Bsd driver
- for the following raisons:
- The Synchronous Negotiation protocol was optional.
- The standardized INQUIRY data does not include the byte 7 of
- the scsi-2 specifications which contains the capabilities of
- the device.
- I think that negotiation with such devices are very questionnable.
- * ncr53c8xx.c
- ncrBsd2Linux 1.1 does not negotiate with scsi-1 devices.
-
-Sat Jan 06 21:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c function ncr_attach()
- Disable chip interrupt before soft reset in attach procedure.
- When loadlin is used to boot the system, the state of the NCR chip
- is unpredicable. This modification avoid unexpected interrupts.
-
-Thu Jan 04 23:45 1996 Gerard Roudier (groudier@club-internet.fr)
- ncrBsd2Linux 1.0 is ready.
- Upload to sunsite immediatly.
-
-Tue Jan 02 23:00 1996 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Add a waiting list for Scsi Commands than can be inserted
- into the start queue immediatly.
- When a command complete, the waiting commands are requeued by calling
- the queuecommand() function.
-
-Sun Dec 31 23:59 1995 Gerard Roudier (groudier@club-internet.fr)
- * ncr53c8xx.c
- Use kmalloc()/kfree() for internal data structures allocation to
- avoid scsi memory pool shortage.
-
-Sat Dec 30 23:00 1995 Gerard Roudier (groudier@club-internet.fr)
- ncrBsd2Linux can now use memory mapped IO.
- Works fine.
- * ncr53c8xx.c
- Call vremap() from ncr_attach() to map the physical page which
- contains the memory IO window.
- Call vfree() from ncr_detach() (release module).
-
-Fri Dec 29 23:45 1995 Gerard Roudier (groudier@club-internet.fr)
- ncrBsd2Linux can now be configured as a module.
- Works fine.
- * ncr53c8xx.c: add new functions ncr53c8xx_release() and ncr_detach()
- Add the code to (per host):
- Stop the timer.
- Stop the chip.
- Free allocated memory.
-
-Fri Dec 29 23:00 1995 Gerard Roudier (groudier@club-internet.fr)
- Problem: detection routine returns 0 and can detect only one host.
- * ncr53c8xx.c function ncr_attach()
- ncr_attach() now returns 0 on success and -1 on error.
- ncr53c8xx_detect() returns the number of detected hosts.
-
-Thu Dec 28 22:00 1995 Gerard Roudier (groudier@club-internet.fr)
- I must upload the new version which corrects the severe problem with
- WRITE_10 command.
- Release 0.5
- Known or probable problems with this ncr driver release:
- --------------------------------------------------------
- Same as the previous release.
-
-Wed Dec 27 23:00 1995 Gerard Roudier (groudier@club-internet.fr)
- Problem:
- System CRASH or scsi ERROR "extra data disgarded" on WRITE(10)
- command.
- * ncr53c8xx.c function guess_xfer_direction()
- I add the WRITE(10) (0x2A) into the list of Data Out scsi commands.
- It was a big mistake.
- This BUG was introduced in the release 0.3 and is obvious present in
- the release 0.4.
-
-Wed Dec 27 22:00 1995 Gerard Roudier (groudier@club-internet.fr)
- Problem:
- When I was testing tagged command queueing and disconnections
- with one hard disk at a time (IBM S12), the script process hung
- every 5 minutes with a non empty stall queue.
- * ncr53c8xx.c function ncr_exception()
- I replace "OUTB (nc_istat, INTF)" by
- "OUTB (nc_istat, (istat & SIGP) | INTF)".
- This statement cleared the INTF condition, but cleared the SIGP flag too.
- (This bug is in the original FreeBSD ncr driver).
-
-Mon Dec 25 22:00 1995 Gerard Roudier (groudier@club-internet.fr)
- Release 0.4
- Known or probable problems with this ncr driver release:
- --------------------------------------------------------
- Hardware (or software) conflicts with some ethernet cards.
- See release 0.2 above.
- Crash with Intel saturn chipset with write-back cache enabled.
- The SCSI SCRIPT access the internal registers of
- the NCR chip by memory addressing.
- Ensure that the memory area of the NCR chip is not cacheable.
- Use scanpci to get the base memory address of the ncr chip.
- The 128 bytes following this address must not be cached.
-
-Sat Dec 23 22:00 1995 Gerard Roudier (groudier@club-internet.fr)
- Problem:
- FreeBSD driver important comments
- ---------------------------------
- We try to reduce the number of interrupts caused
- by unexpected phase changes due to disconnects.
- A typical harddisk may disconnect before ANY block.
- If we wanted to avoid unexpected phase changes at all
- we had to use a break point every 512 bytes.
- Of course the number of scatter/gather blocks is
- limited.
- * ncr53c8xx.c function ncr_scatter()
- This function has been rewritten according to the above comments.
- The Linux scatter list is scanned, and blocks are broken as possible
- into 512 bytes chunks.
-
-Wed Dec 22 22:00 1995 Gerard Roudier (groudier@club-internet.fr)
- Problem: ensure that there are enough allocated Command Control Blocks
- for each unit to enqueue commands according to cmd_per_lun.
- * ncr53c8xx.c function ncr_allocate_ccb()
- Allocate all required ccb(s) instead of one at a time.
-
-Mon Dec 18 23:00 1995 Gerard Roudier (groudier@club-internet.fr)
- Problem: A copy of the system time is used to compute timeouts.
- When the system time is changed , we can get spurious timeouts
- if scsi commands are pending.
- * ncr53c8xx.c function ncr_timeout()
- In FreeBSD the kernel time (volatile struct timeval time) is not
- affected by settimeofday() or other change time functions.
- For Linux, I replace "time" by "xtime". But "xtime" is the system time,
- and is affected by change time functions.
- If we detect a change <=-1s or >1s we assume system time has been changed.
- For all active ccb(s), we recompute tlimit.
- We set heartbeat to thistime to prevent spurious chip reset.
-
-Sun Dec 17 23:00 1995 Gerard Roudier (groudier@club-internet.fr)
- Release 0.3.
-
-Sun Dec 17 11:00 1995 Gerard Roudier (groudier@club-internet.fr)
-
- Problem: Linux middle-level scsi driver does not provide the
- direction of transfert in scsi command parameters.
- FreeBSD ncr driver need this information to patch the SCSI script
- for SAVE DATA POINTER and to check actual data transfer direction.
- * ncr53c8xx.c
- I add the function guess_xfer_direction(int opcode) which try to
- guess the transfer direction.
- Unfortunately my documentation about SCSI-II standard is very old.
- It does not contain PHOTO-CD command specifications.
- I assume input transfer direction, for unknown command. (not perfect)
-
-Wed Dec 15 23:00 1995 Gerard Roudier (groudier@club-internet.fr)
-
- It's time to schedule the release 0.2
- Known or probable problems with this ncr driver release:
- --------------------------------------------------------
- Scsi tapes do not work.
- scsi-config-1.5 does not work too.
- Hardware (or software) conflicts with some ethernet cards.
- The linux native ncr53c810 scsi driver does'not use memory
- mapped IO at all.
- The BSD driver can use memory mapped IO.
- Under Linux, i seems to be difficult (or impossible) to map
- a PCI memory area. So I decide to use normal IO in the code of
- the ported driver.
- However, the SCSI SCRIPT access the internal registers of
- the NCR chip by memory addressing.
- EThernet cards use a memory area to communicate with the system.
- I think that this memory area conflicts with the memory area
- used by the NCR chip.
- The configuration diskette of your ethernet card can help you
- to fix the problem (try sofware configurations).
-
-Wed Dec 15 22:00 1995 Gerard Roudier (groudier@club-internet.fr)
-
- Problem: detection of CD change did not work.
- * ncr53c8xx.c
- Signal a CHECK_CONDITION (S_CHECK_COND) to the middle-level
- scsi drivers when the scsi completion status = S_SENSE|S_GOOD.
-
- Problem: System hang with status <4/82> after mounting the root
- partition. System disk is a QUANTUM EMPIRE 1080 S.
- Submitted by rwilhelm@Physik.TU-Muenchen.DE (Robert Wilhelm)
- Thu, 14 Dec 1995 10:18:43 +0100 (MET)
- * ncr53c8xx.c
- Signal a CHECK_CONDITION (S_CHECK_COND) to the middle-level
- scsi drivers when the scsi completion status = S_SENSE|S_CHECK_COND.
- (HS_COMPLETE=4, S_SENSE|S_CHECK_COND=x82).
- I can't test this fix. I think that it should work.
-
-Thu Dec 14 22:00 1995 Gerard Roudier (groudier@club-internet.fr)
-
- Problem submitted by Bill Dyess <Bill@Dyess.com> Tue 12 Dec 1995
- Only one lun detected on a Pioneer DRM-602X 6-disk CD-ROM changer.
- * ncr53c8xx.h, ncr53c8xx.c
- Define NCR_SCSI_MAX_LUN to 8 if the Linux configuration flag
- SCSI_CONFIG_MULTI_LUN is set.
- My CD device has only one lun. I can't test multi-lun device,
- but I think that it should work.
-
- * ncr53c8xx.c
- Write the ncr_abort_command() and ncr_reset_command() functions.
- I intend to test these functions next week.
-
-Sun Dec 10 22:00 1995 Gerard Roudier (groudier@club-internet.fr)
- * Release 0.1
- Works fine with hard disks under Linux 1.2.13 and Linux 1.3.45.
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov