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 |
| 84 | - Provide OpenFirmare path through the proc FS on PPC. |
| 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. |