11da177e4SLinus TorvaldsSat May 12 12:00 2001 Gerard Roudier (groudier@club-internet.fr) 21da177e4SLinus Torvalds * version ncr53c8xx-3.4.3b 31da177e4SLinus Torvalds - Ensure LEDC bit in GPCNTL is cleared when reading the NVRAM. 41da177e4SLinus Torvalds Fix sent by Stig Telfer <stig@api-networks.com>. 51da177e4SLinus Torvalds - Define scsi_set_pci_device() as nil for kernel < 2.4.4. 61da177e4SLinus Torvalds 71da177e4SLinus TorvaldsMon Feb 12 22:30 2001 Gerard Roudier (groudier@club-internet.fr) 81da177e4SLinus Torvalds * version ncr53c8xx-3.4.3 91da177e4SLinus Torvalds - Call pci_enable_device() as AC wants this to be done. 101da177e4SLinus Torvalds - Get both the BAR cookies actual and PCI BAR values. 111da177e4SLinus Torvalds (see Changelog.sym53c8xx rev. 1.7.3 for details) 121da177e4SLinus Torvalds - Merge changes for linux-2.4 that declare the host template 131da177e4SLinus Torvalds in the driver object also when the driver is statically 141da177e4SLinus Torvalds linked with the kernel. 151da177e4SLinus Torvalds 161da177e4SLinus TorvaldsSun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) 171da177e4SLinus Torvalds * version ncr53c8xx-3.4.2 181da177e4SLinus Torvalds - See Changelog.sym53c8xx, driver version 1.7.2. 191da177e4SLinus Torvalds 201da177e4SLinus TorvaldsWed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) 211da177e4SLinus Torvalds * version ncr53c8xx-3.4.1 228b5b8f4cSNick Andrew - Provide OpenFirmware path through the proc FS on PPC. 231da177e4SLinus Torvalds - Remove trailing argument #2 from a couple of #undefs. 241da177e4SLinus Torvalds 251da177e4SLinus TorvaldsSun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) 261da177e4SLinus Torvalds * version ncr53c8xx-3.4.0 271da177e4SLinus Torvalds - Remove the PROFILE C and SCRIPTS code. 281da177e4SLinus Torvalds This facility was not this useful and thus was not longer 291da177e4SLinus Torvalds desirable given the increasing complexity of the driver code. 301da177e4SLinus Torvalds - Merges from FreeBSD sym-1.6.2 driver: 311da177e4SLinus Torvalds * Clarify memory barriers needed by the driver for architectures 321da177e4SLinus Torvalds that implement a weak memory ordering. 331da177e4SLinus Torvalds - General cleanup: 341da177e4SLinus Torvalds Move definitions for barriers and IO/MMIO operations to the 351da177e4SLinus Torvalds sym53c8xx_defs.h header files. They are now shared by the 361da177e4SLinus Torvalds both drivers. 371da177e4SLinus Torvalds Use SCSI_NCR_IOMAPPED instead of NCR_IOMAPPED. 381da177e4SLinus Torvalds 391da177e4SLinus TorvaldsThu May 11 12:30 2000 Pam Delaney (pam.delaney@lsil.com) 401da177e4SLinus Torvalds * revision 3.3b 411da177e4SLinus Torvalds 421da177e4SLinus TorvaldsMon Apr 24 12:00 2000 Gerard Roudier (groudier@club-internet.fr) 431da177e4SLinus Torvalds * revision 3.2i 441da177e4SLinus Torvalds - Return value 1 (instead of 0) from the driver setup routine. 451da177e4SLinus Torvalds - Let the driver also attach controllers that have been set to 461da177e4SLinus Torvalds OFF in the NVRAM as it did prior to revision 3.2g. 471da177e4SLinus Torvalds 481da177e4SLinus TorvaldsSat Apr 1 12:00 2000 Gerard Roudier (groudier@club-internet.fr) 491da177e4SLinus Torvalds * revision 3.2h 501da177e4SLinus Torvalds - Fix a compilation problem on Alpha introduced in version 3.2g. 511da177e4SLinus Torvalds (`port' changed to `base_io'). 521da177e4SLinus Torvalds - Move from `sym' to this driver a tiny change for __sparc__ that 531da177e4SLinus Torvalds applies to cache line size (? Probably from David S Miller). 541da177e4SLinus Torvalds - Make sure no data transfer will happen for Scsi_Cmnd requests 551da177e4SLinus Torvalds that supply SCSI_DATA_NONE direction (this avoids some BUG() 561da177e4SLinus Torvalds statement in the PCI code when a data buffer is also supplied). 571da177e4SLinus Torvalds 581da177e4SLinus TorvaldsThu Mar 16 9:30 2000 Pam Delaney (pam.delaney@lsil.com) 591da177e4SLinus Torvalds * revision 3.3b-3 601da177e4SLinus Torvalds - Added exclusion for the 53C1010 and 53C1010_66 chips 611da177e4SLinus Torvalds to the driver (change to sym53c8xx_comm.h). 621da177e4SLinus Torvalds 631da177e4SLinus TorvaldsMon March 6 23:15 2000 Gerard Roudier (groudier@club-internet.fr) 641da177e4SLinus Torvalds * revision 3.2g 651da177e4SLinus Torvalds - Add the file sym53c8xx_comm.h that collects code that should 661da177e4SLinus Torvalds be shared by sym53c8xx and ncr53c8xx drivers. For now, it is 671da177e4SLinus Torvalds a header file that is only included by the ncr53c8xx driver, 681da177e4SLinus Torvalds but things will be cleaned up later. This code addresses 691da177e4SLinus Torvalds notably: 701da177e4SLinus Torvalds * Chip detection and PCI related initialisations 711da177e4SLinus Torvalds * NVRAM detection and reading 721da177e4SLinus Torvalds * DMA mapping 731da177e4SLinus Torvalds * Boot setup command 741da177e4SLinus Torvalds * And some other ... 751da177e4SLinus Torvalds - Add support for the new dynamic dma mapping kernel interface. 761da177e4SLinus Torvalds Requires Linux-2.3.47 (tested with pre-2.3.47-6). 771da177e4SLinus Torvalds - Get data transfer direction from the scsi command structure 781da177e4SLinus Torvalds (Scsi_Cmnd) when this information is available. 791da177e4SLinus Torvalds 801da177e4SLinus TorvaldsMon March 6 23:15 2000 Gerard Roudier (groudier@club-internet.fr) 811da177e4SLinus Torvalds * revision 3.2g 821da177e4SLinus Torvalds - Add the file sym53c8xx_comm.h that collects code that should 831da177e4SLinus Torvalds be shared by sym53c8xx and ncr53c8xx drivers. For now, it is 841da177e4SLinus Torvalds a header file that is only included by the ncr53c8xx driver, 851da177e4SLinus Torvalds but things will be cleaned up later. This code addresses 861da177e4SLinus Torvalds notably: 871da177e4SLinus Torvalds * Chip detection and PCI related initialisations 881da177e4SLinus Torvalds * NVRAM detection and reading 891da177e4SLinus Torvalds * DMA mapping 901da177e4SLinus Torvalds * Boot setup command 911da177e4SLinus Torvalds * And some other ... 921da177e4SLinus Torvalds - Add support for the new dynamic dma mapping kernel interface. 931da177e4SLinus Torvalds Requires Linux-2.3.47 (tested with pre-2.3.47-6). 941da177e4SLinus Torvalds - Get data transfer direction from the scsi command structure 951da177e4SLinus Torvalds (Scsi_Cmnd) when this information is available. 961da177e4SLinus Torvalds 971da177e4SLinus TorvaldsFri Jan 14 14:00 2000 Pam Delaney (pam.delaney@lsil.com) 981da177e4SLinus Torvalds * revision pre-3.3b-1 991da177e4SLinus Torvalds - Merge parallel driver series 3.31 and 3.2e 1001da177e4SLinus Torvalds 1011da177e4SLinus TorvaldsTue Jan 11 14:00 2000 Pam Delaney (pam.delaney@lsil.com) 1021da177e4SLinus Torvalds * revision 3.31 1031da177e4SLinus Torvalds - Added support for mounting disks on wide-narrow-wide 1041da177e4SLinus Torvalds scsi configurations. 1051da177e4SLinus Torvalds - Built off of version 3.30 1061da177e4SLinus Torvalds 1071da177e4SLinus TorvaldsMon Jan 10 13:30 2000 Pam Delaney (pam.delaney@lsil.com) 1081da177e4SLinus Torvalds * revision 3.30 1091da177e4SLinus Torvalds - Added capability to use the integrity checking code 1101da177e4SLinus Torvalds in the kernel (optional). 1111da177e4SLinus Torvalds - Disabled support for the 53C1010. 1121da177e4SLinus Torvalds - Built off of version 3.2c 1131da177e4SLinus Torvalds 1141da177e4SLinus TorvaldsSat Jan 8 22:00 2000 Gerard Roudier (groudier@club-internet.fr) 1151da177e4SLinus Torvalds * revision 3.2e 1161da177e4SLinus Torvalds - Add year 2000 copyright. 1171da177e4SLinus Torvalds - Display correctly bus signals when bus is detected wrong. 1181da177e4SLinus Torvalds - Remove the dead code that broke driver 3.2d. 1191da177e4SLinus Torvalds 1201da177e4SLinus TorvaldsMon Dec 6 22:00 1999 Gerard Roudier (groudier@club-internet.fr) 1211da177e4SLinus Torvalds * revision 3.2d 1221da177e4SLinus Torvalds - Change messages written by the driver at initialisation and 1231da177e4SLinus Torvalds through the /proc FS (rather cosmetic changes that consist in 1241da177e4SLinus Torvalds printing out the PCI bus number and device/function). 1251da177e4SLinus Torvalds - Get rid of the old PCI bios interface, but preserve kernel 2.0 1261da177e4SLinus Torvalds compatibility from a simple wrapper. 1271da177e4SLinus Torvalds - Remove the compilation condition about having to acquire the 1281da177e4SLinus Torvalds io_request_lock since it seems to be a definite feature now.:) 1291da177e4SLinus Torvalds - proc_dir structure no longer needed for kernel >= 2.3.27. 1301da177e4SLinus Torvalds - Change the driver detection code by the sym53c8xx one, modulo 1311da177e4SLinus Torvalds some minor changes. The driver can now attach any number of 1321da177e4SLinus Torvalds controllers (>40) and does no longer hoger stack space at 1331da177e4SLinus Torvalds initialisation. 1341da177e4SLinus Torvalds - Definitely disable overlapped PCI arbitration for all dual 1351da177e4SLinus Torvalds function chips, since I cannot make sure for what chip revisions 1361da177e4SLinus Torvalds it is actually safe. 1371da177e4SLinus Torvalds - Add support for the SYM53C1510D. 1381da177e4SLinus Torvalds - Update the poor Tekram sync factor table. 1391da177e4SLinus Torvalds - Remove the compilation condition about having to acquire the 1401da177e4SLinus Torvalds io_request_lock since it seems to be a definite feature now.:) 1411da177e4SLinus Torvalds - proc_dir structure no longer needed for kernel >= 2.3.27. 1421da177e4SLinus Torvalds 1431da177e4SLinus TorvaldsSat Sep 11 18:00 1999 Gerard Roudier (groudier@club-internet.fr) 1441da177e4SLinus Torvalds * revision 3.2c 1451da177e4SLinus Torvalds - Handle correctly (hopefully) jiffies wrap-around. 1461da177e4SLinus Torvalds - Restore the entry used to detect 875 until revision 0xff. 1471da177e4SLinus Torvalds (I removed it inadvertently, it seems :) ) 1481da177e4SLinus Torvalds - Replace __initfunc() which is deprecated stuff by __init which 1491da177e4SLinus Torvalds is not yet so. ;-) 1501da177e4SLinus Torvalds - Add support of some 'resource handling' for linux-2.3.13. 1511da177e4SLinus Torvalds Basically the BARs have been changed to something more complex 1521da177e4SLinus Torvalds in the pci_dev structure. 1531da177e4SLinus Torvalds - Remove some deprecated code. 1541da177e4SLinus Torvalds 1551da177e4SLinus TorvaldsSat May 10 11:00 1999 Gerard Roudier (groudier@club-internet.fr) 1561da177e4SLinus Torvalds * revision pre-3.2b-1 1571da177e4SLinus Torvalds - Support for the 53C895A by Pamela Delaney <pam.delaney@lsil.com> 1581da177e4SLinus Torvalds The 53C895A contains all of the features of the 896 but has only 1591da177e4SLinus Torvalds one channel and has a 32 bit PCI bus. It does 64 bit PCI addressing 1601da177e4SLinus Torvalds using dual cycle PCI data transfers. 1611da177e4SLinus Torvalds - Miscellaneous minor fixes. 1621da177e4SLinus Torvalds - Some additions to the README.ncr53c8xx file. 1631da177e4SLinus Torvalds 1641da177e4SLinus TorvaldsSun Apr 11 10:00 1999 Gerard Roudier (groudier@club-internet.fr) 1651da177e4SLinus Torvalds * revision 3.2a 1661da177e4SLinus Torvalds - Add 'hostid:#id' boot option. This option allows to change the 1671da177e4SLinus Torvalds default SCSI id the driver uses for controllers. 1681da177e4SLinus Torvalds - Remove nvram layouts and driver set-up structures from the C source, 1691da177e4SLinus Torvalds and use the one defined in sym53c8xx_defs.h file. 1701da177e4SLinus Torvalds (shared by both drivers). 1711da177e4SLinus Torvalds - Set for now MAX LUNS to 16 (instead of 8). 1721da177e4SLinus Torvalds 1731da177e4SLinus TorvaldsThu Mar 11 23:00 1999 Gerard Roudier (groudier@club-internet.fr) 1741da177e4SLinus Torvalds * revision 3.2 (8xx-896 driver bundle) 1751da177e4SLinus Torvalds - Only define the host template in ncr53c8xx.h and include the 1761da177e4SLinus Torvalds sym53c8xx_defs.h file. 1771da177e4SLinus Torvalds - Declare static all symbols that do not need to be visible from 1781da177e4SLinus Torvalds outside the driver code. 1791da177e4SLinus Torvalds - Add 'excl' boot command option that allows to pass to the driver 1801da177e4SLinus Torvalds io address of devices not to attach. 1811da177e4SLinus Torvalds - Add info() function called from the host template to print 1821da177e4SLinus Torvalds driver/host information. 1831da177e4SLinus Torvalds - Minor documentation additions. 1841da177e4SLinus Torvalds 1851da177e4SLinus TorvaldsSat Mar 6 11:00 1999 Gerard Roudier (groudier@club-internet.fr) 1861da177e4SLinus Torvalds * revision 3.1h 1871da177e4SLinus Torvalds - Fix some oooold bug that hangs the bus if a device rejects a 1881da177e4SLinus Torvalds negotiation. Btw, the corresponding stuff also needed some cleanup 1891da177e4SLinus Torvalds and thus the change is a bit larger than it could have been. 1901da177e4SLinus Torvalds - Still some typo that made compilation fail for 64 bit (trivial fix). 1911da177e4SLinus Torvalds 1921da177e4SLinus TorvaldsSun Feb 14:00 1999 Gerard Roudier (groudier@club-internet.fr) 1931da177e4SLinus Torvalds * revision 3.1g 1941da177e4SLinus Torvalds - Deal correctly with 64 bit PCI address registers on Linux 2.2. 1951da177e4SLinus Torvalds Pointed out by Leonard Zubkoff. 1961da177e4SLinus Torvalds - Allow to tune request_irq() flags from the boot command line using 1971da177e4SLinus Torvalds ncr53c8xx=irqm:??, as follows: 19838d090b0SAhmed S. Darwish a) If bit 0x10 is set in irqm, IRQF_SHARED flag is not used. 19938d090b0SAhmed S. Darwish b) If bit 0x20 is set in irqm, IRQF_DISABLED flag is not used. 20038d090b0SAhmed S. Darwish By default the driver uses both IRQF_SHARED and IRQF_DISABLED. 2011da177e4SLinus Torvalds Option 'ncr53c8xx=irqm:0x20' may be used when an IRQ is shared by 2021da177e4SLinus Torvalds a 53C8XX adapter and a network board. 20325985edcSLucas De Marchi - Tiny misspelling fixed (ABORT instead of ABRT). Was fortunately 2041da177e4SLinus Torvalds harmless. 2051da177e4SLinus Torvalds - Negotiate SYNC data transfers with CCS devices. 2061da177e4SLinus Torvalds 2071da177e4SLinus TorvaldsSat Jan 16 17:30 1999 Gerard Roudier (groudier@club-internet.fr) 2081da177e4SLinus Torvalds * revision 3.1f 2091da177e4SLinus Torvalds - Some PCI fix-ups not needed any more for PPC (from Cort). 2101da177e4SLinus Torvalds - Cache line size set to 16 DWORDS for Sparc (from DSM). 2111da177e4SLinus Torvalds - Waiting list look-up didn't work for the first command of the list. 2121da177e4SLinus Torvalds - Remove 2 useless lines of code. 2131da177e4SLinus Torvalds 2141da177e4SLinus TorvaldsSun Dec 13 18:00 1998 Gerard Roudier (groudier@club-internet.fr) 2151da177e4SLinus Torvalds * revision 3.1e 2161da177e4SLinus Torvalds - Same work-around as for the 53c876 rev <= 0x15 for 53c896 rev 1: 2171da177e4SLinus Torvalds Disable overlapped arbitration. This will not make difference 2181da177e4SLinus Torvalds since the chip has on-chip RAM. 2191da177e4SLinus Torvalds 2201da177e4SLinus TorvaldsThu Nov 26 22:00 1998 Gerard Roudier (groudier@club-internet.fr) 2211da177e4SLinus Torvalds * revision 3.1d 2221da177e4SLinus Torvalds - The SISL RAID change requires now remap_pci_mem() stuff to be 2231da177e4SLinus Torvalds compiled for __i386__ when normal IOs are used. 2241da177e4SLinus Torvalds - Minor spelling fixes in doc files. 2251da177e4SLinus Torvalds 2261da177e4SLinus TorvaldsSat Nov 21 18:00 1998 Gerard Roudier (groudier@club-internet.fr) 2271da177e4SLinus Torvalds * revision 3.1c 2281da177e4SLinus Torvalds - Ignore chips that are driven by SISL RAID (DAC 960). 2291da177e4SLinus Torvalds Change sent by Leonard Zubkoff and slightly reworked. 2301da177e4SLinus Torvalds - Still a buglet in the tags initial settings that needed to be fixed. 2311da177e4SLinus Torvalds It was not possible to disable TGQ at system startup for devices 2321da177e4SLinus Torvalds that claim TGQ support. The driver used at least 2 for the queue 233*685d5ef4SRandy Dunlap depth but didn't keep track of user settings for tags depth lower 2341da177e4SLinus Torvalds than 2. 2351da177e4SLinus Torvalds 2361da177e4SLinus TorvaldsWed Nov 11 10:00 1998 Gerard Roudier (groudier@club-internet.fr) 2371da177e4SLinus Torvalds * revision 3.1b 2381da177e4SLinus Torvalds - The driver was unhappy when configured with default_tags > MAX_TAGS 2391da177e4SLinus Torvalds Hopefully doubly-fixed. 2401da177e4SLinus Torvalds - Update the Configure.help driver section that speaks of TAGS. 2411da177e4SLinus Torvalds 2421da177e4SLinus TorvaldsWed Oct 21 21:00 1998 Gerard Roudier (groudier@club-internet.fr) 2431da177e4SLinus Torvalds * revision 3.1a 2441da177e4SLinus Torvalds - Changes from Eddie Dost for Sparc and Alpha: 2451da177e4SLinus Torvalds ioremap/iounmap support for Sparc. 2461da177e4SLinus Torvalds pcivtophys changed to bus_dvma_to_phys. 2471da177e4SLinus Torvalds - Add the 53c876 description to the chip table. This is only useful 2481da177e4SLinus Torvalds for printing the right name of the controller. 2491da177e4SLinus Torvalds - DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15). 2501da177e4SLinus Torvalds - Add additional checking of INQUIRY data: 2511da177e4SLinus Torvalds Check INQUIRY data received length is at least 7. Byte 7 of 2521da177e4SLinus Torvalds inquiry data contains device features bits and the driver might 2531da177e4SLinus Torvalds be confused by garbage. Also check peripheral qualifier. 2541da177e4SLinus Torvalds - Cleanup of the SCSI tasks management: 2551da177e4SLinus Torvalds Remove the special case for 32 tags. Now the driver only uses the 2561da177e4SLinus Torvalds scheme that allows up to 64 tags per LUN. 2571da177e4SLinus Torvalds Merge some code from the 896 driver. 2581da177e4SLinus Torvalds Use a 1,3,5,...MAXTAGS*2+1 tag numbering. Previous driver could 2591da177e4SLinus Torvalds use any tag number from 1 to 253 and some non conformant devices 2601da177e4SLinus Torvalds might have problems with large tag numbers. 2611da177e4SLinus Torvalds - 'no_sync' changed to 'no_disc' in the README file. This is an old 2621da177e4SLinus Torvalds and trivial mistake that seems to demonstrate the README file is 2631da177e4SLinus Torvalds not often read. :) 2641da177e4SLinus Torvalds 2651da177e4SLinus TorvaldsSun Oct 4 14:00 1998 Gerard Roudier (groudier@club-internet.fr) 2661da177e4SLinus Torvalds * revision 3.0i 2671da177e4SLinus Torvalds - Cosmetic changes for sparc (but not for the driver) that needs 2681da177e4SLinus Torvalds __irq_itoa() to be used for printed IRQ value to be understandable. 2691da177e4SLinus Torvalds - Some problems with the driver that didn't occur using driver 2.5f 2701da177e4SLinus Torvalds were due to a SCSI selection problem triggered by a clearly 2711da177e4SLinus Torvalds documented feature that in fact seems not to work: (53C8XX chips 2721da177e4SLinus Torvalds are claimed by the manuals to be able to execute SCSI scripts just 273*685d5ef4SRandy Dunlap after arbitration while the SCSI core is performing SCSI selection). 2741da177e4SLinus Torvalds This optimization is broken and has been removed. 2751da177e4SLinus Torvalds - Some broken scsi devices are confused when a negotiation is started 2761da177e4SLinus Torvalds on a LUN that does not correspond to a real device. According to 2771da177e4SLinus Torvalds SCSI specs, this is a device firmware bug. This has been worked 2781da177e4SLinus Torvalds around by only starting negotiation if the LUN has previously be 2791da177e4SLinus Torvalds used for at least 1 successful SCSI command. 2801da177e4SLinus Torvalds - The 'last message sent' printed out on M_REJECT message reception 2811da177e4SLinus Torvalds was read from the SFBR i/o register after the previous message had 2821da177e4SLinus Torvalds been sent. 2831da177e4SLinus Torvalds This was not correct and affects all previous driver versions and 2841da177e4SLinus Torvalds the original FreeBSD one as well. The SCSI scripts has been fixed 2851da177e4SLinus Torvalds so that it now provides the right information to the C code. 2861da177e4SLinus Torvalds 2871da177e4SLinus TorvaldsSat Jul 18 13:00 1998 Gerard Roudier (groudier@club-internet.fr) 2881da177e4SLinus Torvalds * revision 3.0g 2891da177e4SLinus Torvalds - Preliminary fixes for Big Endian (sent by Eddie C. Dost). 2901da177e4SLinus Torvalds Big Endian architectures should work again with the driver. 2911da177e4SLinus Torvalds Eddie's patch has been partially applied since current 2.1.109 2921da177e4SLinus Torvalds does not have all the Sparc changes of the vger tree. 2931da177e4SLinus Torvalds - Use of BITS_PER_LONG instead of (~0UL == 0xffffffffUL) has fixed 2941da177e4SLinus Torvalds the problem observed when the driver was compiled using EGCS or 2951da177e4SLinus Torvalds PGCC. 2961da177e4SLinus Torvalds 2971da177e4SLinus TorvaldsMon Jul 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr) 2981da177e4SLinus Torvalds * revision 3.0f 2991da177e4SLinus Torvalds - Some spelling fixes. 3001da177e4SLinus Torvalds - linux/config.h misplaced in ncr53c8xx.h 3011da177e4SLinus Torvalds - MODULE_PARM stuff added for linux 2.1. 3021da177e4SLinus Torvalds - check INQUIRY response data format is exactly 2. 3031da177e4SLinus Torvalds - use BITS_PER_LONG if defined. 3041da177e4SLinus Torvalds 3051da177e4SLinus TorvaldsSun Jun 28 12:00 1998 Gerard Roudier (groudier@club-internet.fr) 3061da177e4SLinus Torvalds * revision 3.0e 3071da177e4SLinus Torvalds - Some cleanup, spelling fixes, version checks, documentations 3081da177e4SLinus Torvalds changes, etc ... 3091da177e4SLinus Torvalds 3101da177e4SLinus TorvaldsSat Jun 20 20:00 1998 Gerard Roudier (groudier@club-internet.fr) 3111da177e4SLinus Torvalds * revision 3.0c 3121da177e4SLinus Torvalds - Add a boot setup option that allows to set up device queue depths 3131da177e4SLinus Torvalds at boot-up. This option is very useful since Linux does not 3141da177e4SLinus Torvalds allow to change scsi device queue depth once the system has been 3151da177e4SLinus Torvalds booted up. 3161da177e4SLinus Torvalds 3171da177e4SLinus TorvaldsSun Jun 15 23:00 1998 Gerard Roudier (groudier@club-internet.fr) 3181da177e4SLinus Torvalds * revision 3.0a 3191da177e4SLinus Torvalds - Support for up to 64 TAGS per LUN. 3201da177e4SLinus Torvalds - Rewrite the TARGET vs LUN capabilities management. 3211da177e4SLinus Torvalds CmdQueue is now handled as a LUN capability as it shall be. 3221da177e4SLinus Torvalds This also fixes a bug triggered when disabling tagged command 3231da177e4SLinus Torvalds queuing for a device that had this feature enabled. 3241da177e4SLinus Torvalds - Remove the ncr_opennings() stuff that was useless under Linux 3251da177e4SLinus Torvalds and hard to understand to me. 3261da177e4SLinus Torvalds - Add "setverbose" procfs driver command. It allows to tune 3271da177e4SLinus Torvalds verbose level after boot-up. Setting this level to zero, for 3281da177e4SLinus Torvalds example avoid flooding the syslog file. 3291da177e4SLinus Torvalds - Add KERN_XXX to some printk's. 3301da177e4SLinus Torvalds 3311da177e4SLinus TorvaldsTue Jun 10 23:00 1998 Gerard Roudier (groudier@club-internet.fr) 3321da177e4SLinus Torvalds * revision 3.0 3331da177e4SLinus Torvalds - Linux config changes for 2.0.34: 3341da177e4SLinus Torvalds Remove NVRAM detection config option. This option is now enabled 3351da177e4SLinus Torvalds by default but can be disabled by editing the driver header file. 3361da177e4SLinus Torvalds Add a PROFILE config option. 3371da177e4SLinus Torvalds - Update Configure.help 3381da177e4SLinus Torvalds - Add calls to new function mdelay() for milli-seconds delay if 3391da177e4SLinus Torvalds kernel version >= 2.1.105. 3401da177e4SLinus Torvalds - Replace all printf(s) by printk(s). After all, the ncr53c8xx is 3411da177e4SLinus Torvalds a driver for Linux. 3421da177e4SLinus Torvalds - Perform auto-sense on COMMAND TERMINATED. Not sure it is useful. 3431da177e4SLinus Torvalds - Some other minor changes. 3441da177e4SLinus Torvalds 3451da177e4SLinus TorvaldsTue Jun 4 23:00 1998 Gerard Roudier (groudier@club-internet.fr) 3461da177e4SLinus Torvalds * revision 2.6n 3471da177e4SLinus Torvalds - Code cleanup and simplification: 3481da177e4SLinus Torvalds Remove kernel 1.2.X and 1.3.X support. 3491da177e4SLinus Torvalds Remove the _old_ target capabilities table. 350*685d5ef4SRandy Dunlap Remove the error recovery code that hasn't been really useful. 3511da177e4SLinus Torvalds Use a single alignment boundary (CACHE_LINE_SIZE) for data 3521da177e4SLinus Torvalds structures. 3531da177e4SLinus Torvalds - Several aggressive SCRIPTS optimizations and changes: 3541da177e4SLinus Torvalds Reselect SCRIPTS code rewritten. 3551da177e4SLinus Torvalds Support for selection/reselection without ATN. 3561da177e4SLinus Torvalds And some others. 3571da177e4SLinus Torvalds - Miscallaneous changes in the C code: 3581da177e4SLinus Torvalds Count actual number of CCB queued to the controller (future use). 3591da177e4SLinus Torvalds Lots of other minor changes. 3601da177e4SLinus Torvalds 3611da177e4SLinus TorvaldsWed May 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr) 3621da177e4SLinus Torvalds * revision 2.6m 3631da177e4SLinus Torvalds - Problem of missed SCSI bus reset with the 53C895 fixed by 3641da177e4SLinus Torvalds Richard Waltham. The 53C895 needs about 650 us for the bus 3651da177e4SLinus Torvalds mode to settle. Delays used while resetting the controller 3661da177e4SLinus Torvalds and the bus have been adjusted. Thanks Richard! 3671da177e4SLinus Torvalds - Some simplification for 64 bit arch done ccb address testing. 3681da177e4SLinus Torvalds - Add a check of the MSG_OUT phase after Selection with ATN. 3691da177e4SLinus Torvalds - The new tagged queue stuff seems ok, so some informationnal 370*685d5ef4SRandy Dunlap message have been conditioned by verbose >= 3. 371*685d5ef4SRandy Dunlap - Do not reset if a SBMC interrupt reports the same bus mode. 3721da177e4SLinus Torvalds - Print out the whole driver set-up. Some options were missing and 3731da177e4SLinus Torvalds the print statement was misplaced for modules. 3741da177e4SLinus Torvalds - Ignore a SCSI parity interrupt if the chip is not connected to 3751da177e4SLinus Torvalds the SCSI bus. 3761da177e4SLinus Torvalds 3771da177e4SLinus TorvaldsSat May 1 16:00 1998 Gerard Roudier (groudier@club-internet.fr) 3781da177e4SLinus Torvalds * revision 2.6l 3791da177e4SLinus Torvalds - Add CCB done queue support for Alpha and perhaps some other 3801da177e4SLinus Torvalds architectures. 3811da177e4SLinus Torvalds - Add some barriers to enforce memory ordering for x86 and 3821da177e4SLinus Torvalds Alpha architectures. 3831da177e4SLinus Torvalds - Fix something that looks like an old bug in the nego SIR 3841da177e4SLinus Torvalds interrupt code in case of negotiation failure. 3851da177e4SLinus Torvalds 3861da177e4SLinus TorvaldsSat Apr 25 21:00 1998 Gerard Roudier (groudier@club-internet.fr) 3871da177e4SLinus Torvalds * revision 2.6k 3881da177e4SLinus Torvalds - Remove all accesses to the on-chip RAM from the C code: 3891da177e4SLinus Torvalds Use SCRIPTS to load the on-chip RAM. 3901da177e4SLinus Torvalds Use SCRIPTS to repair the start queue on selection timeout. 3911da177e4SLinus Torvalds Use the copy of script in main memory to calculate the chip 3921da177e4SLinus Torvalds context on phase mismatch. 3931da177e4SLinus Torvalds - The above allows now to use the on-chip RAM without requiring 3941da177e4SLinus Torvalds to get access to the on-chip RAM from the C code. This makes 395*685d5ef4SRandy Dunlap on-chip RAM usable for linux-1.2.13 and for Linux-Alpha for 3961da177e4SLinus Torvalds instance. 3971da177e4SLinus Torvalds - Some simplifications and cleanups in the SCRIPTS and C code. 3981da177e4SLinus Torvalds - Buglet fixed in parity error recovery SCRIPTS (never tested). 3991da177e4SLinus Torvalds - Minor updates in README.ncr53c8xx. 4001da177e4SLinus Torvalds 4011da177e4SLinus TorvaldsWed Apr 15 21:00 1998 Gerard Roudier (groudier@club-internet.fr) 4021da177e4SLinus Torvalds * revision 2.6j 4031da177e4SLinus Torvalds - Incorporate changes from linux-2.1.95 ncr53c8xx driver version. 4041da177e4SLinus Torvalds - Add SMP support for linux-2.1.95 and above. 4051da177e4SLinus Torvalds - Fix a bug when QUEUE FULL is returned and no commands are 4061da177e4SLinus Torvalds disconnected. This happens with Atlas I / L912 and may happen 4071da177e4SLinus Torvalds with Atlas II / LXY4. 4081da177e4SLinus Torvalds - Nail another one on CHECK condition when requeuing the command 4091da177e4SLinus Torvalds for auto-sense. 4101da177e4SLinus Torvalds - Call scsi_done() for all completed commands after interrupt 4111da177e4SLinus Torvalds handling. 4121da177e4SLinus Torvalds - Increase the done queue to 24 entries. 4131da177e4SLinus Torvalds 4141da177e4SLinus TorvaldsSat Apr 4 20:00 1998 Gerard Roudier (groudier@club-internet.fr) 4151da177e4SLinus Torvalds * revision 2.6i 4161da177e4SLinus Torvalds - CTEST0 is used by the 53C885 for Power Management and 4171da177e4SLinus Torvalds priority setting between the 2 functions. 4181da177e4SLinus Torvalds Use SDID instead as actual target number. Just have had to 4191da177e4SLinus Torvalds overwrite it with SSID on reselection. 4201da177e4SLinus Torvalds - Split DATA_IN and DATA_OUT scripts into 2 sub-scripts. 4211da177e4SLinus Torvalds 64 segments are moved from on-chip RAM scripts. 4221da177e4SLinus Torvalds If more segments, a script in main memory is used for the 4231da177e4SLinus Torvalds additional segments. 4241da177e4SLinus Torvalds - Since the SCRIPTS processor continues SCRIPTS execution after 4251da177e4SLinus Torvalds having won arbitration, do some stuff prior to testing any SCSI 4261da177e4SLinus Torvalds phase on reselection. This should have the vertue to process 4271da177e4SLinus Torvalds scripts in parallel with the SCSI core performing selection. 4281da177e4SLinus Torvalds - Increase the done queue to 12 entries. 4291da177e4SLinus Torvalds 4301da177e4SLinus TorvaldsSun Mar 29 12:00 1998 Gerard Roudier (groudier@club-internet.fr) 4311da177e4SLinus Torvalds * revision 2.6h 4321da177e4SLinus Torvalds - Some fixes. 4331da177e4SLinus Torvalds 4341da177e4SLinus TorvaldsTue Mar 26 23:00 1998 Gerard Roudier (groudier@club-internet.fr) 4351da177e4SLinus Torvalds * revision 2.6g 436*685d5ef4SRandy Dunlap - New done queue. 8 entries by default (6 always usable). 4371da177e4SLinus Torvalds Can be increased if needed. 4381da177e4SLinus Torvalds - Resources management using doubly linked queues. 4391da177e4SLinus Torvalds - New auto-sense and QUEUE FULL handling that does not need to 4401da177e4SLinus Torvalds stall the NCR queue any more. 4411da177e4SLinus Torvalds - New CCB starvation avoiding algorithm. 4421da177e4SLinus Torvalds - Prepare CCBs for SCSI commands that cannot be queued, instead of 4431da177e4SLinus Torvalds inserting these commands into the waiting list. The waiting list 4441da177e4SLinus Torvalds is now only used while resetting and when memory for CCBs is not 4451da177e4SLinus Torvalds yet available? 4461da177e4SLinus Torvalds 4471da177e4SLinus TorvaldsSun Feb 8 22:00 1998 Gerard Roudier (groudier@club-internet.fr) 4481da177e4SLinus Torvalds * revision 2.6f 4491da177e4SLinus Torvalds - Some fixes in order to really support the 53C895, at least with 4501da177e4SLinus Torvalds FAST-20 devices. 4511da177e4SLinus Torvalds - Heavy changes in the target/lun resources management to allow 4521da177e4SLinus Torvalds the scripts to jump directly to the CCB on reselection instead 4531da177e4SLinus Torvalds of walking on the lun CCBs list. Up to 32 tags per lun are now 4541da177e4SLinus Torvalds supported without script processor and PCI traffic overhead. 4551da177e4SLinus Torvalds 4561da177e4SLinus TorvaldsSun Jan 11 22:00 1998 Gerard Roudier (groudier@club-internet.fr) 4571da177e4SLinus Torvalds * revision 2.6d 4581da177e4SLinus Torvalds - new (different ?) implementation of the start queue: 4591da177e4SLinus Torvalds Use a simple CALL to a launch script in the CCB. 4601da177e4SLinus Torvalds - implement a minimal done queue (1 entry :-) ). 4611da177e4SLinus Torvalds this avoid scanning all CCBs on INT FLY (Only scan all CCBs, on 4621da177e4SLinus Torvalds overflow). Hit ratio is better than 99.9 % on my system, so no 4631da177e4SLinus Torvalds need to have a larger done queue. 4641da177e4SLinus Torvalds - generalization of the restart of CCB on special condition as 4651da177e4SLinus Torvalds Abort, QUEUE FULL, CHECK CONDITION. 4661da177e4SLinus Torvalds This has been called 'silly scheduler'. 467*685d5ef4SRandy Dunlap - make all the profiling code conditioned by a config option. 4681da177e4SLinus Torvalds This spare some PCI traffic and C code when this feature is not 4691da177e4SLinus Torvalds needed. 4701da177e4SLinus Torvalds - handle more cleanly the situation where direction is unknown. 4711da177e4SLinus Torvalds The pointers patching is now performed by the SCRIPTS processor. 4721da177e4SLinus Torvalds - remove some useless scripts instructions. 4731da177e4SLinus Torvalds 4741da177e4SLinus Torvalds Ported from driver 2.5 series: 4751da177e4SLinus Torvalds ------------------------------ 4761da177e4SLinus Torvalds - Use FAST-5 instead of SLOW for slow scsi devices according to 4771da177e4SLinus Torvalds new SPI-2 draft. 4781da177e4SLinus Torvalds - Make some changes in order to accommodate with 875 rev <= 3 4791da177e4SLinus Torvalds device errata listing 397. Minor consequences are: 4801da177e4SLinus Torvalds . Leave use of PCI Write and Invalidate under user control. 4811da177e4SLinus Torvalds Now, by default the driver does not enable PCI MWI and option 4821da177e4SLinus Torvalds 'specf:y' is required in order to enable this feature. 4831da177e4SLinus Torvalds . Memory Read Line is not enabled for 875 and 875-like chips. 4841da177e4SLinus Torvalds . Programmed burst length set to 64 DWORDS (instead of 128). 4851da177e4SLinus Torvalds (Note: SYMBIOS uses 32 DWORDS for the SDMS BIOS) 4861da177e4SLinus Torvalds - Add 'buschk' boot option. 4871da177e4SLinus Torvalds This option enables checking of SCSI BUS data lines after SCSI 4881da177e4SLinus Torvalds RESET (set by default). (Submitted by Richard Waltham). 4891da177e4SLinus Torvalds - Update the README file. 4901da177e4SLinus Torvalds - Dispatch CONDITION MET and RESERVATION CONFLICT scsi status 4911da177e4SLinus Torvalds as OK driver status. 4921da177e4SLinus Torvalds - Update the README file and the Symbios NVRAM format definition 4931da177e4SLinus Torvalds with removable media flags values (available with SDMS 4.09). 4941da177e4SLinus Torvalds - Several PCI configuration registers fix-ups for powerpc. 4951da177e4SLinus Torvalds (Patch sent by Cort). 496