| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Sat May 12 12:00 2001 Gerard Roudier (groudier@club-internet.fr) | 
 | 2 | 	* version sym53c8xx-1.7.3c | 
 | 3 | 	- Ensure LEDC bit in GPCNTL is cleared when reading the NVRAM. | 
 | 4 | 	  Fix sent by Stig Telfer <stig@api-networks.com>. | 
 | 5 | 	- Backport from SYM-2 the work-around that allows to support  | 
 | 6 | 	  hardwares that fail PCI parity checking. | 
 | 7 | 	- Check that we received at least 8 bytes of INQUIRY response  | 
 | 8 | 	  for byte 7, that contains device capabilities, to be valid. | 
 | 9 | 	- Define scsi_set_pci_device() as nil for kernel < 2.4.4. | 
 | 10 | 	- + A couple of minor changes. | 
 | 11 | 	   | 
 | 12 | Sat Apr 7 19:30 2001 Gerard Roudier (groudier@club-internet.fr) | 
 | 13 | 	* version sym53c8xx-1.7.3b | 
 | 14 | 	- Fix an unaligned LOAD from scripts (was used as dummy read). | 
 | 15 | 	- In ncr_soft_reset(), only try to ABORT the current operation  | 
 | 16 | 	  for chips that support SRUN bit in ISTAT1 and if SCRIPTS are  | 
 | 17 | 	  currently running, as 896 and 1010 manuals suggest. | 
 | 18 | 	- In the CCB abort path, do not assume that the CCB is currently  | 
 | 19 | 	  queued to SCRIPTS. This is not always true, notably after a  | 
 | 20 | 	  QUEUE FULL status or when using untagged commands. | 
 | 21 |  | 
 | 22 | Sun Mar 4 18:30 2001 Gerard Roudier (groudier@club-internet.fr) | 
 | 23 | 	* version sym53c8xx-1.7.3a | 
 | 24 | 	- Fix an issue in the ncr_int_udc() (unexpected disconnect) | 
 | 25 | 	  handling. If the DSA didn't match a CCB, a bad write to  | 
 | 26 | 	  memory could happen. | 
 | 27 |  | 
 | 28 | Mon Feb 12 22:30 2001 Gerard Roudier (groudier@club-internet.fr) | 
 | 29 | 	* version sym53c8xx-1.7.3 | 
 | 30 | 	- Support for hppa. | 
 | 31 | 	  Tiny patch sent to me by Robert Hirst. | 
 | 32 | 	- Tiny patch for ia64 sent to me by Pamela Delaney. | 
 | 33 |  | 
 | 34 | Tue Feb 6 13:30 2001 Gerard Roudier (groudier@club-internet.fr) | 
 | 35 | 	* version sym53c8xx-1.7.3-pre1 | 
 | 36 | 	- Call pci_enable_device() as AC wants this to be done. | 
 | 37 | 	- Get both the BAR cookies used by CPU and actual PCI BAR  | 
 | 38 | 	  values used from SCRIPTS. Recent PCI chips are able to  | 
 | 39 | 	  access themselves using internal cycles, but they compare  | 
 | 40 | 	  BAR values to destination address to make decision. | 
 | 41 | 	  Earlier chips simply use PCI transactions to access IO  | 
 | 42 | 	  registers from SCRIPTS. | 
 | 43 | 	  The bus_dvma_to_mem() interface that reverses the actual  | 
 | 44 | 	  PCI BAR value from the BAR cookie is now useless. | 
 | 45 | 	  This point had been discussed at the list and the solution  | 
 | 46 | 	  got approved by PCI code maintainer (Martin Mares). | 
 | 47 | 	- Merge changes for linux-2.4 that declare the host template  | 
 | 48 | 	  in the driver object also when the driver is statically  | 
 | 49 | 	  linked with the kernel. | 
 | 50 | 	- Increase SCSI message size up to 12 bytes, given that 8  | 
 | 51 | 	  bytes was not enough for the PPR message (fix). | 
 | 52 | 	- Add field 'maxoffs_st' (max offset for ST data transfers). | 
 | 53 | 	  The C1010 supports offset 62 in DT mode but only 31 in  | 
 | 54 | 	  ST mode, to 2 different values for the max SCSI offset  | 
 | 55 | 	  are needed. Replace the obviously wrong masking of the  | 
 | 56 | 	  offset against 0x1f for ST mode by a lowering to  | 
 | 57 | 	  maxoffs_st of the SCSI offset in ST mode. | 
 | 58 | 	- Refine a work-around for the C1010-66. Revision 1 does  | 
 | 59 | 	  not requires extra cycles in DT DATA OUT phase. | 
 | 60 | 	- Add a missing endian-ization (abrt_tbl.addr). | 
 | 61 | 	- Minor clean-up in the np structure for fields accessed  | 
 | 62 | 	  from SCRIPTS that requires special alignments. | 
 | 63 |  | 
 | 64 | Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 65 | 	* version sym53c8xx-1.7.2 | 
 | 66 | 	- Remove the hack for PPC added in previous driver version. | 
 | 67 | 	- Add FE_DAC feature bit to distinguish between 64 bit PCI  | 
 | 68 | 	  addressing (FE_DAC) and 64 bit PCI interface (FE_64BIT). | 
 | 69 | 	- Get rid of the boot command line "ultra:" argument. | 
 | 70 | 	  This parameter wasn't that clever since we can use "sync:"  | 
 | 71 | 	  for Ultra/Ultra2 settings, and for Ultra3 we may want to  | 
 | 72 | 	  pass PPR options (for now only DT clocking). | 
 | 73 | 	- Add FE_VARCLK feature bit that indicates that SCSI clock  | 
 | 74 | 	  frequency may vary depending on board design and thus,  | 
 | 75 | 	  the driver should try to evaluate the SCSI clock. | 
 | 76 | 	- Simplify the way the driver determine the SCSI clock: | 
 | 77 | 	  ULTRA3 -> 160 MHz, ULTRA2 -> 80 MHz otherwise 40 MHz. | 
 | 78 | 	  Measure the SCSI clock frequency if FE_VARCLK is set. | 
 | 79 | 	- Remove FE_CLK80 feature bit that got useless. | 
 | 80 | 	- Add support for the SYM53C875A (Pamela Delaney). | 
 | 81 |  | 
 | 82 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 83 | 	* version sym53c8xx-1.7.1 | 
