	   BusLogic MultiMaster and FlashPoint SCSI Driver for Linux

			  Version 2.0.7 for Linux 2.0

			       BETA TEST RELEASE

				17 October 1996

			       Leonard N. Zubkoff
			       Dandelion Digital
			       lnz@dandelion.com

	   Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>


				 RELEASE NOTES

The primary focus of this release is to introduce support for BusLogic's
FlashPoint series of SCSI host adapters.  Mylex/BusLogic has provided me with
the FlashPoint Driver Developer's Kit, which comprises documentation and freely
redistributable source code for the FlashPoint SCCB Manager.  The SCCB Manager
is the library of code that runs on the host CPU and performs functions
analogous to the firmware on the MultiMaster host adapters.

The FlashPoint host adapters are:

    BT-930  FlashPoint LT   Ultra Fast Single-ended SCSI-2
    BT-932  FlashPoint DL   Dual Channel Ultra Fast Single-ended SCSI-2
    BT-950  FlashPoint LW   Ultra Wide Single-ended SCSI-2
    BT-952  FlashPoint DW   Dual Channel Ultra Wide Single-ended SCSI-2

Relatively little in the MultiMaster code has changed.  FlashPoint support
primarily required reorganizing the existing code to better reflect the
relationship between the FlashPoint and MultiMaster interfaces.

Additional notes:

o FlashPoint host adapters are not yet supported on Alpha AXP.

o FlashPoint host adapters do not currently generate ABORT or ABORT TAG
  messages to abort a command that has timed out.  This support will be
  added in a future beta release.  Bus Device Reset and SCSI Bus Reset
  are fully supported.

o If both MultiMaster and FlashPoint host adapters are present in the same
  system, there appears to be no universally valid algorithm for determining
  which BIOS will receive control first, and hence which host adapters will be
  recognized first.  Therefore, this driver assumes the MultiMaster BIOS will
  receive control first and always recognizes all MultiMaster host adapters
  before any FlashPoint host adapters.  If this turns out to be incorrect, boot
  with the kernel command line:

    BusLogic=FlashPointFirst

o The FlashPoint DL and FlashPoint DW host adapters appear as two completely
  separate and independent host adapters as far as the driver is concerned.
  A single FlashPoint DL/DW will show up as two SCSI host adapters during
  the system boot messages, and each will only report having channel 0.

o Only the host adapters registered to a particular IRQ channel are scanned
  when an interrupt on that channel occurs.  Previously, the driver always
  scanned all host adapters whenever any interrupt was received.

o The code that attempts to identify whether an I/O address belongs to a
  BusLogic MultiMaster card has been improved so that it is far less likely
  that the more destructive hard reset will be attempted on a non-BusLogic
  card.  The new code is similar to the code used in BusLogic's BIOS to make
  this same decision.

o Since 2.0.x kernels have now been around for a while, this version of the
  driver no longer supports Linux 1.2.13.




		  BusLogic MultiMaster SCSI Driver for Linux

		       Version 1.2.6 for Linux 1.2.13
		       Version 2.0.6 for Linux 2.0.4

				 17 July 1996

			       Leonard N. Zubkoff
			       Dandelion Digital
			       lnz@dandelion.com

	   Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>


				 RELEASE NOTES

This release includes only very minor changes:

o Some devices do not properly handle the transition from non-tagged to tagged
  commands, so it is necessary to wait until there are no pending commands for
  a target device before queuing tagged commands.

o 64 LUN support is now available for all "W" Series controllers.

o Some nomenclature has been changed to more closely reflect the latest
  BusLogic Technical Reference Manual.




		  BusLogic MultiMaster SCSI Driver for Linux

		       Version 1.2.5 for Linux 1.2.13
		       Version 2.0.5 for Linux 2.0.4

				  7 July 1996

			       Leonard N. Zubkoff
			       Dandelion Digital
			       lnz@dandelion.com

	   Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>


				 RELEASE NOTES

This release includes only very minor changes:

o The driver no longer refuses to work with the AMI FastDisk EISA Series 441.

