1*4882a593SmuzhiyunSat May 12 12:00 2001 Gerard Roudier (groudier@club-internet.fr) 2*4882a593Smuzhiyun * version ncr53c8xx-3.4.3b 3*4882a593Smuzhiyun - Ensure LEDC bit in GPCNTL is cleared when reading the NVRAM. 4*4882a593Smuzhiyun Fix sent by Stig Telfer <stig@api-networks.com>. 5*4882a593Smuzhiyun - Define scsi_set_pci_device() as nil for kernel < 2.4.4. 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunMon Feb 12 22:30 2001 Gerard Roudier (groudier@club-internet.fr) 8*4882a593Smuzhiyun * version ncr53c8xx-3.4.3 9*4882a593Smuzhiyun - Call pci_enable_device() as AC wants this to be done. 10*4882a593Smuzhiyun - Get both the BAR cookies actual and PCI BAR values. 11*4882a593Smuzhiyun (see Changelog.sym53c8xx rev. 1.7.3 for details) 12*4882a593Smuzhiyun - Merge changes for linux-2.4 that declare the host template 13*4882a593Smuzhiyun in the driver object also when the driver is statically 14*4882a593Smuzhiyun linked with the kernel. 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunSun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) 17*4882a593Smuzhiyun * version ncr53c8xx-3.4.2 18*4882a593Smuzhiyun - See Changelog.sym53c8xx, driver version 1.7.2. 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunWed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) 21*4882a593Smuzhiyun * version ncr53c8xx-3.4.1 22*4882a593Smuzhiyun - Provide OpenFirmware path through the proc FS on PPC. 23*4882a593Smuzhiyun - Remove trailing argument #2 from a couple of #undefs. 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunSun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) 26*4882a593Smuzhiyun * version ncr53c8xx-3.4.0 27*4882a593Smuzhiyun - Remove the PROFILE C and SCRIPTS code. 28*4882a593Smuzhiyun This facility was not this useful and thus was not longer 29*4882a593Smuzhiyun desirable given the increasing complexity of the driver code. 30*4882a593Smuzhiyun - Merges from FreeBSD sym-1.6.2 driver: 31*4882a593Smuzhiyun * Clarify memory barriers needed by the driver for architectures 32*4882a593Smuzhiyun that implement a weak memory ordering. 33*4882a593Smuzhiyun - General cleanup: 34*4882a593Smuzhiyun Move definitions for barriers and IO/MMIO operations to the 35*4882a593Smuzhiyun sym53c8xx_defs.h header files. They are now shared by the 36*4882a593Smuzhiyun both drivers. 37*4882a593Smuzhiyun Use SCSI_NCR_IOMAPPED instead of NCR_IOMAPPED. 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunThu May 11 12:30 2000 Pam Delaney (pam.delaney@lsil.com) 40*4882a593Smuzhiyun * revision 3.3b 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunMon Apr 24 12:00 2000 Gerard Roudier (groudier@club-internet.fr) 43*4882a593Smuzhiyun * revision 3.2i 44*4882a593Smuzhiyun - Return value 1 (instead of 0) from the driver setup routine. 45*4882a593Smuzhiyun - Let the driver also attach controllers that have been set to 46*4882a593Smuzhiyun OFF in the NVRAM as it did prior to revision 3.2g. 47*4882a593Smuzhiyun 48*4882a593SmuzhiyunSat Apr 1 12:00 2000 Gerard Roudier (groudier@club-internet.fr) 49*4882a593Smuzhiyun * revision 3.2h 50*4882a593Smuzhiyun - Fix a compilation problem on Alpha introduced in version 3.2g. 51*4882a593Smuzhiyun (`port' changed to `base_io'). 52*4882a593Smuzhiyun - Move from `sym' to this driver a tiny change for __sparc__ that 53*4882a593Smuzhiyun applies to cache line size (? Probably from David S Miller). 54*4882a593Smuzhiyun - Make sure no data transfer will happen for Scsi_Cmnd requests 55*4882a593Smuzhiyun that supply SCSI_DATA_NONE direction (this avoids some BUG() 56*4882a593Smuzhiyun statement in the PCI code when a data buffer is also supplied). 57*4882a593Smuzhiyun 58*4882a593SmuzhiyunThu Mar 16 9:30 2000 Pam Delaney (pam.delaney@lsil.com) 59*4882a593Smuzhiyun * revision 3.3b-3 60*4882a593Smuzhiyun - Added exclusion for the 53C1010 and 53C1010_66 chips 61*4882a593Smuzhiyun to the driver (change to sym53c8xx_comm.h). 62*4882a593Smuzhiyun 63*4882a593SmuzhiyunMon March 6 23:15 2000 Gerard Roudier (groudier@club-internet.fr) 64*4882a593Smuzhiyun * revision 3.2g 65*4882a593Smuzhiyun - Add the file sym53c8xx_comm.h that collects code that should 66*4882a593Smuzhiyun be shared by sym53c8xx and ncr53c8xx drivers. For now, it is 67*4882a593Smuzhiyun a header file that is only included by the ncr53c8xx driver, 68*4882a593Smuzhiyun but things will be cleaned up later. This code addresses 69*4882a593Smuzhiyun notably: 70*4882a593Smuzhiyun * Chip detection and PCI related initialisations 71*4882a593Smuzhiyun * NVRAM detection and reading 72*4882a593Smuzhiyun * DMA mapping 73*4882a593Smuzhiyun * Boot setup command 74*4882a593Smuzhiyun * And some other ... 75*4882a593Smuzhiyun - Add support for the new dynamic dma mapping kernel interface. 76*4882a593Smuzhiyun Requires Linux-2.3.47 (tested with pre-2.3.47-6). 77*4882a593Smuzhiyun - Get data transfer direction from the scsi command structure 78*4882a593Smuzhiyun (Scsi_Cmnd) when this information is available. 79*4882a593Smuzhiyun 80*4882a593SmuzhiyunMon March 6 23:15 2000 Gerard Roudier (groudier@club-internet.fr) 81*4882a593Smuzhiyun * revision 3.2g 82*4882a593Smuzhiyun - Add the file sym53c8xx_comm.h that collects code that should 83*4882a593Smuzhiyun be shared by sym53c8xx and ncr53c8xx drivers. For now, it is 84*4882a593Smuzhiyun a header file that is only included by the ncr53c8xx driver, 85*4882a593Smuzhiyun but things will be cleaned up later. This code addresses 86*4882a593Smuzhiyun notably: 87*4882a593Smuzhiyun * Chip detection and PCI related initialisations 88*4882a593Smuzhiyun * NVRAM detection and reading 89*4882a593Smuzhiyun * DMA mapping 90*4882a593Smuzhiyun * Boot setup command 91*4882a593Smuzhiyun * And some other ... 92*4882a593Smuzhiyun - Add support for the new dynamic dma mapping kernel interface. 93*4882a593Smuzhiyun Requires Linux-2.3.47 (tested with pre-2.3.47-6). 94*4882a593Smuzhiyun - Get data transfer direction from the scsi command structure 95*4882a593Smuzhiyun (Scsi_Cmnd) when this information is available. 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunFri Jan 14 14:00 2000 Pam Delaney (pam.delaney@lsil.com) 98*4882a593Smuzhiyun * revision pre-3.3b-1 99*4882a593Smuzhiyun - Merge parallel driver series 3.31 and 3.2e 100*4882a593Smuzhiyun 101*4882a593SmuzhiyunTue Jan 11 14:00 2000 Pam Delaney (pam.delaney@lsil.com) 102*4882a593Smuzhiyun * revision 3.31 103*4882a593Smuzhiyun - Added support for mounting disks on wide-narrow-wide 104*4882a593Smuzhiyun scsi configurations. 105*4882a593Smuzhiyun - Built off of version 3.30 106*4882a593Smuzhiyun 107*4882a593SmuzhiyunMon Jan 10 13:30 2000 Pam Delaney (pam.delaney@lsil.com) 108*4882a593Smuzhiyun * revision 3.30 109*4882a593Smuzhiyun - Added capability to use the integrity checking code 110*4882a593Smuzhiyun in the kernel (optional). 111*4882a593Smuzhiyun - Disabled support for the 53C1010. 112*4882a593Smuzhiyun - Built off of version 3.2c 113*4882a593Smuzhiyun 114*4882a593SmuzhiyunSat Jan 8 22:00 2000 Gerard Roudier (groudier@club-internet.fr) 115*4882a593Smuzhiyun * revision 3.2e 116*4882a593Smuzhiyun - Add year 2000 copyright. 117*4882a593Smuzhiyun - Display correctly bus signals when bus is detected wrong. 118*4882a593Smuzhiyun - Remove the dead code that broke driver 3.2d. 119*4882a593Smuzhiyun 120*4882a593SmuzhiyunMon Dec 6 22:00 1999 Gerard Roudier (groudier@club-internet.fr) 121*4882a593Smuzhiyun * revision 3.2d 122*4882a593Smuzhiyun - Change messages written by the driver at initialisation and 123*4882a593Smuzhiyun through the /proc FS (rather cosmetic changes that consist in 124*4882a593Smuzhiyun printing out the PCI bus number and device/function). 125*4882a593Smuzhiyun - Get rid of the old PCI bios interface, but preserve kernel 2.0 126*4882a593Smuzhiyun compatibility from a simple wrapper. 127*4882a593Smuzhiyun - Remove the compilation condition about having to acquire the 128*4882a593Smuzhiyun io_request_lock since it seems to be a definite feature now.:) 129*4882a593Smuzhiyun - proc_dir structure no longer needed for kernel >= 2.3.27. 130*4882a593Smuzhiyun - Change the driver detection code by the sym53c8xx one, modulo 131*4882a593Smuzhiyun some minor changes. The driver can now attach any number of 132*4882a593Smuzhiyun controllers (>40) and does no longer hoger stack space at 133*4882a593Smuzhiyun initialisation. 134*4882a593Smuzhiyun - Definitely disable overlapped PCI arbitration for all dual 135*4882a593Smuzhiyun function chips, since I cannot make sure for what chip revisions 136*4882a593Smuzhiyun it is actually safe. 137*4882a593Smuzhiyun - Add support for the SYM53C1510D. 138*4882a593Smuzhiyun - Update the poor Tekram sync factor table. 139*4882a593Smuzhiyun - Remove the compilation condition about having to acquire the 140*4882a593Smuzhiyun io_request_lock since it seems to be a definite feature now.:) 141*4882a593Smuzhiyun - proc_dir structure no longer needed for kernel >= 2.3.27. 142*4882a593Smuzhiyun 143*4882a593SmuzhiyunSat Sep 11 18:00 1999 Gerard Roudier (groudier@club-internet.fr) 144*4882a593Smuzhiyun * revision 3.2c 145*4882a593Smuzhiyun - Handle correctly (hopefully) jiffies wrap-around. 146*4882a593Smuzhiyun - Restore the entry used to detect 875 until revision 0xff. 147*4882a593Smuzhiyun (I removed it inadvertently, it seems :) ) 148*4882a593Smuzhiyun - Replace __initfunc() which is deprecated stuff by __init which 149*4882a593Smuzhiyun is not yet so. ;-) 150*4882a593Smuzhiyun - Add support of some 'resource handling' for linux-2.3.13. 151*4882a593Smuzhiyun Basically the BARs have been changed to something more complex 152*4882a593Smuzhiyun in the pci_dev structure. 153*4882a593Smuzhiyun - Remove some deprecated code. 154*4882a593Smuzhiyun 155*4882a593SmuzhiyunSat May 10 11:00 1999 Gerard Roudier (groudier@club-internet.fr) 156*4882a593Smuzhiyun * revision pre-3.2b-1 157*4882a593Smuzhiyun - Support for the 53C895A by Pamela Delaney <pam.delaney@lsil.com> 158*4882a593Smuzhiyun The 53C895A contains all of the features of the 896 but has only 159*4882a593Smuzhiyun one channel and has a 32 bit PCI bus. It does 64 bit PCI addressing 160*4882a593Smuzhiyun using dual cycle PCI data transfers. 161*4882a593Smuzhiyun - Miscellaneous minor fixes. 162*4882a593Smuzhiyun - Some additions to the README.ncr53c8xx file. 163*4882a593Smuzhiyun 164*4882a593SmuzhiyunSun Apr 11 10:00 1999 Gerard Roudier (groudier@club-internet.fr) 165*4882a593Smuzhiyun * revision 3.2a 166*4882a593Smuzhiyun - Add 'hostid:#id' boot option. This option allows to change the 167*4882a593Smuzhiyun default SCSI id the driver uses for controllers. 168*4882a593Smuzhiyun - Remove nvram layouts and driver set-up structures from the C source, 169*4882a593Smuzhiyun and use the one defined in sym53c8xx_defs.h file. 170*4882a593Smuzhiyun (shared by both drivers). 171*4882a593Smuzhiyun - Set for now MAX LUNS to 16 (instead of 8). 172*4882a593Smuzhiyun 173*4882a593SmuzhiyunThu Mar 11 23:00 1999 Gerard Roudier (groudier@club-internet.fr) 174*4882a593Smuzhiyun * revision 3.2 (8xx-896 driver bundle) 175*4882a593Smuzhiyun - Only define the host template in ncr53c8xx.h and include the 176*4882a593Smuzhiyun sym53c8xx_defs.h file. 177*4882a593Smuzhiyun - Declare static all symbols that do not need to be visible from 178*4882a593Smuzhiyun outside the driver code. 179*4882a593Smuzhiyun - Add 'excl' boot command option that allows to pass to the driver 180*4882a593Smuzhiyun io address of devices not to attach. 181*4882a593Smuzhiyun - Add info() function called from the host template to print 182*4882a593Smuzhiyun driver/host information. 183*4882a593Smuzhiyun - Minor documentation additions. 184*4882a593Smuzhiyun 185*4882a593SmuzhiyunSat Mar 6 11:00 1999 Gerard Roudier (groudier@club-internet.fr) 186*4882a593Smuzhiyun * revision 3.1h 187*4882a593Smuzhiyun - Fix some oooold bug that hangs the bus if a device rejects a 188*4882a593Smuzhiyun negotiation. Btw, the corresponding stuff also needed some cleanup 189*4882a593Smuzhiyun and thus the change is a bit larger than it could have been. 190*4882a593Smuzhiyun - Still some typo that made compilation fail for 64 bit (trivial fix). 191*4882a593Smuzhiyun 192*4882a593SmuzhiyunSun Feb 14:00 1999 Gerard Roudier (groudier@club-internet.fr) 193*4882a593Smuzhiyun * revision 3.1g 194*4882a593Smuzhiyun - Deal correctly with 64 bit PCI address registers on Linux 2.2. 195*4882a593Smuzhiyun Pointed out by Leonard Zubkoff. 196*4882a593Smuzhiyun - Allow to tune request_irq() flags from the boot command line using 197*4882a593Smuzhiyun ncr53c8xx=irqm:??, as follows: 198*4882a593Smuzhiyun a) If bit 0x10 is set in irqm, IRQF_SHARED flag is not used. 199*4882a593Smuzhiyun b) If bit 0x20 is set in irqm, IRQF_DISABLED flag is not used. 200*4882a593Smuzhiyun By default the driver uses both IRQF_SHARED and IRQF_DISABLED. 201*4882a593Smuzhiyun Option 'ncr53c8xx=irqm:0x20' may be used when an IRQ is shared by 202*4882a593Smuzhiyun a 53C8XX adapter and a network board. 203*4882a593Smuzhiyun - Tiny misspelling fixed (ABORT instead of ABRT). Was fortunately 204*4882a593Smuzhiyun harmless. 205*4882a593Smuzhiyun - Negotiate SYNC data transfers with CCS devices. 206*4882a593Smuzhiyun 207*4882a593SmuzhiyunSat Jan 16 17:30 1999 Gerard Roudier (groudier@club-internet.fr) 208*4882a593Smuzhiyun * revision 3.1f 209*4882a593Smuzhiyun - Some PCI fix-ups not needed any more for PPC (from Cort). 210*4882a593Smuzhiyun - Cache line size set to 16 DWORDS for Sparc (from DSM). 211*4882a593Smuzhiyun - Waiting list look-up didn't work for the first command of the list. 212*4882a593Smuzhiyun - Remove 2 useless lines of code. 213*4882a593Smuzhiyun 214*4882a593SmuzhiyunSun Dec 13 18:00 1998 Gerard Roudier (groudier@club-internet.fr) 215*4882a593Smuzhiyun * revision 3.1e 216*4882a593Smuzhiyun - Same work-around as for the 53c876 rev <= 0x15 for 53c896 rev 1: 217*4882a593Smuzhiyun Disable overlapped arbitration. This will not make difference 218*4882a593Smuzhiyun since the chip has on-chip RAM. 219*4882a593Smuzhiyun 220*4882a593SmuzhiyunThu Nov 26 22:00 1998 Gerard Roudier (groudier@club-internet.fr) 221*4882a593Smuzhiyun * revision 3.1d 222*4882a593Smuzhiyun - The SISL RAID change requires now remap_pci_mem() stuff to be 223*4882a593Smuzhiyun compiled for __i386__ when normal IOs are used. 224*4882a593Smuzhiyun - Minor spelling fixes in doc files. 225*4882a593Smuzhiyun 226*4882a593SmuzhiyunSat Nov 21 18:00 1998 Gerard Roudier (groudier@club-internet.fr) 227*4882a593Smuzhiyun * revision 3.1c 228*4882a593Smuzhiyun - Ignore chips that are driven by SISL RAID (DAC 960). 229*4882a593Smuzhiyun Change sent by Leonard Zubkoff and slightly reworked. 230*4882a593Smuzhiyun - Still a buglet in the tags initial settings that needed to be fixed. 231*4882a593Smuzhiyun It was not possible to disable TGQ at system startup for devices 232*4882a593Smuzhiyun that claim TGQ support. The driver used at least 2 for the queue 233*4882a593Smuzhiyun depth but did'nt keep track of user settings for tags depth lower 234*4882a593Smuzhiyun than 2. 235*4882a593Smuzhiyun 236*4882a593SmuzhiyunWed Nov 11 10:00 1998 Gerard Roudier (groudier@club-internet.fr) 237*4882a593Smuzhiyun * revision 3.1b 238*4882a593Smuzhiyun - The driver was unhappy when configured with default_tags > MAX_TAGS 239*4882a593Smuzhiyun Hopefully doubly-fixed. 240*4882a593Smuzhiyun - Update the Configure.help driver section that speaks of TAGS. 241*4882a593Smuzhiyun 242*4882a593SmuzhiyunWed Oct 21 21:00 1998 Gerard Roudier (groudier@club-internet.fr) 243*4882a593Smuzhiyun * revision 3.1a 244*4882a593Smuzhiyun - Changes from Eddie Dost for Sparc and Alpha: 245*4882a593Smuzhiyun ioremap/iounmap support for Sparc. 246*4882a593Smuzhiyun pcivtophys changed to bus_dvma_to_phys. 247*4882a593Smuzhiyun - Add the 53c876 description to the chip table. This is only useful 248*4882a593Smuzhiyun for printing the right name of the controller. 249*4882a593Smuzhiyun - DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15). 250*4882a593Smuzhiyun - Add additional checking of INQUIRY data: 251*4882a593Smuzhiyun Check INQUIRY data received length is at least 7. Byte 7 of 252*4882a593Smuzhiyun inquiry data contains device features bits and the driver might 253*4882a593Smuzhiyun be confused by garbage. Also check peripheral qualifier. 254*4882a593Smuzhiyun - Cleanup of the SCSI tasks management: 255*4882a593Smuzhiyun Remove the special case for 32 tags. Now the driver only uses the 256*4882a593Smuzhiyun scheme that allows up to 64 tags per LUN. 257*4882a593Smuzhiyun Merge some code from the 896 driver. 258*4882a593Smuzhiyun Use a 1,3,5,...MAXTAGS*2+1 tag numbering. Previous driver could 259*4882a593Smuzhiyun use any tag number from 1 to 253 and some non conformant devices 260*4882a593Smuzhiyun might have problems with large tag numbers. 261*4882a593Smuzhiyun - 'no_sync' changed to 'no_disc' in the README file. This is an old 262*4882a593Smuzhiyun and trivial mistake that seems to demonstrate the README file is 263*4882a593Smuzhiyun not often read. :) 264*4882a593Smuzhiyun 265*4882a593SmuzhiyunSun Oct 4 14:00 1998 Gerard Roudier (groudier@club-internet.fr) 266*4882a593Smuzhiyun * revision 3.0i 267*4882a593Smuzhiyun - Cosmetic changes for sparc (but not for the driver) that needs 268*4882a593Smuzhiyun __irq_itoa() to be used for printed IRQ value to be understandable. 269*4882a593Smuzhiyun - Some problems with the driver that didn't occur using driver 2.5f 270*4882a593Smuzhiyun were due to a SCSI selection problem triggered by a clearly 271*4882a593Smuzhiyun documented feature that in fact seems not to work: (53C8XX chips 272*4882a593Smuzhiyun are claimed by the manuals to be able to execute SCSI scripts just 273*4882a593Smuzhiyun after abitration while the SCSI core is performing SCSI selection). 274*4882a593Smuzhiyun This optimization is broken and has been removed. 275*4882a593Smuzhiyun - Some broken scsi devices are confused when a negotiation is started 276*4882a593Smuzhiyun on a LUN that does not correspond to a real device. According to 277*4882a593Smuzhiyun SCSI specs, this is a device firmware bug. This has been worked 278*4882a593Smuzhiyun around by only starting negotiation if the LUN has previously be 279*4882a593Smuzhiyun used for at least 1 successful SCSI command. 280*4882a593Smuzhiyun - The 'last message sent' printed out on M_REJECT message reception 281*4882a593Smuzhiyun was read from the SFBR i/o register after the previous message had 282*4882a593Smuzhiyun been sent. 283*4882a593Smuzhiyun This was not correct and affects all previous driver versions and 284*4882a593Smuzhiyun the original FreeBSD one as well. The SCSI scripts has been fixed 285*4882a593Smuzhiyun so that it now provides the right information to the C code. 286*4882a593Smuzhiyun 287*4882a593SmuzhiyunSat Jul 18 13:00 1998 Gerard Roudier (groudier@club-internet.fr) 288*4882a593Smuzhiyun * revision 3.0g 289*4882a593Smuzhiyun - Preliminary fixes for Big Endian (sent by Eddie C. Dost). 290*4882a593Smuzhiyun Big Endian architectures should work again with the driver. 291*4882a593Smuzhiyun Eddie's patch has been partially applied since current 2.1.109 292*4882a593Smuzhiyun does not have all the Sparc changes of the vger tree. 293*4882a593Smuzhiyun - Use of BITS_PER_LONG instead of (~0UL == 0xffffffffUL) has fixed 294*4882a593Smuzhiyun the problem observed when the driver was compiled using EGCS or 295*4882a593Smuzhiyun PGCC. 296*4882a593Smuzhiyun 297*4882a593SmuzhiyunMon Jul 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr) 298*4882a593Smuzhiyun * revision 3.0f 299*4882a593Smuzhiyun - Some spelling fixes. 300*4882a593Smuzhiyun - linux/config.h misplaced in ncr53c8xx.h 301*4882a593Smuzhiyun - MODULE_PARM stuff added for linux 2.1. 302*4882a593Smuzhiyun - check INQUIRY response data format is exactly 2. 303*4882a593Smuzhiyun - use BITS_PER_LONG if defined. 304*4882a593Smuzhiyun 305*4882a593SmuzhiyunSun Jun 28 12:00 1998 Gerard Roudier (groudier@club-internet.fr) 306*4882a593Smuzhiyun * revision 3.0e 307*4882a593Smuzhiyun - Some cleanup, spelling fixes, version checks, documentations 308*4882a593Smuzhiyun changes, etc ... 309*4882a593Smuzhiyun 310*4882a593SmuzhiyunSat Jun 20 20:00 1998 Gerard Roudier (groudier@club-internet.fr) 311*4882a593Smuzhiyun * revision 3.0c 312*4882a593Smuzhiyun - Add a boot setup option that allows to set up device queue depths 313*4882a593Smuzhiyun at boot-up. This option is very useful since Linux does not 314*4882a593Smuzhiyun allow to change scsi device queue depth once the system has been 315*4882a593Smuzhiyun booted up. 316*4882a593Smuzhiyun 317*4882a593SmuzhiyunSun Jun 15 23:00 1998 Gerard Roudier (groudier@club-internet.fr) 318*4882a593Smuzhiyun * revision 3.0a 319*4882a593Smuzhiyun - Support for up to 64 TAGS per LUN. 320*4882a593Smuzhiyun - Rewrite the TARGET vs LUN capabilities management. 321*4882a593Smuzhiyun CmdQueue is now handled as a LUN capability as it shall be. 322*4882a593Smuzhiyun This also fixes a bug triggered when disabling tagged command 323*4882a593Smuzhiyun queuing for a device that had this feature enabled. 324*4882a593Smuzhiyun - Remove the ncr_opennings() stuff that was useless under Linux 325*4882a593Smuzhiyun and hard to understand to me. 326*4882a593Smuzhiyun - Add "setverbose" procfs driver command. It allows to tune 327*4882a593Smuzhiyun verbose level after boot-up. Setting this level to zero, for 328*4882a593Smuzhiyun example avoid flooding the syslog file. 329*4882a593Smuzhiyun - Add KERN_XXX to some printk's. 330*4882a593Smuzhiyun 331*4882a593SmuzhiyunTue Jun 10 23:00 1998 Gerard Roudier (groudier@club-internet.fr) 332*4882a593Smuzhiyun * revision 3.0 333*4882a593Smuzhiyun - Linux config changes for 2.0.34: 334*4882a593Smuzhiyun Remove NVRAM detection config option. This option is now enabled 335*4882a593Smuzhiyun by default but can be disabled by editing the driver header file. 336*4882a593Smuzhiyun Add a PROFILE config option. 337*4882a593Smuzhiyun - Update Configure.help 338*4882a593Smuzhiyun - Add calls to new function mdelay() for milli-seconds delay if 339*4882a593Smuzhiyun kernel version >= 2.1.105. 340*4882a593Smuzhiyun - Replace all printf(s) by printk(s). After all, the ncr53c8xx is 341*4882a593Smuzhiyun a driver for Linux. 342*4882a593Smuzhiyun - Perform auto-sense on COMMAND TERMINATED. Not sure it is useful. 343*4882a593Smuzhiyun - Some other minor changes. 344*4882a593Smuzhiyun 345*4882a593SmuzhiyunTue Jun 4 23:00 1998 Gerard Roudier (groudier@club-internet.fr) 346*4882a593Smuzhiyun * revision 2.6n 347*4882a593Smuzhiyun - Code cleanup and simplification: 348*4882a593Smuzhiyun Remove kernel 1.2.X and 1.3.X support. 349*4882a593Smuzhiyun Remove the _old_ target capabilities table. 350*4882a593Smuzhiyun Remove the error recovery code that have'nt been really useful. 351*4882a593Smuzhiyun Use a single alignment boundary (CACHE_LINE_SIZE) for data 352*4882a593Smuzhiyun structures. 353*4882a593Smuzhiyun - Several aggressive SCRIPTS optimizations and changes: 354*4882a593Smuzhiyun Reselect SCRIPTS code rewritten. 355*4882a593Smuzhiyun Support for selection/reselection without ATN. 356*4882a593Smuzhiyun And some others. 357*4882a593Smuzhiyun - Miscallaneous changes in the C code: 358*4882a593Smuzhiyun Count actual number of CCB queued to the controller (future use). 359*4882a593Smuzhiyun Lots of other minor changes. 360*4882a593Smuzhiyun 361*4882a593SmuzhiyunWed May 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr) 362*4882a593Smuzhiyun * revision 2.6m 363*4882a593Smuzhiyun - Problem of missed SCSI bus reset with the 53C895 fixed by 364*4882a593Smuzhiyun Richard Waltham. The 53C895 needs about 650 us for the bus 365*4882a593Smuzhiyun mode to settle. Delays used while resetting the controller 366*4882a593Smuzhiyun and the bus have been adjusted. Thanks Richard! 367*4882a593Smuzhiyun - Some simplification for 64 bit arch done ccb address testing. 368*4882a593Smuzhiyun - Add a check of the MSG_OUT phase after Selection with ATN. 369*4882a593Smuzhiyun - The new tagged queue stuff seems ok, so some informationnal 370*4882a593Smuzhiyun message have been conditionned by verbose >= 3. 371*4882a593Smuzhiyun - Donnot reset if a SBMC interrupt reports the same bus mode. 372*4882a593Smuzhiyun - Print out the whole driver set-up. Some options were missing and 373*4882a593Smuzhiyun the print statement was misplaced for modules. 374*4882a593Smuzhiyun - Ignore a SCSI parity interrupt if the chip is not connected to 375*4882a593Smuzhiyun the SCSI bus. 376*4882a593Smuzhiyun 377*4882a593SmuzhiyunSat May 1 16:00 1998 Gerard Roudier (groudier@club-internet.fr) 378*4882a593Smuzhiyun * revision 2.6l 379*4882a593Smuzhiyun - Add CCB done queue support for Alpha and perhaps some other 380*4882a593Smuzhiyun architectures. 381*4882a593Smuzhiyun - Add some barriers to enforce memory ordering for x86 and 382*4882a593Smuzhiyun Alpha architectures. 383*4882a593Smuzhiyun - Fix something that looks like an old bug in the nego SIR 384*4882a593Smuzhiyun interrupt code in case of negotiation failure. 385*4882a593Smuzhiyun 386*4882a593SmuzhiyunSat Apr 25 21:00 1998 Gerard Roudier (groudier@club-internet.fr) 387*4882a593Smuzhiyun * revision 2.6k 388*4882a593Smuzhiyun - Remove all accesses to the on-chip RAM from the C code: 389*4882a593Smuzhiyun Use SCRIPTS to load the on-chip RAM. 390*4882a593Smuzhiyun Use SCRIPTS to repair the start queue on selection timeout. 391*4882a593Smuzhiyun Use the copy of script in main memory to calculate the chip 392*4882a593Smuzhiyun context on phase mismatch. 393*4882a593Smuzhiyun - The above allows now to use the on-chip RAM without requiring 394*4882a593Smuzhiyun to get access to the on-chip RAM from the C code. This makes 395*4882a593Smuzhiyun on-chip RAM useable for linux-1.2.13 and for Linux-Alpha for 396*4882a593Smuzhiyun instance. 397*4882a593Smuzhiyun - Some simplifications and cleanups in the SCRIPTS and C code. 398*4882a593Smuzhiyun - Buglet fixed in parity error recovery SCRIPTS (never tested). 399*4882a593Smuzhiyun - Minor updates in README.ncr53c8xx. 400*4882a593Smuzhiyun 401*4882a593SmuzhiyunWed Apr 15 21:00 1998 Gerard Roudier (groudier@club-internet.fr) 402*4882a593Smuzhiyun * revision 2.6j 403*4882a593Smuzhiyun - Incorporate changes from linux-2.1.95 ncr53c8xx driver version. 404*4882a593Smuzhiyun - Add SMP support for linux-2.1.95 and above. 405*4882a593Smuzhiyun - Fix a bug when QUEUE FULL is returned and no commands are 406*4882a593Smuzhiyun disconnected. This happens with Atlas I / L912 and may happen 407*4882a593Smuzhiyun with Atlas II / LXY4. 408*4882a593Smuzhiyun - Nail another one on CHECK condition when requeuing the command 409*4882a593Smuzhiyun for auto-sense. 410*4882a593Smuzhiyun - Call scsi_done() for all completed commands after interrupt 411*4882a593Smuzhiyun handling. 412*4882a593Smuzhiyun - Increase the done queue to 24 entries. 413*4882a593Smuzhiyun 414*4882a593SmuzhiyunSat Apr 4 20:00 1998 Gerard Roudier (groudier@club-internet.fr) 415*4882a593Smuzhiyun * revision 2.6i 416*4882a593Smuzhiyun - CTEST0 is used by the 53C885 for Power Management and 417*4882a593Smuzhiyun priority setting between the 2 functions. 418*4882a593Smuzhiyun Use SDID instead as actual target number. Just have had to 419*4882a593Smuzhiyun overwrite it with SSID on reselection. 420*4882a593Smuzhiyun - Split DATA_IN and DATA_OUT scripts into 2 sub-scripts. 421*4882a593Smuzhiyun 64 segments are moved from on-chip RAM scripts. 422*4882a593Smuzhiyun If more segments, a script in main memory is used for the 423*4882a593Smuzhiyun additional segments. 424*4882a593Smuzhiyun - Since the SCRIPTS processor continues SCRIPTS execution after 425*4882a593Smuzhiyun having won arbitration, do some stuff prior to testing any SCSI 426*4882a593Smuzhiyun phase on reselection. This should have the vertue to process 427*4882a593Smuzhiyun scripts in parallel with the SCSI core performing selection. 428*4882a593Smuzhiyun - Increase the done queue to 12 entries. 429*4882a593Smuzhiyun 430*4882a593SmuzhiyunSun Mar 29 12:00 1998 Gerard Roudier (groudier@club-internet.fr) 431*4882a593Smuzhiyun * revision 2.6h 432*4882a593Smuzhiyun - Some fixes. 433*4882a593Smuzhiyun 434*4882a593SmuzhiyunTue Mar 26 23:00 1998 Gerard Roudier (groudier@club-internet.fr) 435*4882a593Smuzhiyun * revision 2.6g 436*4882a593Smuzhiyun - New done queue. 8 entries by default (6 always useable). 437*4882a593Smuzhiyun Can be increased if needed. 438*4882a593Smuzhiyun - Resources management using doubly linked queues. 439*4882a593Smuzhiyun - New auto-sense and QUEUE FULL handling that does not need to 440*4882a593Smuzhiyun stall the NCR queue any more. 441*4882a593Smuzhiyun - New CCB starvation avoiding algorithm. 442*4882a593Smuzhiyun - Prepare CCBs for SCSI commands that cannot be queued, instead of 443*4882a593Smuzhiyun inserting these commands into the waiting list. The waiting list 444*4882a593Smuzhiyun is now only used while resetting and when memory for CCBs is not 445*4882a593Smuzhiyun yet available? 446*4882a593Smuzhiyun 447*4882a593SmuzhiyunSun Feb 8 22:00 1998 Gerard Roudier (groudier@club-internet.fr) 448*4882a593Smuzhiyun * revision 2.6f 449*4882a593Smuzhiyun - Some fixes in order to really support the 53C895, at least with 450*4882a593Smuzhiyun FAST-20 devices. 451*4882a593Smuzhiyun - Heavy changes in the target/lun resources management to allow 452*4882a593Smuzhiyun the scripts to jump directly to the CCB on reselection instead 453*4882a593Smuzhiyun of walking on the lun CCBs list. Up to 32 tags per lun are now 454*4882a593Smuzhiyun supported without script processor and PCI traffic overhead. 455*4882a593Smuzhiyun 456*4882a593SmuzhiyunSun Jan 11 22:00 1998 Gerard Roudier (groudier@club-internet.fr) 457*4882a593Smuzhiyun * revision 2.6d 458*4882a593Smuzhiyun - new (different ?) implementation of the start queue: 459*4882a593Smuzhiyun Use a simple CALL to a launch script in the CCB. 460*4882a593Smuzhiyun - implement a minimal done queue (1 entry :-) ). 461*4882a593Smuzhiyun this avoid scanning all CCBs on INT FLY (Only scan all CCBs, on 462*4882a593Smuzhiyun overflow). Hit ratio is better than 99.9 % on my system, so no 463*4882a593Smuzhiyun need to have a larger done queue. 464*4882a593Smuzhiyun - generalization of the restart of CCB on special condition as 465*4882a593Smuzhiyun Abort, QUEUE FULL, CHECK CONDITION. 466*4882a593Smuzhiyun This has been called 'silly scheduler'. 467*4882a593Smuzhiyun - make all the profiling code conditionned by a config option. 468*4882a593Smuzhiyun This spare some PCI traffic and C code when this feature is not 469*4882a593Smuzhiyun needed. 470*4882a593Smuzhiyun - handle more cleanly the situation where direction is unknown. 471*4882a593Smuzhiyun The pointers patching is now performed by the SCRIPTS processor. 472*4882a593Smuzhiyun - remove some useless scripts instructions. 473*4882a593Smuzhiyun 474*4882a593Smuzhiyun Ported from driver 2.5 series: 475*4882a593Smuzhiyun ------------------------------ 476*4882a593Smuzhiyun - Use FAST-5 instead of SLOW for slow scsi devices according to 477*4882a593Smuzhiyun new SPI-2 draft. 478*4882a593Smuzhiyun - Make some changes in order to accommodate with 875 rev <= 3 479*4882a593Smuzhiyun device errata listing 397. Minor consequences are: 480*4882a593Smuzhiyun . Leave use of PCI Write and Invalidate under user control. 481*4882a593Smuzhiyun Now, by default the driver does not enable PCI MWI and option 482*4882a593Smuzhiyun 'specf:y' is required in order to enable this feature. 483*4882a593Smuzhiyun . Memory Read Line is not enabled for 875 and 875-like chips. 484*4882a593Smuzhiyun . Programmed burst length set to 64 DWORDS (instead of 128). 485*4882a593Smuzhiyun (Note: SYMBIOS uses 32 DWORDS for the SDMS BIOS) 486*4882a593Smuzhiyun - Add 'buschk' boot option. 487*4882a593Smuzhiyun This option enables checking of SCSI BUS data lines after SCSI 488*4882a593Smuzhiyun RESET (set by default). (Submitted by Richard Waltham). 489*4882a593Smuzhiyun - Update the README file. 490*4882a593Smuzhiyun - Dispatch CONDITION MET and RESERVATION CONFLICT scsi status 491*4882a593Smuzhiyun as OK driver status. 492*4882a593Smuzhiyun - Update the README file and the Symbios NVRAM format definition 493*4882a593Smuzhiyun with removable media flags values (available with SDMS 4.09). 494*4882a593Smuzhiyun - Several PCI configuration registers fix-ups for powerpc. 495*4882a593Smuzhiyun (Patch sent by Cort). 496