123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496 |
- Sat May 12 12:00 2001 Gerard Roudier (groudier@club-internet.fr)
- * version ncr53c8xx-3.4.3b
- - Ensure LEDC bit in GPCNTL is cleared when reading the NVRAM.
- Fix sent by Stig Telfer <stig@api-networks.com>.
- - Define scsi_set_pci_device() as nil for kernel < 2.4.4.
- Mon Feb 12 22:30 2001 Gerard Roudier (groudier@club-internet.fr)
- * version ncr53c8xx-3.4.3
- - Call pci_enable_device() as AC wants this to be done.
- - Get both the BAR cookies actual and PCI BAR values.
- (see Changelog.sym53c8xx rev. 1.7.3 for details)
- - Merge changes for linux-2.4 that declare the host template
- in the driver object also when the driver is statically
- linked with the kernel.
- Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr)
- * version ncr53c8xx-3.4.2
- - See Changelog.sym53c8xx, driver version 1.7.2.
- Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr)
- * version ncr53c8xx-3.4.1
- - Provide OpenFirmware path through the proc FS on PPC.
- - Remove trailing argument #2 from a couple of #undefs.
- Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr)
- * version ncr53c8xx-3.4.0
- - Remove the PROFILE C and SCRIPTS code.
- This facility was not this useful and thus was not longer
- desirable given the increasing complexity of the driver code.
- - Merges from FreeBSD sym-1.6.2 driver:
- * Clarify memory barriers needed by the driver for architectures
- that implement a weak memory ordering.
- - General cleanup:
- Move definitions for barriers and IO/MMIO operations to the
- sym53c8xx_defs.h header files. They are now shared by the
- both drivers.
- Use SCSI_NCR_IOMAPPED instead of NCR_IOMAPPED.
- Thu May 11 12:30 2000 Pam Delaney (pam.delaney@lsil.com)
- * revision 3.3b
-
- Mon Apr 24 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2i
- - Return value 1 (instead of 0) from the driver setup routine.
- - Let the driver also attach controllers that have been set to
- OFF in the NVRAM as it did prior to revision 3.2g.
- Sat Apr 1 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2h
- - Fix a compilation problem on Alpha introduced in version 3.2g.
- (`port' changed to `base_io').
- - Move from `sym' to this driver a tiny change for __sparc__ that
- applies to cache line size (? Probably from David S Miller).
- - Make sure no data transfer will happen for Scsi_Cmnd requests
- that supply SCSI_DATA_NONE direction (this avoids some BUG()
- statement in the PCI code when a data buffer is also supplied).
- Thu Mar 16 9:30 2000 Pam Delaney (pam.delaney@lsil.com)
- * revision 3.3b-3
- - Added exclusion for the 53C1010 and 53C1010_66 chips
- to the driver (change to sym53c8xx_comm.h).
- Mon March 6 23:15 2000 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2g
- - Add the file sym53c8xx_comm.h that collects code that should
- be shared by sym53c8xx and ncr53c8xx drivers. For now, it is
- a header file that is only included by the ncr53c8xx driver,
- but things will be cleaned up later. This code addresses
- notably:
- * Chip detection and PCI related initialisations
- * NVRAM detection and reading
- * DMA mapping
- * Boot setup command
- * And some other ...
- - Add support for the new dynamic dma mapping kernel interface.
- Requires Linux-2.3.47 (tested with pre-2.3.47-6).
- - Get data transfer direction from the scsi command structure
- (Scsi_Cmnd) when this information is available.
- Mon March 6 23:15 2000 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2g
- - Add the file sym53c8xx_comm.h that collects code that should
- be shared by sym53c8xx and ncr53c8xx drivers. For now, it is
- a header file that is only included by the ncr53c8xx driver,
- but things will be cleaned up later. This code addresses
- notably:
- * Chip detection and PCI related initialisations
- * NVRAM detection and reading
- * DMA mapping
- * Boot setup command
- * And some other ...
- - Add support for the new dynamic dma mapping kernel interface.
- Requires Linux-2.3.47 (tested with pre-2.3.47-6).
- - Get data transfer direction from the scsi command structure
- (Scsi_Cmnd) when this information is available.
- Fri Jan 14 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
- * revision pre-3.3b-1
- - Merge parallel driver series 3.31 and 3.2e
- Tue Jan 11 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
- * revision 3.31
- - Added support for mounting disks on wide-narrow-wide
- scsi configurations.
- - Built off of version 3.30
- Mon Jan 10 13:30 2000 Pam Delaney (pam.delaney@lsil.com)
- * revision 3.30
- - Added capability to use the integrity checking code
- in the kernel (optional).
- - Disabled support for the 53C1010.
- - Built off of version 3.2c
- Sat Jan 8 22:00 2000 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2e
- - Add year 2000 copyright.
- - Display correctly bus signals when bus is detected wrong.
- - Remove the dead code that broke driver 3.2d.
- Mon Dec 6 22:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2d
- - Change messages written by the driver at initialisation and
- through the /proc FS (rather cosmetic changes that consist in
- printing out the PCI bus number and device/function).
- - Get rid of the old PCI bios interface, but preserve kernel 2.0
- compatibility from a simple wrapper.
- - Remove the compilation condition about having to acquire the
- io_request_lock since it seems to be a definite feature now.:)
- - proc_dir structure no longer needed for kernel >= 2.3.27.
- - Change the driver detection code by the sym53c8xx one, modulo
- some minor changes. The driver can now attach any number of
- controllers (>40) and does no longer hoger stack space at
- initialisation.
- - Definitely disable overlapped PCI arbitration for all dual
- function chips, since I cannot make sure for what chip revisions
- it is actually safe.
- - Add support for the SYM53C1510D.
- - Update the poor Tekram sync factor table.
- - Remove the compilation condition about having to acquire the
- io_request_lock since it seems to be a definite feature now.:)
- - proc_dir structure no longer needed for kernel >= 2.3.27.
- Sat Sep 11 18:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2c
- - Handle correctly (hopefully) jiffies wrap-around.
- - Restore the entry used to detect 875 until revision 0xff.
- (I removed it inadvertently, it seems :) )
- - Replace __initfunc() which is deprecated stuff by __init which
- is not yet so. ;-)
- - Add support of some 'resource handling' for linux-2.3.13.
- Basically the BARs have been changed to something more complex
- in the pci_dev structure.
- - Remove some deprecated code.
- Sat May 10 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * revision pre-3.2b-1
- - Support for the 53C895A by Pamela Delaney <pam.delaney@lsil.com>
- The 53C895A contains all of the features of the 896 but has only
- one channel and has a 32 bit PCI bus. It does 64 bit PCI addressing
- using dual cycle PCI data transfers.
- - Miscellaneous minor fixes.
- - Some additions to the README.ncr53c8xx file.
- Sun Apr 11 10:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2a
- - Add 'hostid:#id' boot option. This option allows to change the
- default SCSI id the driver uses for controllers.
- - Remove nvram layouts and driver set-up structures from the C source,
- and use the one defined in sym53c8xx_defs.h file.
- (shared by both drivers).
- - Set for now MAX LUNS to 16 (instead of 8).
- Thu Mar 11 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.2 (8xx-896 driver bundle)
- - Only define the host template in ncr53c8xx.h and include the
- sym53c8xx_defs.h file.
- - Declare static all symbols that do not need to be visible from
- outside the driver code.
- - Add 'excl' boot command option that allows to pass to the driver
- io address of devices not to attach.
- - Add info() function called from the host template to print
- driver/host information.
- - Minor documentation additions.
- Sat Mar 6 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.1h
- - Fix some oooold bug that hangs the bus if a device rejects a
- negotiation. Btw, the corresponding stuff also needed some cleanup
- and thus the change is a bit larger than it could have been.
- - Still some typo that made compilation fail for 64 bit (trivial fix).
- Sun Feb 14:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.1g
- - Deal correctly with 64 bit PCI address registers on Linux 2.2.
- Pointed out by Leonard Zubkoff.
- - Allow to tune request_irq() flags from the boot command line using
- ncr53c8xx=irqm:??, as follows:
- a) If bit 0x10 is set in irqm, IRQF_SHARED flag is not used.
- b) If bit 0x20 is set in irqm, IRQF_DISABLED flag is not used.
- By default the driver uses both IRQF_SHARED and IRQF_DISABLED.
- Option 'ncr53c8xx=irqm:0x20' may be used when an IRQ is shared by
- a 53C8XX adapter and a network board.
- - Tiny misspelling fixed (ABORT instead of ABRT). Was fortunately
- harmless.
- - Negotiate SYNC data transfers with CCS devices.
- Sat Jan 16 17:30 1999 Gerard Roudier (groudier@club-internet.fr)
- * revision 3.1f
- - Some PCI fix-ups not needed any more for PPC (from Cort).
- - Cache line size set to 16 DWORDS for Sparc (from DSM).
- - Waiting list look-up didn't work for the first command of the list.
- - Remove 2 useless lines of code.
- 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 useful
- for printing the right name of the controller.
- - DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15).
- - Add additional 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 useful 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 useful.
- - 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 useful.
- 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
- additional 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 accommodate 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).
|