o For 1.2.13, additional SCSI subsystem fixes have been applied from the
  ongoing improvements in 2.0.x.




		  BusLogic MultiMaster SCSI Driver for Linux

		       Version 1.2.4 for Linux 1.2.13
		       Version 2.0.4 for Linux 2.0.0

				  5 June 1996

			       Leonard N. Zubkoff
			       Dandelion Digital
			       lnz@dandelion.com

	   Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>


				 RELEASE NOTES

This release includes only very minor changes:

o The preferred Tagged Queue Depth has been reduced from 31 to 28.  Larger
  Tagged Queue Depths can still be selected with command line arguments.

o The code has been reorganized slightly and data structure definitions have
  been changed in minor ways for compatibility with non-Intel architecture
  machines.




		  BusLogic MultiMaster SCSI Driver for Linux

		       Version 1.2.3 for Linux 1.2.13
		       Version 2.0.3 for Linux 2.0.0

				  17 May 1996

			       Leonard N. Zubkoff
			       Dandelion Digital
			       lnz@dandelion.com

	   Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>


				 RELEASE NOTES

This release includes improvements and fixes for some minor problems:

o New command line options "NoProbe", "NoProbeISA", and "NoSortPCI" have been
  added to allow users greater flexibility in disabling or altering probing
  should this ever be necessary.  Consult the comments on BusLogic_Setup for
  further information.

o Sorting of the PCI host adapters by bus number and device number is now only
  performed if the "Use Bus And Device # For PCI Scanning Seq." AutoSCSI option
  is on and if the host adapter BT-948/958/958D.  Some BT-946C/956C host
  adapters were found to have this bit set in AutoSCSI even though it has no
  meaning.

o A bus device reset that did not complete and was followed up by an
  asynchronous bus device reset to the same target device could result in a
  memory fault.

o One additional improvement to the timeout code in scsi.c has been made.




		  BusLogic MultiMaster SCSI Driver for Linux

		       Version 1.2.2 for Linux 1.2.13
		       Version 1.3.2 for Linux 1.3.88

				 16 April 1996

			       Leonard N. Zubkoff
			       Dandelion Digital
			       lnz@dandelion.com

	   Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>


				 RELEASE NOTES

This release focuses on two major areas, performance tuning and enhanced
support for the new BT-948/958/958D PCI Ultra SCSI Host Adapters, and
substantial modifications to the driver and SCSI subsystem's timeout, abort,
and reset handling to improve robustness.  Many race conditions in the SCSI
subsystem have been corrected, and the reset interface has been expanded to
correct some fundamental design flaws.  Some performance improvements to the
SCSI subsystem have also been made.

o The number of mailboxes and the total queue depth are now determined
  individually for each host adapter, rather than being defined at compile
  time.  This allows for optimized support for the newest and fastest host
  adapters, without crippling performance on the older models.

o Individual queue depths for each target device are selected based on the
  host adapter's total queue depth and the number, type, speed, and
  capabilities of the target devices.  On disk devices that support tagged
  queuing, queue depths up to 31 will be used.  Note that the "concurrency"
  term used in previous releases of this driver is now referred to as "queue
  depth", in keeping with terminology used elsewhere.

o The abort and bus device reset code has been improved based on a more precise
  understanding of how the different host adapter firmware versions implement
  these operations.

o The SCSI disk timeout has been increased to 15 seconds and the threshold
  for using an ordered queue tag has been increased from 2 seconds to 5
  seconds.  The 2 second pause before aborting a command has been removed,
  since it was not found to be particularly helpful.

o The driver now implements the same algorithm for determining the geometry
  translation as used by the host adapter BIOS.  Specifically, if the BIOS
  detects that the extended translation setting does not match the geometry in
  the partition table, then the translation inferred from the partition table
  will be used by the BIOS, and a warning may be displayed.  The driver will
  now correctly track the geometry that the BIOS has decided upon.

o The interrupt handler now runs with interrupts disabled to avoid race
  conditions and the possibility that systems with multiple host adapters on
  different interrupts might encounter stack overflow problems.

o The driver is now able to report the termination status of "W" and "C" series
  host adapters.

o On "W" and "C" series host adapters, the target device inquiry is now
  conducted via a different host adapter command which only probes logical
  unit 0 on each target device.