| Nick Andrew | 8b5b8f4 | 2009-01-03 19:00:37 +1100 | [diff] [blame] | 84 | 	- Provide OpenFirmware path through the proc FS on PPC. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 85 | 	- Download of on-chip SRAM using memcpy_toio() doesn't work  | 
 | 86 | 	  on PPC. Restore previous method (MEMORY MOVE from SCRIPTS). | 
 | 87 | 	- Remove trailing argument #2 from a couple of #undefs. | 
 | 88 |  | 
 | 89 | Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 90 | 	* version sym53c8xx-1.7.0 | 
 | 91 | 	- Remove the PROFILE C and SCRIPTS code. | 
 | 92 | 	  This facility was not this useful and thus was not longer  | 
 | 93 | 	  desirable given the increasing complexity of the driver code. | 
 | 94 | 	- Merges from FreeBSD sym-1.6.2 driver: | 
 | 95 | 	  * Clarify memory barriers needed by the driver for architectures  | 
 | 96 | 	    that implement a weak memory ordering. | 
 | 97 | 	  * Simpler handling of illegal phases and data overrun from  | 
 | 98 | 	    SCRIPTS. These errors are now immediately reported to  | 
 | 99 | 	    the C code by an interrupt. | 
 | 100 | 	  * Sync the residual handling code with sym-1.6.2 and now  | 
 | 101 | 	    report `resid' to user for linux version >= 2.3.99  | 
 | 102 | 	- General cleanup: | 
 | 103 | 	  Move definitions for barriers and IO/MMIO operations to the  | 
 | 104 | 	  sym53c8xx_defs.h header files. They are now shared by the  | 
 | 105 | 	  both drivers. | 
 | 106 | 	  Remove unused options that claimed to optimize for the 896. | 
 | 107 | 	  If fact, they were not this clever. :) | 
 | 108 | 	  Use SCSI_NCR_IOMAPPED instead of NCR_IOMAPPED. | 
 | 109 | 	  Remove a couple of unused fields from data structures. | 
 | 110 |  | 
 | 111 | Thu May 11 12:40 2000 Pam Delaney (pam.delaney@lsil.com) | 
 | 112 | 	* version sym53c8xx-1.6b | 
 | 113 | 	- Merged version. | 
 | 114 |  | 
 | 115 | Mon Apr 24 12:00 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 116 | 	* version sym53c8xx-1.5m | 
 | 117 | 	- Return value 1 (instead of 0) from the driver setup routine. | 
 | 118 | 	- Do not enable PCI DAC cycles. This just broke support for  | 
 | 119 | 	  SYM534C896 on sparc64. Problem fixed by David S. Miller. | 
 | 120 |  | 
 | 121 | Fri Apr 14 9:00 2000 Pam Delaney (pam.delaney@lsil.com) | 
 | 122 | 	* version sym53c8xx-1.6b-9 | 
 | 123 | 	- Added 53C1010_66 support. | 
 | 124 | 	- Small fix to integrity checking code. | 
 | 125 | 	- Removed requirement for integrity checking if want to run | 
 | 126 | 	  at ultra 3. | 
 | 127 |   | 
 | 128 | Sat Apr 1  12:00 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 129 | 	* version sym53c8xx-1.5l | 
 | 130 | 	- Tiny change for __sparc__ appeared in 2.3.99-pre4.1 that  | 
 | 131 | 	  applies to cache line size (? Probably from David S Miller). | 
 | 132 | 	- Make sure no data transfer will happen for Scsi_Cmnd requests  | 
 | 133 | 	  that supply SCSI_DATA_NONE direction (this avoids some BUG()  | 
 | 134 | 	  statement in the PCI code when a data buffer is also supplied). | 
 | 135 |  | 
 | 136 | Sat Mar 11 12:00 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 137 | 	* version sym53c8xx-1.6b-5 | 
 | 138 | 	- Test against expected data transfer direction from SCRIPTS. | 
 | 139 | 	- Add support for the new dynamic dma mapping kernel interface. | 
 | 140 | 	  Requires Linux-2.3.47 (tested with pre-2.3.47-6). | 
 | 141 | 	  Many thanks to David S. Miller for his preliminary changes  | 
 | 142 | 	  that have been useful guidelines. | 
 | 143 | 	- Get data transfer direction from the scsi command structure  | 
 | 144 | 	  (Scsi_Cmnd) with kernels that provide this information. | 
 | 145 |  | 
 | 146 | Mon Mar  6 23:30 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 147 | 	* version sym53c8xx-1.5k | 
 | 148 | 	- Test against expected data transfer direction from SCRIPTS. | 
 | 149 | 	- Revert the change in 'ncr_flush_done_cmds()' but unmap the  | 
 | 150 | 	  scsi dma buffer prior to queueing the command to our done  | 
 | 151 | 	  list. | 
 | 152 | 	- Miscellaneous (minor) fixes in the code added in driver  | 
 | 153 | 	  version 1.5j. | 
 | 154 |  | 
 | 155 | Mon Feb 14 4:00 2000 Pam Delaney (pam.delaney@lsil.com) | 
 | 156 |  	* version sym53c8xx-pre-1.6b-2. | 
 | 157 | 	- Updated the SCRIPTS error handling of the SWIDE | 
 | 158 | 	  condition - to remove any reads of the sbdl | 
 | 159 | 	  register. Changes needed because the 896 and 1010 | 
 | 160 | 	  chips will check parity in some special circumstances. | 
 | 161 | 	  This will cause a parity error interrupt if not in | 
 | 162 | 	  data phase.  Changes based on those made in the | 
 | 163 | 	  FreeBSD driver version 1.3.2. | 
 | 164 |  | 
 | 165 | Sun Feb 20 11:00 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 166 | 	* version sym53c8xx-1.5j | 
 | 167 | 	- Add support for the new dynamic dma mapping kernel interface. | 
 | 168 | 	  Requires Linux-2.3.47 (tested with pre-2.3.47-6). | 
 | 169 | 	  Many thanks to David S. Miller for his preliminary changes  | 
 | 170 | 	  that have been useful guidelines, for having reviewed the  | 
 | 171 | 	  code and having tested this driver version on Ultra-Sparc. | 
 | 172 | 	- 2 tiny bugs fixed in the PCI wrapper that provides support  | 
 | 173 | 	  for early kernels without pci device structure. | 
 | 174 | 	- Get data transfer direction from the scsi command structure  | 
 | 175 | 	  (Scsi_Cmnd) with kernels that provide this information. | 
 | 176 | 	- Fix an old bug that only affected 896 rev. 1 when driver  | 
 | 177 | 	  profile support option was set in kernel configuration. | 
 | 178 |  | 
 | 179 | Fri Jan 14 14:00 2000 Pam Delaney (pam.delaney@lsil.com) | 
 | 180 |  	* version sym53c8xx-pre-1.6b-1. | 
 | 181 | 	- Merge parallel driver series 1.61 and 1.5e  | 
 | 182 |  | 
 | 183 | Tue Jan 11 14:00 2000 Pam Delaney (pam.delaney@lsil.com) | 
 | 184 | 	* version sym53c8xx-1.61 | 
 | 185 | 	- Added support for mounting disks on wide-narrow-wide | 
 | 186 | 	  scsi configurations.  | 
 | 187 | 	- Modified offset to be a maximum of 31 in ST mode,  | 
 | 188 | 	  62 in DT mode. | 
 | 189 | 	- Based off of 1.60 | 
 | 190 |  | 
 | 191 | Mon Jan 10 10:00 2000 Pam Delaney (pam.delaney@lsil.com) | 
 | 192 | 	* version sym53c8xx-1.60 | 
 | 193 | 	- Added capability to use the integrity checking code | 
 | 194 | 	  in the kernel (optional). | 
 | 195 | 	-  Added PPR negotiation. | 
 | 196 | 	- Added support for 53C1010 Ultra 3 part. | 
 | 197 | 	- Based off of 1.5f | 
 | 198 |  | 
 | 199 | Sat Jan 8  22:00 2000 Gerard Roudier (groudier@club-internet.fr) | 
 | 200 | 	* version sym53c8xx-1.5h | 
 | 201 | 	- Add year 2000 copyright. | 
 | 202 | 	- Display correctly bus signals when bus is detected wrong. | 
 | 203 | 	- Some fix for Sparc from DSM that went directly to kernel tree. | 
 | 204 |  | 
 | 205 | Mon Dec 6  22:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 206 | 	* version sym53c8xx-1.5g | 
 | 207 | 	- Change messages written by the driver at initialisation and  | 
 | 208 | 	  through the /proc FS (rather cosmetic changes that consist in | 
 | 209 | 	  printing out the PCI bus number and PCI device/function). | 
 | 210 | 	- Ensure the SCRIPTS processor is stopped while calibrating the  | 
 | 211 | 	  SCSI clock (the initialisation code has been a bit reworked). | 
 | 212 | 	  Change moved to the FreeBSD sym_hipd driver). | 
 | 213 | 	- Some fixes in the MODIFY_DP/IGN_RESIDUE code and residual  | 
 | 214 | 	  calculation (moved from FreeBSD sym_hipd driver). | 
 | 215 | 	- Add NVRAM support for Tekram boards that use 24C16 EEPROM. | 
 | 216 | 	  Code moved from the FreeBSD sym_hipd driver, since it has  | 
 | 217 | 	  been that one that got this feature first. | 
 | 218 | 	- Definitely disable overlapped PCI arbitration for all dual  | 
 | 219 | 	  function chips, since I cannot make sure for what chip revisions  | 
 | 220 | 	  it is actually safe. | 
 | 221 | 	- Add support for the SYM53C1510D (also for ncr53c8xx). | 
 | 222 | 	- Fix up properly the PCI latency timer when needed or asked for. | 
 | 223 | 	- Get rid of the old PCI bios interface, but preserve kernel 2.0  | 
 | 224 | 	  compatibility from a simple wrapper. | 
 | 225 | 	- Update the poor Tekram sync factor table. | 
 | 226 | 	- Fix in a tiny 'printk' bug that may oops in case of extended  | 
 | 227 | 	  errors (unrecovered parity error, data overrun, etc ...) | 
 | 228 | 	  (Sent by Pamela Delaney from LSILOGIC) | 
 | 229 | 	- Remove the compilation condition about having to acquire the  | 
 | 230 | 	  io_request_lock since it seems to be a definite feature now.:) | 
 | 231 | 	- Change get_pages by GetPages since Linux >= 2.3.27 now wants  | 
 | 232 | 	  get_pages to ever be used as a kernel symbol (from 2.3.27). | 
 | 233 | 	- proc_dir structure no longer needed for kernel >= 2.3.27. | 
 | 234 |  | 
 | 235 | Sun Oct  3  19:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 236 | 	* version sym53c8xx-1.5f | 
 | 237 | 	- Change the way the driver checks the PCI clock frequency, so  | 
 | 238 | 	  that overclocked PCI BUS up to 48 MHz will not be refused. | 
 | 239 | 	  The more the BUS is overclocked, the less the driver will  | 
 | 240 | 	  guarantee that its measure of the SCSI clock is correct. | 
 | 241 | 	- Backport some minor improvements of SCRIPTS from the sym_hipd  | 
 | 242 | 	  driver. | 
 | 243 | 	- Backport the code rewrite of the START QUEUE dequeuing (on  | 
 | 244 | 	  bad scsi status received) from the sym_hipd driver. | 
 | 245 |  | 
 | 246 | Sat Sep 11  11:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 247 | 	* version sym53c8xx-1.5e | 
 | 248 | 	- New linux-2.3.13 __setup scheme support added. | 
 | 249 | 	- Cleanup of the extended error status handling: | 
 | 250 | 	  Use 1 bit per error type. | 
 | 251 | 	- Also save the extended error status prior to auto-sense. | 
 | 252 | 	- Add the FE_DIFF chip feature bit to indicate support of  | 
 | 253 | 	  diff probing from GPIO3 (825/825A/876/875). | 
 | 254 | 	- Remove the quirk handling that has been useless since day one. | 
 | 255 | 	- Work-around PCI chips being reported twice on some platforms. | 
 | 256 | 	- Add some redundant PCI reads in order to deal with common  | 
 | 257 | 	  bridge misbehaviour regarding posted write flushing. | 
 | 258 | 	- Add some other conditionnal code for people who have to deal  | 
 | 259 | 	  with really broken bridges (they will have to edit a source  | 
 | 260 | 	  file to try these options). | 
 | 261 | 	- Handle correctly (hopefully) jiffies wrap-around. | 
 | 262 | 	- Restore the entry used to detect 875 until revision 0xff. | 
 | 263 | 	  (I removed it inadvertently, it seems :) ) | 
 | 264 | 	- Replace __initfunc() which is deprecated stuff by __init which  | 
 | 265 | 	  is not yet so. ;-) | 
 | 266 | 	- Rewrite the MESSAGE IN scripts more generic by using a MOVE  | 
 | 267 | 	  table indirect. Extended messages of any size are accepted now. | 
 | 268 | 	  (Size is limited to 8 for now, but a constant is just to be  | 
 | 269 | 	  increased if necessary) | 
 | 270 | 	- Fix some bug in the fully untested MDP handling:) and share  | 
 | 271 | 	  some code between MDP handling and residual calculation. | 
 | 272 | 	- Calculate the data transfer residual as the 2's complement  | 
 | 273 | 	  integer (A positive value in returned on data overrun, and  | 
 | 274 | 	  a negative one on underrun). | 
 | 275 | 	- Add support of some 'resource handling' for linux-2.3.13. | 
 | 276 | 	  Basically the BARs have been changed to something more complex  | 
 | 277 | 	  in the pci_dev structure. | 
 | 278 | 	- Remove some deprecated code. | 
 | 279 |  | 
 | 280 | Sat Jun  5  11:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 281 | 	* version sym53c8xx-1.5c | 
 | 282 | 	- Do not negotiate on auto-sense if we are currently using 8 bit  | 
 | 283 | 	  async transfer for the target. | 
 | 284 | 	- Only check for SISL/RAID on i386 platforms. | 
 | 285 | 	  (A problem has been reported on PPC with that code). | 
 | 286 | 	- On MSG REJECT for a negotiation, the driver attempted to restart  | 
 | 287 | 	  the SCRIPT processor when this one was already running. | 
 | 288 |  | 
 | 289 | Sat May 29  12:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 290 | 	* version sym53c8xx-1.5b | 
 | 291 | 	- Force negotiation prior auto-sense. | 
 | 292 | 	  This ensures that the driver will be able to grab the sense data  | 
 | 293 | 	  from a device that has received a BUS DEVICE RESET message from  | 
 | 294 | 	  another initiator. | 
 | 295 | 	- Complete all disconnected CCBs for a logical UNIT if we are told  | 
 | 296 | 	  about a UNIT ATTENTION for a RESET condition by this target. | 
 | 297 | 	- Add the control command 'cleardev' that allows to send a ABORT   | 
 | 298 | 	  message to a logical UNIT (for test purpose). | 
 | 299 |  | 
 | 300 | Tue May 25  23:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 301 | 	* version sym53c8xx-1.5a | 
 | 302 | 	- Add support for task abort and bus device reset SCSI message  | 
 | 303 | 	  and implement proper synchonisation with SCRIPTS to handle  | 
 | 304 |           correctly task abortion without races. | 
 | 305 | 	- Send an ABORT message (if untagged) or ABORT TAG message (if tagged) | 
 | 306 | 	  when the driver is told to abort a command that is disconnected and  | 
 | 307 | 	  complete the command with appropriate error. | 
 | 308 | 	  If the aborted command is not yet started, remove it from the start  | 
 | 309 | 	  queue and complete it with error. | 
 | 310 | 	- Add the control command 'resetdev' that allows to send a BUS  | 
 | 311 | 	  DEVICE RESET message to a target (for test purpose). | 
 | 312 | 	- Clean-up some unused or useless code. | 
 | 313 |  | 
 | 314 | Fri May 21  23:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 315 | 	* version sym53c8xx-1.5 | 
 | 316 | 	- Add support for CHMOV with Wide controllers. | 
 | 317 | 	- Handling of the SWIDE (low byte residue at the end of a CHMOV  | 
 | 318 | 	  in DATA IN phase with WIDE transfer when the byte count gets odd). | 
 | 319 | 	- Handling of the IGNORE WIDE RESIDUE message. | 
 | 320 | 	  Handled from SCRIPTS as possible with some optimizations when both  | 
 | 321 | 	  a wide device and the controller are odd at the same time (SWIDE  | 
 | 322 | 	  present and IGNORE WIDE RESIDUE message on the BUS at the same time). | 
 | 323 | 	- Check against data OVERRUN/UNDERRUN condition at the end of a data  | 
 | 324 | 	  transfer, whatever a SWIDE is present (OVERRUN in DATA IN phase)  | 
 | 325 | 	  or the SODL is full (UNDERRUN in DATA out phase). | 
 | 326 | 	- Handling of the MODIFY DATA POINTER message. | 
 | 327 | 	  This one cannot be handled from SCRIPTS, but hopefully it will not | 
 | 328 | 	  happen very often. :) | 
 | 329 | 	- Large rewrite of the SCSI MESSAGE handling. | 
 | 330 |  | 
 | 331 | Sun May 9  11:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 332 | 	* version sym53c8xx-1.4 | 
 | 333 | 	- Support for IMMEDIATE ARBITRATION. | 
 | 334 | 	  See the README file for detailed information about this feature. | 
 | 335 | 	  Requires both a compile option and a boot option. | 
 | 336 | 	- Minor SCRIPTS optimization in reselection pattern for LUN 0. | 
 | 337 | 	- Simpler algorithm to deal with SCSI command starvation. | 
 | 338 | 	  Just use 2 tag counters in flip/flop and switch to the other  | 
 | 339 | 	  one every 3 seconds. | 
 | 340 | 	- Do some work in SCRIPTS after the SELECT instruction and prior  | 
 | 341 | 	  to testing for a PHASE. SYMBIOS say this feature is working fine.  | 
 | 342 | 	  (Btw, only problems with Toshiba 3401B had been reported). | 
 | 343 | 	- Measure the PCI clock speed and do not attach controllers if  | 
 | 344 | 	  result is greater than 37 MHz. Since the precision of the  | 
 | 345 | 	  algorithm (from Stefan Esser) is better than 2%, this should  | 
 | 346 | 	  be fine. | 
 | 347 | 	- Fix the misdetection of SYM53C875E (was detected as a 876). | 
 | 348 | 	- Fix the misdetection of SYM53C810 not A (was detected as a 810A). | 
 | 349 | 	- Support for up to 256 TAGS per LUN (CMD_PER_LUN). | 
 | 350 | 	  Currently limited to 255 due to Linux limitation. :) | 
 | 351 | 	- Support for up to 508 active commands (CAN_QUEUE). | 
 | 352 | 	- Support for the 53C895A by Pamela Delaney <pam.delaney@lsil.com> | 
 | 353 | 	  The 53C895A contains all of the features of the 896 but has only  | 
 | 354 | 	  one channel and has a 32 bit PCI bus. It does 64 bit PCI addressing  | 
 | 355 | 	  using dual cycle PCI data transfers. | 
 | 356 | 	- Miscellaneous minor fixes. | 
 | 357 | 	- Some additions to the README.ncr53c8xx file. | 
 | 358 |  | 
 | 359 | Tue Apr 15  10:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 360 | 	* version sym53c8xx-1.3e | 
 | 361 | 	- Support for any number of LUNs (64) (SPI2-compliant). | 
 | 362 | 	  (Btw, this may only be ever useful under linux-2.2 ;-)) | 
 | 363 |  | 
 | 364 | Sun Apr 11  10:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 365 | 	* version sym53c8xx-1.3d | 
 | 366 | 	- Add 'hostid:#id' boot option. This option allows to change the  | 
 | 367 | 	  default SCSI id the driver uses for controllers. | 
 | 368 | 	- Make SCRIPTS not use self-mastering for PCI. | 
 | 369 | 	  There were still 2 places the driver used this feature of the  | 
 | 370 | 	  53C8XX family. | 
 | 371 | 	- Move some data structures (nvram layouts and driver set-up) to  | 
 | 372 | 	  the sym53c8xx_defs.h file. So, the both drivers will share them. | 
 | 373 | 	- Set MAX LUNS to 16 (instead of 8). | 
 | 374 |  | 
 | 375 | Sat Mar 20  21:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 376 | 	* version sym53c8xx-1.3b | 
 | 377 | 	- Add support for NCR PQS PDS. | 
 | 378 | 	  James Bottomley <James.Bottomley@columbiasc.ncr.com> | 
 | 379 | 	- Allow value 0 for host ID. | 
 | 380 | 	- Support more than 8 controllers (> 40 in fact :-) ) | 
 | 381 | 	- Add 'excl=#ioaddr' boot option: exclude controller. | 
 | 382 | 	  (Version 1.3a driver) | 
 | 383 |  | 
 | 384 | Thu Mar 11  23:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 385 | 	* version sym53c8xx-1.3   (8xx-896 driver bundle) | 
 | 386 | 	- Equivalent changes as ncr53c8xx-3.2 due to the driver bundle. | 
 | 387 | 	  (See Changelog.ncr53c8xx) | 
 | 388 | 	- Do a normal soft reset as first chip reset, since aborting current  | 
 | 389 | 	  operation may raise an interrupt we are not able to handle since  | 
 | 390 | 	  the interrupt handler is not yet established. | 
 | 391 |  | 
 | 392 | Sat Mar 6  11:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 393 | 	* version sym53c8xx-1.2b | 
 | 394 | 	- Fix some oooold bug that hangs the bus if a device rejects a  | 
 | 395 | 	  negotiation. Btw, the corresponding stuff also needed some cleanup  | 
 | 396 | 	  and thus the change is a bit larger than it could have been. | 
 | 397 | 	- Still some typo that made compilation fail for 64 bit (trivial fix). | 
 | 398 |  | 
 | 399 | Sun Feb 21  20:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 400 | 	* version sym53c8xx-1.2a | 
 | 401 | 	- The rewrite of the interrupt handling broke the SBMC interrupt  | 
 | 402 | 	  handling due to a 1 bit mask tiny error. Hopefully fixed. | 
 | 403 | 	- If INQUIRY came from a scatter list, the driver looked into  | 
 | 404 | 	  the scatterlist instead of the data.:) Since this should never | 
 | 405 | 	  happen, we just discard the data if use_sg is not zero. | 
 | 406 |  | 
 | 407 | Fri Feb 12  23:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 408 | 	* version sym53c8xx-1.2 | 
 | 409 | 	- Major rewrite of the interrupt handling and recovery stuff for  | 
 | 410 | 	  the support of non compliant SCSI removal, insertion and all  | 
 | 411 | 	  kinds of screw-up that may happen on the SCSI BUS. | 
 | 412 | 	  Hopefully, the driver is now unbreakable or may-be, it is just  | 
 | 413 | 	  quite brocken. :-) | 
 | 414 | 	  Many thanks to Johnson Russel (Symbios) for having responded to  | 
 | 415 | 	  my questions and for his interesting advices and comments about  | 
 | 416 | 	  support of SCSI hot-plug. | 
 | 417 | 	- Add 'recovery' option to driver set-up. | 
 | 418 | 	- Negotiate SYNC data transfers with CCS devices. | 
 | 419 | 	- Deal correctly with 64 bit PCI address registers on Linux 2.2. | 
 | 420 | 	  Pointed out by Leonard Zubkoff. | 
 | 421 |  | 
 | 422 | Sun Jan 31  18:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 423 | 	* version sym53c8xx-1.1a | 
 | 424 | 	- Some 896 chip revisions (all for now :-)), may hang-up if the  | 
 | 425 | 	  soft reset bit is set at the wrong time while SCRIPTS are running. | 
 | 426 | 	  We need to first abort the current SCRIPTS operation prior to  | 
 | 427 | 	  resetting the chip. This fix has been sent to me by SYMBIOS/LSI  | 
 | 428 | 	  and I just translated it into ncr53c8xx syntax. | 
 | 429 | 	  Must be considered 100 % trustable, unless I did some mistake  | 
 | 430 | 	  when translating it. :-) | 
 | 431 |  | 
 | 432 | Sun Jan 24  18:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 433 | 	* version sym53c8xx-1.1 | 
 | 434 | 	- Major rewrite of the SCSI parity error handling. | 
 | 435 | 	  The informations contained in the data manuals are incomplete about  | 
 | 436 | 	  this feature. | 
 | 437 | 	  I asked SYMBIOS about and got in reply the explanations that are  | 
 | 438 | 	  _indeed_ missing in the data manuals. | 
 | 439 | 	- Allow to tune request_irq() flags from the boot command line using  | 
 | 440 | 	  ncr53c8xx=irqm:??, as follows: | 
 | 441 | 	  a) If bit 0x10 is set in irqm, SA_SHIRQ flag is not used. | 
 | 442 | 	  b) If bit 0x20 is set in irqm, SA_INTERRUPT flag is not used. | 
 | 443 | 	  By default the driver uses both SA_SHIRQ and SA_INTERRUPT. | 
 | 444 | 	  Option 'ncr53c8xx=irqm:0x20' may be used when an IRQ is shared by  | 
 | 445 | 	  a 53C8XX adapter and a network board. | 
 | 446 | 	- Fix for 64 bit PCI address register calculation. (Lance Robinson) | 
 | 447 | 	- Fix for big-endian in phase mismatch handling. (Michal Jaegermann) | 
 | 448 |  | 
 | 449 | Fri Jan  1  20:00 1999 Gerard Roudier (groudier@club-internet.fr) | 
 | 450 | 	* version sym53c8xx-1.0a | 
 | 451 | 	- Waiting list look-up didn't work for the first command of the list. | 
 | 452 | 	  Hopefully fixed, but tested on paper only. ;) | 
 | 453 | 	- Remove the most part of PPC specific code for Linux-2.2. | 
 | 454 | 	  Thanks to Cort. | 
 | 455 | 	- Some other minors changes. | 
 | 456 |  | 
 | 457 | Sat Dec 19  21:00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 458 | 	* version sym53c8xx-1.0 | 
 | 459 | 	- Define some new IO registers for the 896 (istat1, mbox0, mbox1) | 
 | 460 | 	- Revamp slighly the Symbios NVRAM lay-out based on the excerpt of  | 
 | 461 | 	  the header file I received from Symbios. | 
 | 462 | 	- Check the PCI bus number for the boot order (Using a fast  | 
 | 463 | 	  PCI controller behing a PCI-PCI bridge seems sub-optimal). | 
 | 464 | 	- Disable overlapped PCI arbitration for the 896 revision 1. | 
 | 465 | 	- Reduce a bit the number of IO register reads for phase mismatch  | 
 | 466 | 	  by reading DWORDS at a time instead of BYTES. | 
 | 467 |  | 
 | 468 | Thu Dec  3  24:00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 469 | 	* version pre-sym53c8xx-0.18 | 
 | 470 | 	- I received this afternoon a 896 from SYMBIOS and started testing   | 
 | 471 | 	  the driver with this beast. After having fixed 3 buglets, it worked   | 
 | 472 | 	  with all features enabled including the phase mismatch handling  | 
 | 473 | 	  from SCRIPTS. Since this feature is not yet tested enough, the  | 
 | 474 | 	  boot option 'ncr53c8xx=specf:1' is still required to enable the  | 
 | 475 | 	  driver to handle PM from SCRIPTS.  | 
 | 476 |  | 
 | 477 | Sun Nov 29  18:00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 478 | 	* version pre-sym53c8xx-0.17 | 
 | 479 | 	- The SISL RAID change requires now remap_pci_mem() stuff to be  | 
 | 480 | 	  compiled for __i386__ when normal IOs are used. | 
 | 481 | 	- The PCI memory read from SCRIPTS that should ensure ordering  | 
 | 482 | 	  was in fact misplaced. BTW, this may explain why broken PCI  | 
 | 483 | 	  device drivers regarding ordering are working so well. ;-) | 
 | 484 | 	- Rewrite ncr53c8xx_setup (boot command line options) since the   | 
 | 485 | 	  binary code was a bit too bloated in my opinion. | 
 | 486 | 	- Make the code simpler in the wakeup_done routine. | 
 | 487 |  | 
 | 488 | Tue Nov 24  23:00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 489 | 	* version pre-sym53c8xx-0.16 | 
 | 490 | 	- Add SCSI_NCR_OPTIMIZE_896_1 compile option and 'optim' boot option. | 
 | 491 | 	  When set, the driver unconditionnaly assumes that the interrupt  | 
 | 492 | 	  handler is called for command completion, then clears INTF, scans  | 
 | 493 | 	  the done queue and returns if some completed CCB is found. If no  | 
 | 494 | 	  completed CCB are found, interrupt handling will proceed normally. | 
 | 495 | 	  With a 896 that handles MA from SCRIPTS, this can be a great win,  | 
 | 496 | 	  since the driver will never performs PCI read transactions, but  | 
 | 497 | 	  only PCI write transactions that may be posted. | 
 | 498 | 	  If the driver haven't to also raise the SIGP this would be perfect. | 
 | 499 | 	  Even with this penalty, I think that this will work great. | 
 | 500 | 	  Obviously this optimization makes sense only if the IRQ is not  | 
 | 501 | 	  shared with another device. | 
 | 502 | 	- Still a buglet in the tags initial settings that needed to be fixed. | 
 | 503 | 	  It was not possible to disable TGQ at system startup for devices  | 
 | 504 | 	  that claim TGQ support. The driver used at least 2 for the queue  | 
 | 505 | 	  depth but did'nt keep track of user settings for tags depth lower  | 
 | 506 | 	  than 2. | 
 | 507 |  | 
 | 508 | Thu Nov 19  23:00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 509 | 	* version pre-sym53c8xx-0.15 | 
 | 510 | 	- Add support for hardware LED control of the 896. | 
 | 511 | 	- Ignore chips that are driven by SISL RAID (DAC 960). | 
 | 512 | 	  Change sent by Leonard Zubkoff and slightly reworked. | 
 | 513 | 	- Prevent 810A rev 11 and 860 rev 1 from using cache line based  | 
 | 514 | 	  transactions since those early chip revisions may use such on  | 
 | 515 | 	  LOAD/STORE instructions (work-around). | 
 | 516 | 	- Remove some useless and bloat code from the pci init stuff. | 
 | 517 | 	- Do not use the readX()/writeX() kernel functions for __i386__,  | 
 | 518 | 	  since they perform useless masking operations in order to deal  | 
 | 519 | 	  with broken driver in 2.1.X kernel. | 
 | 520 |  | 
 | 521 | Wed Nov 11  10:00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 522 | 	* version pre-sym53c8xx-0.14 | 
 | 523 | 	- The driver was unhappy when configured with default_tags > MAX_TAGS | 
 | 524 | 	  Hopefully doubly-fixed. | 
 | 525 | 	- Set PCI_PARITY in PCI_COMMAND register in not set (PCI fix-up). | 
 | 526 | 	- Print out some message if phase mismatch is handled from SCRIPTS. | 
 | 527 |  | 
 | 528 | Sun Nov 1  14H00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 529 | 	* version pre-sym53c8xx-0.13 | 
 | 530 | 	- Some rewrite of the device detection code. This code had been  | 
 | 531 | 	  patched too much and needed to be face-lifted a bit. | 
 | 532 | 	  Remove all platform dependent fix-ups that was not needed or | 
 | 533 | 	  conflicted with some other driver code as work-arounds. | 
 | 534 | 	  Reread the NVRAM before the calling of ncr_attach(). This spares  | 
 | 535 | 	  stack space and so allows to handle more boards. | 
 | 536 | 	  Handle 64 bit base addresses under linux-2.0.X. | 
 | 537 | 	  Set MASTER bit in PCI COMMAND register if not set. | 
 | 538 |  | 
 | 539 | Wed Oct 30 22H00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 540 | 	* version pre-sym53c8xx-0.12 | 
 | 541 | 	- Damned! I just broke the driver for Alpha by leaving a stale  | 
 | 542 | 	  instruction in the source code. Hopefully fixed. | 
 | 543 | 	- Do not set PFEN when it is useless. Doing so we are sure that BOF  | 
 | 544 | 	  will be active, since the manual appears to be very unclear on what  | 
 | 545 | 	  feature is actually used by the chip when both PFEN and BOF are  | 
 | 546 | 	  set. | 
 | 547 |  | 
 | 548 | Sat Oct 24 16H00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 549 | 	* version pre-sym53c8xx-0.11 | 
 | 550 | 	- LOAD/STORE instructions were miscompiled for register offsets  | 
 | 551 | 	  beyond 0x7f. This broke accesses to 896' new registers. | 
 | 552 | 	- Disable by default Phase Mismatch handling from SCRIPTS, since  | 
 | 553 | 	  current 896 rev.1 seems not to operate safely with the driver | 
 | 554 | 	  when this feature is enabled (and above LOAD/STORE fix applied). | 
 | 555 | 	  I will change the default to 'enabled' when this problem will be  | 
 | 556 | 	  solved. | 
 | 557 | 	  Using boot option 'ncr53c8xx=specf:1' enables this feature. | 
 | 558 | 	- Implement a work-around (DEL 472 - ITEM 5) that should allow the  | 
 | 559 | 	  driver to safely enable hardware phase mismatch with 896 rev. 1. | 
 | 560 |  | 
 | 561 | Tue Oct 20 22H00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 562 | 	* version pre-sym53c8xx-0.10 | 
 | 563 | 	- Add the 53c876 description to the chip table. This is only useful  | 
 | 564 | 	  for printing the right name of the controller. | 
 | 565 | 	- Add additional checking of INQUIRY data: | 
 | 566 | 	  Check INQUIRY data received length is at least 7. Byte 7 of  | 
 | 567 | 	  inquiry data contains device features bits and the driver might  | 
 | 568 | 	  be confused by garbage. Also check peripheral qualifier. | 
 | 569 | 	- Use a 1,3,5,...MAXTAGS*2+1 tag numbering. Previous driver could   | 
 | 570 | 	  use any tag number from 1 to 253 and some non conformant devices   | 
 | 571 | 	  might have problems with large tag numbers. | 
 | 572 | 	- Use NAME53C and NAME53C8XX for chip name prefix chip family name. | 
 | 573 | 	  Just give a try using "sym53c" and "sym53c8xx" instead of "ncr53c"  | 
 | 574 | 	  and "ncr53c8xx". :-) | 
 | 575 |  | 
 | 576 | Sun Oct 11 17H00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 577 | 	* version pre-sym53c8xx-0.9 | 
 | 578 | 	- DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15). | 
 | 579 | 	- Break ncr_scatter() into 2 functions in order to guarantee best  | 
 | 580 | 	  possible code optimization for the case we get a scatter list. | 
 | 581 | 	- Add the code intended to support up to 1 tera-byte for 64 bit systems. | 
 | 582 | 	  It is probably too early, but I wanted to complete the thing. | 
 | 583 |  | 
 | 584 | Sat Oct 3 14H00 1998 Gerard Roudier (groudier@club-internet.fr) | 
 | 585 | 	* version pre-sym53c8xx-0.8 | 
 | 586 | 	- Do some testing with io_mapped and fix what needed to be so. | 
 | 587 | 	- Wait for SCSI selection to complete or time-out immediately after  | 
 | 588 | 	  the chip won arbitration, since executing SCRIPTS while the SCSI  | 
 | 589 | 	  core is performing SCSI selection breaks the selection procedure  | 
 | 590 | 	  at least for some chip revisions. | 
 | 591 | 	- Interrupt the SCRIPTS if a device does not go to MSG OUT phase after  | 
 | 592 | 	  having been selected with ATN. Such a situation is not recoverable,  | 
 | 593 | 	  better to fail when we are stuck. |