0001 Sat May 12 12:00 2001 Gerard Roudier (groudier@club-internet.fr)
0002 * version sym53c8xx-1.7.3c
0003 - Ensure LEDC bit in GPCNTL is cleared when reading the NVRAM.
0004 Fix sent by Stig Telfer <stig@api-networks.com>.
0005 - Backport from SYM-2 the work-around that allows to support
0006 hardwares that fail PCI parity checking.
0007 - Check that we received at least 8 bytes of INQUIRY response
0008 for byte 7, that contains device capabilities, to be valid.
0009 - Define scsi_set_pci_device() as nil for kernel < 2.4.4.
0010 - + A couple of minor changes.
0011
0012 Sat Apr 7 19:30 2001 Gerard Roudier (groudier@club-internet.fr)
0013 * version sym53c8xx-1.7.3b
0014 - Fix an unaligned LOAD from scripts (was used as dummy read).
0015 - In ncr_soft_reset(), only try to ABORT the current operation
0016 for chips that support SRUN bit in ISTAT1 and if SCRIPTS are
0017 currently running, as 896 and 1010 manuals suggest.
0018 - In the CCB abort path, do not assume that the CCB is currently
0019 queued to SCRIPTS. This is not always true, notably after a
0020 QUEUE FULL status or when using untagged commands.
0021
0022 Sun Mar 4 18:30 2001 Gerard Roudier (groudier@club-internet.fr)
0023 * version sym53c8xx-1.7.3a
0024 - Fix an issue in the ncr_int_udc() (unexpected disconnect)
0025 handling. If the DSA didn't match a CCB, a bad write to
0026 memory could happen.
0027
0028 Mon Feb 12 22:30 2001 Gerard Roudier (groudier@club-internet.fr)
0029 * version sym53c8xx-1.7.3
0030 - Support for hppa.
0031 Tiny patch sent to me by Robert Hirst.
0032 - Tiny patch for ia64 sent to me by Pamela Delaney.
0033
0034 Tue Feb 6 13:30 2001 Gerard Roudier (groudier@club-internet.fr)
0035 * version sym53c8xx-1.7.3-pre1
0036 - Call pci_enable_device() as AC wants this to be done.
0037 - Get both the BAR cookies used by CPU and actual PCI BAR
0038 values used from SCRIPTS. Recent PCI chips are able to
0039 access themselves using internal cycles, but they compare
0040 BAR values to destination address to make decision.
0041 Earlier chips simply use PCI transactions to access IO
0042 registers from SCRIPTS.
0043 The bus_dvma_to_mem() interface that reverses the actual
0044 PCI BAR value from the BAR cookie is now useless.
0045 This point had been discussed at the list and the solution
0046 got approved by PCI code maintainer (Martin Mares).
0047 - Merge changes for linux-2.4 that declare the host template
0048 in the driver object also when the driver is statically
0049 linked with the kernel.
0050 - Increase SCSI message size up to 12 bytes, given that 8
0051 bytes was not enough for the PPR message (fix).
0052 - Add field 'maxoffs_st' (max offset for ST data transfers).
0053 The C1010 supports offset 62 in DT mode but only 31 in
0054 ST mode, to 2 different values for the max SCSI offset
0055 are needed. Replace the obviously wrong masking of the
0056 offset against 0x1f for ST mode by a lowering to
0057 maxoffs_st of the SCSI offset in ST mode.
0058 - Refine a work-around for the C1010-66. Revision 1 does
0059 not requires extra cycles in DT DATA OUT phase.
0060 - Add a missing endian-ization (abrt_tbl.addr).
0061 - Minor clean-up in the np structure for fields accessed
0062 from SCRIPTS that requires special alignments.
0063
0064 Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr)
0065 * version sym53c8xx-1.7.2
0066 - Remove the hack for PPC added in previous driver version.
0067 - Add FE_DAC feature bit to distinguish between 64 bit PCI
0068 addressing (FE_DAC) and 64 bit PCI interface (FE_64BIT).
0069 - Get rid of the boot command line "ultra:" argument.
0070 This parameter wasn't that clever since we can use "sync:"
0071 for Ultra/Ultra2 settings, and for Ultra3 we may want to
0072 pass PPR options (for now only DT clocking).
0073 - Add FE_VARCLK feature bit that indicates that SCSI clock
0074 frequency may vary depending on board design and thus,
0075 the driver should try to evaluate the SCSI clock.
0076 - Simplify the way the driver determine the SCSI clock:
0077 ULTRA3 -> 160 MHz, ULTRA2 -> 80 MHz otherwise 40 MHz.
0078 Measure the SCSI clock frequency if FE_VARCLK is set.
0079 - Remove FE_CLK80 feature bit that got useless.
0080 - Add support for the SYM53C875A (Pamela Delaney).
0081
0082 Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr)
0083 * version sym53c8xx-1.7.1
0084 - Provide OpenFirmware path through the proc FS on PPC.
0085 - Download of on-chip SRAM using memcpy_toio() doesn't work
0086 on PPC. Restore previous method (MEMORY MOVE from SCRIPTS).
0087 - Remove trailing argument #2 from a couple of #undefs.
0088
0089 Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr)
0090 * version sym53c8xx-1.7.0
0091 - Remove the PROFILE C and SCRIPTS code.
0092 This facility was not this useful and thus was not longer
0093 desirable given the increasing complexity of the driver code.
0094 - Merges from FreeBSD sym-1.6.2 driver:
0095 * Clarify memory barriers needed by the driver for architectures
0096 that implement a weak memory ordering.
0097 * Simpler handling of illegal phases and data overrun from
0098 SCRIPTS. These errors are now immediately reported to
0099 the C code by an interrupt.
0100 * Sync the residual handling code with sym-1.6.2 and now
0101 report `resid' to user for linux version >= 2.3.99
0102 - General cleanup:
0103 Move definitions for barriers and IO/MMIO operations to the
0104 sym53c8xx_defs.h header files. They are now shared by the
0105 both drivers.
0106 Remove unused options that claimed to optimize for the 896.
0107 If fact, they were not this clever. :)
0108 Use SCSI_NCR_IOMAPPED instead of NCR_IOMAPPED.
0109 Remove a couple of unused fields from data structures.
0110
0111 Thu May 11 12:40 2000 Pam Delaney (pam.delaney@lsil.com)
0112 * version sym53c8xx-1.6b
0113 - Merged version.
0114
0115 Mon Apr 24 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
0116 * version sym53c8xx-1.5m
0117 - Return value 1 (instead of 0) from the driver setup routine.
0118 - Do not enable PCI DAC cycles. This just broke support for
0119 SYM534C896 on sparc64. Problem fixed by David S. Miller.
0120
0121 Fri Apr 14 9:00 2000 Pam Delaney (pam.delaney@lsil.com)
0122 * version sym53c8xx-1.6b-9
0123 - Added 53C1010_66 support.
0124 - Small fix to integrity checking code.
0125 - Removed requirement for integrity checking if want to run
0126 at ultra 3.
0127
0128 Sat Apr 1 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
0129 * version sym53c8xx-1.5l
0130 - Tiny change for __sparc__ appeared in 2.3.99-pre4.1 that
0131 applies to cache line size (? Probably from David S Miller).
0132 - Make sure no data transfer will happen for Scsi_Cmnd requests
0133 that supply SCSI_DATA_NONE direction (this avoids some BUG()
0134 statement in the PCI code when a data buffer is also supplied).
0135
0136 Sat Mar 11 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
0137 * version sym53c8xx-1.6b-5
0138 - Test against expected data transfer direction from SCRIPTS.
0139 - Add support for the new dynamic dma mapping kernel interface.
0140 Requires Linux-2.3.47 (tested with pre-2.3.47-6).
0141 Many thanks to David S. Miller for his preliminary changes
0142 that have been useful guidelines.
0143 - Get data transfer direction from the scsi command structure
0144 (Scsi_Cmnd) with kernels that provide this information.
0145
0146 Mon Mar 6 23:30 2000 Gerard Roudier (groudier@club-internet.fr)
0147 * version sym53c8xx-1.5k
0148 - Test against expected data transfer direction from SCRIPTS.
0149 - Revert the change in 'ncr_flush_done_cmds()' but unmap the
0150 scsi dma buffer prior to queueing the command to our done
0151 list.
0152 - Miscellaneous (minor) fixes in the code added in driver
0153 version 1.5j.
0154
0155 Mon Feb 14 4:00 2000 Pam Delaney (pam.delaney@lsil.com)
0156 * version sym53c8xx-pre-1.6b-2.
0157 - Updated the SCRIPTS error handling of the SWIDE
0158 condition - to remove any reads of the sbdl
0159 register. Changes needed because the 896 and 1010
0160 chips will check parity in some special circumstances.
0161 This will cause a parity error interrupt if not in
0162 data phase. Changes based on those made in the
0163 FreeBSD driver version 1.3.2.
0164
0165 Sun Feb 20 11:00 2000 Gerard Roudier (groudier@club-internet.fr)
0166 * version sym53c8xx-1.5j
0167 - Add support for the new dynamic dma mapping kernel interface.
0168 Requires Linux-2.3.47 (tested with pre-2.3.47-6).
0169 Many thanks to David S. Miller for his preliminary changes
0170 that have been useful guidelines, for having reviewed the
0171 code and having tested this driver version on Ultra-Sparc.
0172 - 2 tiny bugs fixed in the PCI wrapper that provides support
0173 for early kernels without pci device structure.
0174 - Get data transfer direction from the scsi command structure
0175 (Scsi_Cmnd) with kernels that provide this information.
0176 - Fix an old bug that only affected 896 rev. 1 when driver
0177 profile support option was set in kernel configuration.
0178
0179 Fri Jan 14 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
0180 * version sym53c8xx-pre-1.6b-1.
0181 - Merge parallel driver series 1.61 and 1.5e
0182
0183 Tue Jan 11 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
0184 * version sym53c8xx-1.61
0185 - Added support for mounting disks on wide-narrow-wide
0186 scsi configurations.
0187 - Modified offset to be a maximum of 31 in ST mode,
0188 62 in DT mode.
0189 - Based off of 1.60
0190
0191 Mon Jan 10 10:00 2000 Pam Delaney (pam.delaney@lsil.com)
0192 * version sym53c8xx-1.60
0193 - Added capability to use the integrity checking code
0194 in the kernel (optional).
0195 - Added PPR negotiation.
0196 - Added support for 53C1010 Ultra 3 part.
0197 - Based off of 1.5f
0198
0199 Sat Jan 8 22:00 2000 Gerard Roudier (groudier@club-internet.fr)
0200 * version sym53c8xx-1.5h
0201 - Add year 2000 copyright.
0202 - Display correctly bus signals when bus is detected wrong.
0203 - Some fix for Sparc from DSM that went directly to kernel tree.
0204
0205 Mon Dec 6 22:00 1999 Gerard Roudier (groudier@club-internet.fr)
0206 * version sym53c8xx-1.5g
0207 - Change messages written by the driver at initialisation and
0208 through the /proc FS (rather cosmetic changes that consist in
0209 printing out the PCI bus number and PCI device/function).
0210 - Ensure the SCRIPTS processor is stopped while calibrating the
0211 SCSI clock (the initialisation code has been a bit reworked).
0212 Change moved to the FreeBSD sym_hipd driver).
0213 - Some fixes in the MODIFY_DP/IGN_RESIDUE code and residual
0214 calculation (moved from FreeBSD sym_hipd driver).
0215 - Add NVRAM support for Tekram boards that use 24C16 EEPROM.
0216 Code moved from the FreeBSD sym_hipd driver, since it has
0217 been that one that got this feature first.
0218 - Definitely disable overlapped PCI arbitration for all dual
0219 function chips, since I cannot make sure for what chip revisions
0220 it is actually safe.
0221 - Add support for the SYM53C1510D (also for ncr53c8xx).
0222 - Fix up properly the PCI latency timer when needed or asked for.
0223 - Get rid of the old PCI bios interface, but preserve kernel 2.0
0224 compatibility from a simple wrapper.
0225 - Update the poor Tekram sync factor table.
0226 - Fix in a tiny 'printk' bug that may oops in case of extended
0227 errors (unrecovered parity error, data overrun, etc ...)
0228 (Sent by Pamela Delaney from LSILOGIC)
0229 - Remove the compilation condition about having to acquire the
0230 io_request_lock since it seems to be a definite feature now.:)
0231 - Change get_pages by GetPages since Linux >= 2.3.27 now wants
0232 get_pages to ever be used as a kernel symbol (from 2.3.27).
0233 - proc_dir structure no longer needed for kernel >= 2.3.27.
0234
0235 Sun Oct 3 19:00 1999 Gerard Roudier (groudier@club-internet.fr)
0236 * version sym53c8xx-1.5f
0237 - Change the way the driver checks the PCI clock frequency, so
0238 that overclocked PCI BUS up to 48 MHz will not be refused.
0239 The more the BUS is overclocked, the less the driver will
0240 guarantee that its measure of the SCSI clock is correct.
0241 - Backport some minor improvements of SCRIPTS from the sym_hipd
0242 driver.
0243 - Backport the code rewrite of the START QUEUE dequeuing (on
0244 bad scsi status received) from the sym_hipd driver.
0245
0246 Sat Sep 11 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
0247 * version sym53c8xx-1.5e
0248 - New linux-2.3.13 __setup scheme support added.
0249 - Cleanup of the extended error status handling:
0250 Use 1 bit per error type.
0251 - Also save the extended error status prior to auto-sense.
0252 - Add the FE_DIFF chip feature bit to indicate support of
0253 diff probing from GPIO3 (825/825A/876/875).
0254 - Remove the quirk handling that has been useless since day one.
0255 - Work-around PCI chips being reported twice on some platforms.
0256 - Add some redundant PCI reads in order to deal with common
0257 bridge misbehaviour regarding posted write flushing.
0258 - Add some other conditionnal code for people who have to deal
0259 with really broken bridges (they will have to edit a source
0260 file to try these options).
0261 - Handle correctly (hopefully) jiffies wrap-around.
0262 - Restore the entry used to detect 875 until revision 0xff.
0263 (I removed it inadvertently, it seems :) )
0264 - Replace __initfunc() which is deprecated stuff by __init which
0265 is not yet so. ;-)
0266 - Rewrite the MESSAGE IN scripts more generic by using a MOVE
0267 table indirect. Extended messages of any size are accepted now.
0268 (Size is limited to 8 for now, but a constant is just to be
0269 increased if necessary)
0270 - Fix some bug in the fully untested MDP handling:) and share
0271 some code between MDP handling and residual calculation.
0272 - Calculate the data transfer residual as the 2's complement
0273 integer (A positive value in returned on data overrun, and
0274 a negative one on underrun).
0275 - Add support of some 'resource handling' for linux-2.3.13.
0276 Basically the BARs have been changed to something more complex
0277 in the pci_dev structure.
0278 - Remove some deprecated code.
0279
0280 Sat Jun 5 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
0281 * version sym53c8xx-1.5c
0282 - Do not negotiate on auto-sense if we are currently using 8 bit
0283 async transfer for the target.
0284 - Only check for SISL/RAID on i386 platforms.
0285 (A problem has been reported on PPC with that code).
0286 - On MSG REJECT for a negotiation, the driver attempted to restart
0287 the SCRIPT processor when this one was already running.
0288
0289 Sat May 29 12:00 1999 Gerard Roudier (groudier@club-internet.fr)
0290 * version sym53c8xx-1.5b
0291 - Force negotiation prior auto-sense.
0292 This ensures that the driver will be able to grab the sense data
0293 from a device that has received a BUS DEVICE RESET message from
0294 another initiator.
0295 - Complete all disconnected CCBs for a logical UNIT if we are told
0296 about a UNIT ATTENTION for a RESET condition by this target.
0297 - Add the control command 'cleardev' that allows to send a ABORT
0298 message to a logical UNIT (for test purpose).
0299
0300 Tue May 25 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
0301 * version sym53c8xx-1.5a
0302 - Add support for task abort and bus device reset SCSI message
0303 and implement proper synchonisation with SCRIPTS to handle
0304 correctly task abortion without races.
0305 - Send an ABORT message (if untagged) or ABORT TAG message (if tagged)
0306 when the driver is told to abort a command that is disconnected and
0307 complete the command with appropriate error.
0308 If the aborted command is not yet started, remove it from the start
0309 queue and complete it with error.
0310 - Add the control command 'resetdev' that allows to send a BUS
0311 DEVICE RESET message to a target (for test purpose).
0312 - Clean-up some unused or useless code.
0313
0314 Fri May 21 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
0315 * version sym53c8xx-1.5
0316 - Add support for CHMOV with Wide controllers.
0317 - Handling of the SWIDE (low byte residue at the end of a CHMOV
0318 in DATA IN phase with WIDE transfer when the byte count gets odd).
0319 - Handling of the IGNORE WIDE RESIDUE message.
0320 Handled from SCRIPTS as possible with some optimizations when both
0321 a wide device and the controller are odd at the same time (SWIDE
0322 present and IGNORE WIDE RESIDUE message on the BUS at the same time).
0323 - Check against data OVERRUN/UNDERRUN condition at the end of a data
0324 transfer, whatever a SWIDE is present (OVERRUN in DATA IN phase)
0325 or the SODL is full (UNDERRUN in DATA out phase).
0326 - Handling of the MODIFY DATA POINTER message.
0327 This one cannot be handled from SCRIPTS, but hopefully it will not
0328 happen very often. :)
0329 - Large rewrite of the SCSI MESSAGE handling.
0330
0331 Sun May 9 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
0332 * version sym53c8xx-1.4
0333 - Support for IMMEDIATE ARBITRATION.
0334 See the README file for detailed information about this feature.
0335 Requires both a compile option and a boot option.
0336 - Minor SCRIPTS optimization in reselection pattern for LUN 0.
0337 - Simpler algorithm to deal with SCSI command starvation.
0338 Just use 2 tag counters in flip/flop and switch to the other
0339 one every 3 seconds.
0340 - Do some work in SCRIPTS after the SELECT instruction and prior
0341 to testing for a PHASE. SYMBIOS say this feature is working fine.
0342 (Btw, only problems with Toshiba 3401B had been reported).
0343 - Measure the PCI clock speed and do not attach controllers if
0344 result is greater than 37 MHz. Since the precision of the
0345 algorithm (from Stefan Esser) is better than 2%, this should
0346 be fine.
0347 - Fix the misdetection of SYM53C875E (was detected as a 876).
0348 - Fix the misdetection of SYM53C810 not A (was detected as a 810A).
0349 - Support for up to 256 TAGS per LUN (CMD_PER_LUN).
0350 Currently limited to 255 due to Linux limitation. :)
0351 - Support for up to 508 active commands (CAN_QUEUE).
0352 - Support for the 53C895A by Pamela Delaney <pam.delaney@lsil.com>
0353 The 53C895A contains all of the features of the 896 but has only
0354 one channel and has a 32 bit PCI bus. It does 64 bit PCI addressing
0355 using dual cycle PCI data transfers.
0356 - Miscellaneous minor fixes.
0357 - Some additions to the README.ncr53c8xx file.
0358
0359 Tue Apr 15 10:00 1999 Gerard Roudier (groudier@club-internet.fr)
0360 * version sym53c8xx-1.3e
0361 - Support for any number of LUNs (64) (SPI2-compliant).
0362 (Btw, this may only be ever useful under linux-2.2 ;-))
0363
0364 Sun Apr 11 10:00 1999 Gerard Roudier (groudier@club-internet.fr)
0365 * version sym53c8xx-1.3d
0366 - Add 'hostid:#id' boot option. This option allows to change the
0367 default SCSI id the driver uses for controllers.
0368 - Make SCRIPTS not use self-mastering for PCI.
0369 There were still 2 places the driver used this feature of the
0370 53C8XX family.
0371 - Move some data structures (nvram layouts and driver set-up) to
0372 the sym53c8xx_defs.h file. So, the both drivers will share them.
0373 - Set MAX LUNS to 16 (instead of 8).
0374
0375 Sat Mar 20 21:00 1999 Gerard Roudier (groudier@club-internet.fr)
0376 * version sym53c8xx-1.3b
0377 - Add support for NCR PQS PDS.
0378 James Bottomley <James.Bottomley@columbiasc.ncr.com>
0379 - Allow value 0 for host ID.
0380 - Support more than 8 controllers (> 40 in fact :-) )
0381 - Add 'excl=#ioaddr' boot option: exclude controller.
0382 (Version 1.3a driver)
0383
0384 Thu Mar 11 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
0385 * version sym53c8xx-1.3 (8xx-896 driver bundle)
0386 - Equivalent changes as ncr53c8xx-3.2 due to the driver bundle.
0387 (See Changelog.ncr53c8xx)
0388 - Do a normal soft reset as first chip reset, since aborting current
0389 operation may raise an interrupt we are not able to handle since
0390 the interrupt handler is not yet established.
0391
0392 Sat Mar 6 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
0393 * version sym53c8xx-1.2b
0394 - Fix some oooold bug that hangs the bus if a device rejects a
0395 negotiation. Btw, the corresponding stuff also needed some cleanup
0396 and thus the change is a bit larger than it could have been.
0397 - Still some typo that made compilation fail for 64 bit (trivial fix).
0398
0399 Sun Feb 21 20:00 1999 Gerard Roudier (groudier@club-internet.fr)
0400 * version sym53c8xx-1.2a
0401 - The rewrite of the interrupt handling broke the SBMC interrupt
0402 handling due to a 1 bit mask tiny error. Hopefully fixed.
0403 - If INQUIRY came from a scatter list, the driver looked into
0404 the scatterlist instead of the data.:) Since this should never
0405 happen, we just discard the data if use_sg is not zero.
0406
0407 Fri Feb 12 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
0408 * version sym53c8xx-1.2
0409 - Major rewrite of the interrupt handling and recovery stuff for
0410 the support of non compliant SCSI removal, insertion and all
0411 kinds of screw-up that may happen on the SCSI BUS.
0412 Hopefully, the driver is now unbreakable or may-be, it is just
0413 quite brocken. :-)
0414 Many thanks to Johnson Russel (Symbios) for having responded to
0415 my questions and for his interesting advices and comments about
0416 support of SCSI hot-plug.
0417 - Add 'recovery' option to driver set-up.
0418 - Negotiate SYNC data transfers with CCS devices.
0419 - Deal correctly with 64 bit PCI address registers on Linux 2.2.
0420 Pointed out by Leonard Zubkoff.
0421
0422 Sun Jan 31 18:00 1999 Gerard Roudier (groudier@club-internet.fr)
0423 * version sym53c8xx-1.1a
0424 - Some 896 chip revisions (all for now :-)), may hang-up if the
0425 soft reset bit is set at the wrong time while SCRIPTS are running.
0426 We need to first abort the current SCRIPTS operation prior to
0427 resetting the chip. This fix has been sent to me by SYMBIOS/LSI
0428 and I just translated it into ncr53c8xx syntax.
0429 Must be considered 100 % trustable, unless I did some mistake
0430 when translating it. :-)
0431
0432 Sun Jan 24 18:00 1999 Gerard Roudier (groudier@club-internet.fr)
0433 * version sym53c8xx-1.1
0434 - Major rewrite of the SCSI parity error handling.
0435 The informations contained in the data manuals are incomplete about
0436 this feature.
0437 I asked SYMBIOS about and got in reply the explanations that are
0438 _indeed_ missing in the data manuals.
0439 - Allow to tune request_irq() flags from the boot command line using
0440 ncr53c8xx=irqm:??, as follows:
0441 a) If bit 0x10 is set in irqm, SA_SHIRQ flag is not used.
0442 b) If bit 0x20 is set in irqm, SA_INTERRUPT flag is not used.
0443 By default the driver uses both SA_SHIRQ and SA_INTERRUPT.
0444 Option 'ncr53c8xx=irqm:0x20' may be used when an IRQ is shared by
0445 a 53C8XX adapter and a network board.
0446 - Fix for 64 bit PCI address register calculation. (Lance Robinson)
0447 - Fix for big-endian in phase mismatch handling. (Michal Jaegermann)
0448
0449 Fri Jan 1 20:00 1999 Gerard Roudier (groudier@club-internet.fr)
0450 * version sym53c8xx-1.0a
0451 - Waiting list look-up didn't work for the first command of the list.
0452 Hopefully fixed, but tested on paper only. ;)
0453 - Remove the most part of PPC specific code for Linux-2.2.
0454 Thanks to Cort.
0455 - Some other minors changes.
0456
0457 Sat Dec 19 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
0458 * version sym53c8xx-1.0
0459 - Define some new IO registers for the 896 (istat1, mbox0, mbox1)
0460 - Revamp slightly the Symbios NVRAM lay-out based on the excerpt of
0461 the header file I received from Symbios.
0462 - Check the PCI bus number for the boot order (Using a fast
0463 PCI controller behing a PCI-PCI bridge seems sub-optimal).
0464 - Disable overlapped PCI arbitration for the 896 revision 1.
0465 - Reduce a bit the number of IO register reads for phase mismatch
0466 by reading DWORDS at a time instead of BYTES.
0467
0468 Thu Dec 3 24:00 1998 Gerard Roudier (groudier@club-internet.fr)
0469 * version pre-sym53c8xx-0.18
0470 - I received this afternoon a 896 from SYMBIOS and started testing
0471 the driver with this beast. After having fixed 3 buglets, it worked
0472 with all features enabled including the phase mismatch handling
0473 from SCRIPTS. Since this feature is not yet tested enough, the
0474 boot option 'ncr53c8xx=specf:1' is still required to enable the
0475 driver to handle PM from SCRIPTS.
0476
0477 Sun Nov 29 18:00 1998 Gerard Roudier (groudier@club-internet.fr)
0478 * version pre-sym53c8xx-0.17
0479 - The SISL RAID change requires now remap_pci_mem() stuff to be
0480 compiled for __i386__ when normal IOs are used.
0481 - The PCI memory read from SCRIPTS that should ensure ordering
0482 was in fact misplaced. BTW, this may explain why broken PCI
0483 device drivers regarding ordering are working so well. ;-)
0484 - Rewrite ncr53c8xx_setup (boot command line options) since the
0485 binary code was a bit too bloated in my opinion.
0486 - Make the code simpler in the wakeup_done routine.
0487
0488 Tue Nov 24 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
0489 * version pre-sym53c8xx-0.16
0490 - Add SCSI_NCR_OPTIMIZE_896_1 compile option and 'optim' boot option.
0491 When set, the driver unconditionnaly assumes that the interrupt
0492 handler is called for command completion, then clears INTF, scans
0493 the done queue and returns if some completed CCB is found. If no
0494 completed CCB are found, interrupt handling will proceed normally.
0495 With a 896 that handles MA from SCRIPTS, this can be a great win,
0496 since the driver will never performs PCI read transactions, but
0497 only PCI write transactions that may be posted.
0498 If the driver haven't to also raise the SIGP this would be perfect.
0499 Even with this penalty, I think that this will work great.
0500 Obviously this optimization makes sense only if the IRQ is not
0501 shared with another device.
0502 - Still a buglet in the tags initial settings that needed to be fixed.
0503 It was not possible to disable TGQ at system startup for devices
0504 that claim TGQ support. The driver used at least 2 for the queue
0505 depth but did'nt keep track of user settings for tags depth lower
0506 than 2.
0507
0508 Thu Nov 19 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
0509 * version pre-sym53c8xx-0.15
0510 - Add support for hardware LED control of the 896.
0511 - Ignore chips that are driven by SISL RAID (DAC 960).
0512 Change sent by Leonard Zubkoff and slightly reworked.
0513 - Prevent 810A rev 11 and 860 rev 1 from using cache line based
0514 transactions since those early chip revisions may use such on
0515 LOAD/STORE instructions (work-around).
0516 - Remove some useless and bloat code from the pci init stuff.
0517 - Do not use the readX()/writeX() kernel functions for __i386__,
0518 since they perform useless masking operations in order to deal
0519 with broken driver in 2.1.X kernel.
0520
0521 Wed Nov 11 10:00 1998 Gerard Roudier (groudier@club-internet.fr)
0522 * version pre-sym53c8xx-0.14
0523 - The driver was unhappy when configured with default_tags > MAX_TAGS
0524 Hopefully doubly-fixed.
0525 - Set PCI_PARITY in PCI_COMMAND register in not set (PCI fix-up).
0526 - Print out some message if phase mismatch is handled from SCRIPTS.
0527
0528 Sun Nov 1 14H00 1998 Gerard Roudier (groudier@club-internet.fr)
0529 * version pre-sym53c8xx-0.13
0530 - Some rewrite of the device detection code. This code had been
0531 patched too much and needed to be face-lifted a bit.
0532 Remove all platform dependent fix-ups that was not needed or
0533 conflicted with some other driver code as work-arounds.
0534 Reread the NVRAM before the calling of ncr_attach(). This spares
0535 stack space and so allows to handle more boards.
0536 Handle 64 bit base addresses under linux-2.0.X.
0537 Set MASTER bit in PCI COMMAND register if not set.
0538
0539 Wed Oct 30 22H00 1998 Gerard Roudier (groudier@club-internet.fr)
0540 * version pre-sym53c8xx-0.12
0541 - Damned! I just broke the driver for Alpha by leaving a stale
0542 instruction in the source code. Hopefully fixed.
0543 - Do not set PFEN when it is useless. Doing so we are sure that BOF
0544 will be active, since the manual appears to be very unclear on what
0545 feature is actually used by the chip when both PFEN and BOF are
0546 set.
0547
0548 Sat Oct 24 16H00 1998 Gerard Roudier (groudier@club-internet.fr)
0549 * version pre-sym53c8xx-0.11
0550 - LOAD/STORE instructions were miscompiled for register offsets
0551 beyond 0x7f. This broke accesses to 896' new registers.
0552 - Disable by default Phase Mismatch handling from SCRIPTS, since
0553 current 896 rev.1 seems not to operate safely with the driver
0554 when this feature is enabled (and above LOAD/STORE fix applied).
0555 I will change the default to 'enabled' when this problem will be
0556 solved.
0557 Using boot option 'ncr53c8xx=specf:1' enables this feature.
0558 - Implement a work-around (DEL 472 - ITEM 5) that should allow the
0559 driver to safely enable hardware phase mismatch with 896 rev. 1.
0560
0561 Tue Oct 20 22H00 1998 Gerard Roudier (groudier@club-internet.fr)
0562 * version pre-sym53c8xx-0.10
0563 - Add the 53c876 description to the chip table. This is only useful
0564 for printing the right name of the controller.
0565 - Add additional checking of INQUIRY data:
0566 Check INQUIRY data received length is at least 7. Byte 7 of
0567 inquiry data contains device features bits and the driver might
0568 be confused by garbage. Also check peripheral qualifier.
0569 - Use a 1,3,5,...MAXTAGS*2+1 tag numbering. Previous driver could
0570 use any tag number from 1 to 253 and some non conformant devices
0571 might have problems with large tag numbers.
0572 - Use NAME53C and NAME53C8XX for chip name prefix chip family name.
0573 Just give a try using "sym53c" and "sym53c8xx" instead of "ncr53c"
0574 and "ncr53c8xx". :-)
0575
0576 Sun Oct 11 17H00 1998 Gerard Roudier (groudier@club-internet.fr)
0577 * version pre-sym53c8xx-0.9
0578 - DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15).
0579 - Break ncr_scatter() into 2 functions in order to guarantee best
0580 possible code optimization for the case we get a scatter list.
0581 - Add the code intended to support up to 1 tera-byte for 64 bit systems.
0582 It is probably too early, but I wanted to complete the thing.
0583
0584 Sat Oct 3 14H00 1998 Gerard Roudier (groudier@club-internet.fr)
0585 * version pre-sym53c8xx-0.8
0586 - Do some testing with io_mapped and fix what needed to be so.
0587 - Wait for SCSI selection to complete or time-out immediately after
0588 the chip won arbitration, since executing SCRIPTS while the SCSI
0589 core is performing SCSI selection breaks the selection procedure
0590 at least for some chip revisions.
0591 - Interrupt the SCRIPTS if a device does not go to MSG OUT phase after
0592 having been selected with ATN. Such a situation is not recoverable,
0593 better to fail when we are stuck.