o BT-445S revision D host adapters with firmware version 3.36 are now correctly
  reported as being VLB.

o The Micropolis 4110 disk drive has been blacklisted so that tagged queuing
  will not be attempted, since it has a buggy tagged queuing implementation.

Note: Compiling the file "hosts.c" will cause a warning for other drivers.  The
reset function now takes an additional argument, and so a warning will be
generated by the compiler.  The enhancements to the reset function interface
should not make any other driver function any worse than it already did.


		      BUSLOGIC ANNOUNCEMENTS MAILING LIST

The BusLogic Announcements Mailing List provides a forum for informing Linux
users of new driver releases and other announcements regarding Linux support
for BusLogic SCSI Host Adapters.  To join the mailing list, send a message to
"buslogic-announce-request@dandelion.com" with the line "subscribe" in the
message body.




		  BusLogic MultiMaster SCSI Driver for Linux

		       Version 1.2.1 for Linux 1.2.13
		       Version 1.3.1 for Linux 1.3.51

			       31 December 1995


				 RELEASE NOTES

This release corrects a number of problems that were discovered with old
revision BusLogic host adapters and with AMI FastDisk clones after the first
release of this driver became part of the standard Linux development kernel in
1.3.42.  In addition, I've corrected some problems I uncovered in my own
testing, and made significant improvements to the tagged queuing support.  The
primary changes are:

o The initialization and host adapter configuration code has been modified to
  correctly handle problems encountered with some old revision BT-542B and
  BT-742A host adapters, as well as with the AMI FastDisk.  There is now an
  additional command line option integer that allows for disabling the target
  device inquiry if necessary, as this was found to be problematic for one site
  with old BT-742A cards.

o Tagged queuing should now operate reliably in some instances where commands
  were timing out with the previous version.  The underlying problem was that
  if one uses tagged queuing with only simple queue tags, there are data access
  patterns that will definitely cause timeouts, as apparently the tagged
  queuing implementation in most or all disk drives does not protect against
  starvation.  It's a probabilistic situation, and there is no timeout value
  sufficiently large to guarantee that this cannot occur.

  I adopted a multiple level approach to solving this problem.  The driver now
  forces sequence points in the command stream by injecting uses of an ordered
  queue tag at appropriate intervals.  The driver keeps track for each target
  device of the last time at which either there were no queued commands
  outstanding or an ordered queue tag was generated.  When a command is queued
  and it has been longer than 2 seconds since the last sequence point, the
  driver uses an ordered queue tag rather than a simple queue tag.  This forces
  the target device to complete all previous commands before executing the
  current one, and hence guarantees that no command can remain disconnected
  indefinitely.  If a command timeout does occur, the driver now pauses briefly
  to allow outstanding commands to complete, and only aborts the command if it
  fails to complete during the pause.  Finally, if a command using tagged
  queuing causes a bus device reset or SCSI bus reset, then tagged queuing will
  be disabled for that target device.

o Tagged queuing is now disabled for individual target devices whenever
  disconnect/reconnect is disabled for that device.  Without the ability to
  disconnect, tagged queuing is pointless.

o Resetting either an individual device or the host adapter and SCSI bus after
  a command times out is now more robust.  The new version is careful to
  perform reset processing first for the SCSI command being reset, and only
  then for any other active commands.  There also appear to have been rare
  cases in which reset processing was entered with interrupts disabled, which
  could hang the system when the delay for bus settling was executed.

o A one instruction window was closed in outgoing mailbox processing where the
  host adapter could have seen an incorrect CCB as the Action field was written
  before the CCB field.

o The BusLogic driver may now be compiled as a module in 1.3.48 and later.
  Only a single instance of the driver may be loaded at one time.

o The changes in device initialization installed in Linux 1.3.33 inadvertently
  defeated the code that worked around bugs in BT-445S host adapters prior to
  revision D.  Bounce buffers are now used on these relatively rare cards since
  I now have enough information to differentiate the correctly functioning
  BT-445S hardware revisions based on their firmware version.

o The number of mailboxes used for communication with the host adapter has been
  raised from 32 to 64.  The number of CCBs allocated initially remains at 32.
