123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594 |
- Sat May 12 12:00 2001 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.7.3c
- - Ensure LEDC bit in GPCNTL is cleared when reading the NVRAM.
- Fix sent by Stig Telfer <stig@api-networks.com>.
- - Backport from SYM-2 the work-around that allows to support
- hardwares that fail PCI parity checking.
- - Check that we received at least 8 bytes of INQUIRY response
- for byte 7, that contains device capabilities, to be valid.
- - Define scsi_set_pci_device() as nil for kernel < 2.4.4.
- - + A couple of minor changes.
-
- Sat Apr 7 19:30 2001 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.7.3b
- - Fix an unaligned LOAD from scripts (was used as dummy read).
- - In ncr_soft_reset(), only try to ABORT the current operation
- for chips that support SRUN bit in ISTAT1 and if SCRIPTS are
- currently running, as 896 and 1010 manuals suggest.
- - In the CCB abort path, do not assume that the CCB is currently
- queued to SCRIPTS. This is not always true, notably after a
- QUEUE FULL status or when using untagged commands.
- Sun Mar 4 18:30 2001 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.7.3a
- - Fix an issue in the ncr_int_udc() (unexpected disconnect)
- handling. If the DSA didn't match a CCB, a bad write to
- memory could happen.
- Mon Feb 12 22:30 2001 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.7.3
- - Support for hppa.
- Tiny patch sent to me by Robert Hirst.
- - Tiny patch for ia64 sent to me by Pamela Delaney.
- Tue Feb 6 13:30 2001 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.7.3-pre1
- - Call pci_enable_device() as AC wants this to be done.
- - Get both the BAR cookies used by CPU and actual PCI BAR
- values used from SCRIPTS. Recent PCI chips are able to
- access themselves using internal cycles, but they compare
- BAR values to destination address to make decision.
- Earlier chips simply use PCI transactions to access IO
- registers from SCRIPTS.
- The bus_dvma_to_mem() interface that reverses the actual
- PCI BAR value from the BAR cookie is now useless.
- This point had been discussed at the list and the solution
- got approved by PCI code maintainer (Martin Mares).
- - Merge changes for linux-2.4 that declare the host template
- in the driver object also when the driver is statically
- linked with the kernel.
- - Increase SCSI message size up to 12 bytes, given that 8
- bytes was not enough for the PPR message (fix).
- - Add field 'maxoffs_st' (max offset for ST data transfers).
- The C1010 supports offset 62 in DT mode but only 31 in
- ST mode, to 2 different values for the max SCSI offset
- are needed. Replace the obviously wrong masking of the
- offset against 0x1f for ST mode by a lowering to
- maxoffs_st of the SCSI offset in ST mode.
- - Refine a work-around for the C1010-66. Revision 1 does
- not requires extra cycles in DT DATA OUT phase.
- - Add a missing endian-ization (abrt_tbl.addr).
- - Minor clean-up in the np structure for fields accessed
- from SCRIPTS that requires special alignments.
- Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.7.2
- - Remove the hack for PPC added in previous driver version.
- - Add FE_DAC feature bit to distinguish between 64 bit PCI
- addressing (FE_DAC) and 64 bit PCI interface (FE_64BIT).
- - Get rid of the boot command line "ultra:" argument.
- This parameter wasn't that clever since we can use "sync:"
- for Ultra/Ultra2 settings, and for Ultra3 we may want to
- pass PPR options (for now only DT clocking).
- - Add FE_VARCLK feature bit that indicates that SCSI clock
- frequency may vary depending on board design and thus,
- the driver should try to evaluate the SCSI clock.
- - Simplify the way the driver determine the SCSI clock:
- ULTRA3 -> 160 MHz, ULTRA2 -> 80 MHz otherwise 40 MHz.
- Measure the SCSI clock frequency if FE_VARCLK is set.
- - Remove FE_CLK80 feature bit that got useless.
- - Add support for the SYM53C875A (Pamela Delaney).
- Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.7.1
- - Provide OpenFirmware path through the proc FS on PPC.
- - Download of on-chip SRAM using memcpy_toio() doesn't work
- on PPC. Restore previous method (MEMORY MOVE from SCRIPTS).
- - Remove trailing argument #2 from a couple of #undefs.
- Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.7.0
- - Remove the PROFILE C and SCRIPTS code.
- This facility was not this useful and thus was not longer
- desirable given the increasing complexity of the driver code.
- - Merges from FreeBSD sym-1.6.2 driver:
- * Clarify memory barriers needed by the driver for architectures
- that implement a weak memory ordering.
- * Simpler handling of illegal phases and data overrun from
- SCRIPTS. These errors are now immediately reported to
- the C code by an interrupt.
- * Sync the residual handling code with sym-1.6.2 and now
- report `resid' to user for linux version >= 2.3.99
- - General cleanup:
- Move definitions for barriers and IO/MMIO operations to the
- sym53c8xx_defs.h header files. They are now shared by the
- both drivers.
- Remove unused options that claimed to optimize for the 896.
- If fact, they were not this clever. :)
- Use SCSI_NCR_IOMAPPED instead of NCR_IOMAPPED.
- Remove a couple of unused fields from data structures.
- Thu May 11 12:40 2000 Pam Delaney (pam.delaney@lsil.com)
- * version sym53c8xx-1.6b
- - Merged version.
- Mon Apr 24 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5m
- - Return value 1 (instead of 0) from the driver setup routine.
- - Do not enable PCI DAC cycles. This just broke support for
- SYM534C896 on sparc64. Problem fixed by David S. Miller.
- Fri Apr 14 9:00 2000 Pam Delaney (pam.delaney@lsil.com)
- * version sym53c8xx-1.6b-9
- - Added 53C1010_66 support.
- - Small fix to integrity checking code.
- - Removed requirement for integrity checking if want to run
- at ultra 3.
-
- Sat Apr 1 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5l
- - Tiny change for __sparc__ appeared in 2.3.99-pre4.1 that
- applies to cache line size (? Probably from David S Miller).
- - Make sure no data transfer will happen for Scsi_Cmnd requests
- that supply SCSI_DATA_NONE direction (this avoids some BUG()
- statement in the PCI code when a data buffer is also supplied).
- Sat Mar 11 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.6b-5
- - Test against expected data transfer direction from SCRIPTS.
- - Add support for the new dynamic dma mapping kernel interface.
- Requires Linux-2.3.47 (tested with pre-2.3.47-6).
- Many thanks to David S. Miller for his preliminary changes
- that have been useful guidelines.
- - Get data transfer direction from the scsi command structure
- (Scsi_Cmnd) with kernels that provide this information.
- Mon Mar 6 23:30 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5k
- - Test against expected data transfer direction from SCRIPTS.
- - Revert the change in 'ncr_flush_done_cmds()' but unmap the
- scsi dma buffer prior to queueing the command to our done
- list.
- - Miscellaneous (minor) fixes in the code added in driver
- version 1.5j.
- Mon Feb 14 4:00 2000 Pam Delaney (pam.delaney@lsil.com)
- * version sym53c8xx-pre-1.6b-2.
- - Updated the SCRIPTS error handling of the SWIDE
- condition - to remove any reads of the sbdl
- register. Changes needed because the 896 and 1010
- chips will check parity in some special circumstances.
- This will cause a parity error interrupt if not in
- data phase. Changes based on those made in the
- FreeBSD driver version 1.3.2.
- Sun Feb 20 11:00 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5j
- - Add support for the new dynamic dma mapping kernel interface.
- Requires Linux-2.3.47 (tested with pre-2.3.47-6).
- Many thanks to David S. Miller for his preliminary changes
- that have been useful guidelines, for having reviewed the
- code and having tested this driver version on Ultra-Sparc.
- - 2 tiny bugs fixed in the PCI wrapper that provides support
- for early kernels without pci device structure.
- - Get data transfer direction from the scsi command structure
- (Scsi_Cmnd) with kernels that provide this information.
- - Fix an old bug that only affected 896 rev. 1 when driver
- profile support option was set in kernel configuration.
- Fri Jan 14 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
- * version sym53c8xx-pre-1.6b-1.
- - Merge parallel driver series 1.61 and 1.5e
- Tue Jan 11 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
- * version sym53c8xx-1.61
- - Added support for mounting disks on wide-narrow-wide
- scsi configurations.
- - Modified offset to be a maximum of 31 in ST mode,
- 62 in DT mode.
- - Based off of 1.60
- Mon Jan 10 10:00 2000 Pam Delaney (pam.delaney@lsil.com)
- * version sym53c8xx-1.60
- - Added capability to use the integrity checking code
- in the kernel (optional).
- - Added PPR negotiation.
- - Added support for 53C1010 Ultra 3 part.
- - Based off of 1.5f
- Sat Jan 8 22:00 2000 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5h
- - Add year 2000 copyright.
- - Display correctly bus signals when bus is detected wrong.
- - Some fix for Sparc from DSM that went directly to kernel tree.
- Mon Dec 6 22:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5g
- - Change messages written by the driver at initialisation and
- through the /proc FS (rather cosmetic changes that consist in
- printing out the PCI bus number and PCI device/function).
- - Ensure the SCRIPTS processor is stopped while calibrating the
- SCSI clock (the initialisation code has been a bit reworked).
- Change moved to the FreeBSD sym_hipd driver).
- - Some fixes in the MODIFY_DP/IGN_RESIDUE code and residual
- calculation (moved from FreeBSD sym_hipd driver).
- - Add NVRAM support for Tekram boards that use 24C16 EEPROM.
- Code moved from the FreeBSD sym_hipd driver, since it has
- been that one that got this feature first.
- - Definitely disable overlapped PCI arbitration for all dual
- function chips, since I cannot make sure for what chip revisions
- it is actually safe.
- - Add support for the SYM53C1510D (also for ncr53c8xx).
- - Fix up properly the PCI latency timer when needed or asked for.
- - Get rid of the old PCI bios interface, but preserve kernel 2.0
- compatibility from a simple wrapper.
- - Update the poor Tekram sync factor table.
- - Fix in a tiny 'printk' bug that may oops in case of extended
- errors (unrecovered parity error, data overrun, etc ...)
- (Sent by Pamela Delaney from LSILOGIC)
- - Remove the compilation condition about having to acquire the
- io_request_lock since it seems to be a definite feature now.:)
- - Change get_pages by GetPages since Linux >= 2.3.27 now wants
- get_pages to ever be used as a kernel symbol (from 2.3.27).
- - proc_dir structure no longer needed for kernel >= 2.3.27.
- Sun Oct 3 19:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5f
- - Change the way the driver checks the PCI clock frequency, so
- that overclocked PCI BUS up to 48 MHz will not be refused.
- The more the BUS is overclocked, the less the driver will
- guarantee that its measure of the SCSI clock is correct.
- - Backport some minor improvements of SCRIPTS from the sym_hipd
- driver.
- - Backport the code rewrite of the START QUEUE dequeuing (on
- bad scsi status received) from the sym_hipd driver.
- Sat Sep 11 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5e
- - New linux-2.3.13 __setup scheme support added.
- - Cleanup of the extended error status handling:
- Use 1 bit per error type.
- - Also save the extended error status prior to auto-sense.
- - Add the FE_DIFF chip feature bit to indicate support of
- diff probing from GPIO3 (825/825A/876/875).
- - Remove the quirk handling that has been useless since day one.
- - Work-around PCI chips being reported twice on some platforms.
- - Add some redundant PCI reads in order to deal with common
- bridge misbehaviour regarding posted write flushing.
- - Add some other conditionnal code for people who have to deal
- with really broken bridges (they will have to edit a source
- file to try these options).
- - Handle correctly (hopefully) jiffies wrap-around.
- - Restore the entry used to detect 875 until revision 0xff.
- (I removed it inadvertently, it seems :) )
- - Replace __initfunc() which is deprecated stuff by __init which
- is not yet so. ;-)
- - Rewrite the MESSAGE IN scripts more generic by using a MOVE
- table indirect. Extended messages of any size are accepted now.
- (Size is limited to 8 for now, but a constant is just to be
- increased if necessary)
- - Fix some bug in the fully untested MDP handling:) and share
- some code between MDP handling and residual calculation.
- - Calculate the data transfer residual as the 2's complement
- integer (A positive value in returned on data overrun, and
- a negative one on underrun).
- - Add support of some 'resource handling' for linux-2.3.13.
- Basically the BARs have been changed to something more complex
- in the pci_dev structure.
- - Remove some deprecated code.
- Sat Jun 5 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5c
- - Do not negotiate on auto-sense if we are currently using 8 bit
- async transfer for the target.
- - Only check for SISL/RAID on i386 platforms.
- (A problem has been reported on PPC with that code).
- - On MSG REJECT for a negotiation, the driver attempted to restart
- the SCRIPT processor when this one was already running.
- Sat May 29 12:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5b
- - Force negotiation prior auto-sense.
- This ensures that the driver will be able to grab the sense data
- from a device that has received a BUS DEVICE RESET message from
- another initiator.
- - Complete all disconnected CCBs for a logical UNIT if we are told
- about a UNIT ATTENTION for a RESET condition by this target.
- - Add the control command 'cleardev' that allows to send a ABORT
- message to a logical UNIT (for test purpose).
- Tue May 25 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5a
- - Add support for task abort and bus device reset SCSI message
- and implement proper synchonisation with SCRIPTS to handle
- correctly task abortion without races.
- - Send an ABORT message (if untagged) or ABORT TAG message (if tagged)
- when the driver is told to abort a command that is disconnected and
- complete the command with appropriate error.
- If the aborted command is not yet started, remove it from the start
- queue and complete it with error.
- - Add the control command 'resetdev' that allows to send a BUS
- DEVICE RESET message to a target (for test purpose).
- - Clean-up some unused or useless code.
- Fri May 21 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.5
- - Add support for CHMOV with Wide controllers.
- - Handling of the SWIDE (low byte residue at the end of a CHMOV
- in DATA IN phase with WIDE transfer when the byte count gets odd).
- - Handling of the IGNORE WIDE RESIDUE message.
- Handled from SCRIPTS as possible with some optimizations when both
- a wide device and the controller are odd at the same time (SWIDE
- present and IGNORE WIDE RESIDUE message on the BUS at the same time).
- - Check against data OVERRUN/UNDERRUN condition at the end of a data
- transfer, whatever a SWIDE is present (OVERRUN in DATA IN phase)
- or the SODL is full (UNDERRUN in DATA out phase).
- - Handling of the MODIFY DATA POINTER message.
- This one cannot be handled from SCRIPTS, but hopefully it will not
- happen very often. :)
- - Large rewrite of the SCSI MESSAGE handling.
- Sun May 9 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.4
- - Support for IMMEDIATE ARBITRATION.
- See the README file for detailed information about this feature.
- Requires both a compile option and a boot option.
- - Minor SCRIPTS optimization in reselection pattern for LUN 0.
- - Simpler algorithm to deal with SCSI command starvation.
- Just use 2 tag counters in flip/flop and switch to the other
- one every 3 seconds.
- - Do some work in SCRIPTS after the SELECT instruction and prior
- to testing for a PHASE. SYMBIOS say this feature is working fine.
- (Btw, only problems with Toshiba 3401B had been reported).
- - Measure the PCI clock speed and do not attach controllers if
- result is greater than 37 MHz. Since the precision of the
- algorithm (from Stefan Esser) is better than 2%, this should
- be fine.
- - Fix the misdetection of SYM53C875E (was detected as a 876).
- - Fix the misdetection of SYM53C810 not A (was detected as a 810A).
- - Support for up to 256 TAGS per LUN (CMD_PER_LUN).
- Currently limited to 255 due to Linux limitation. :)
- - Support for up to 508 active commands (CAN_QUEUE).
- - Support for the 53C895A by Pamela Delaney <pam.delaney@lsil.com>
- The 53C895A contains all of the features of the 896 but has only
- one channel and has a 32 bit PCI bus. It does 64 bit PCI addressing
- using dual cycle PCI data transfers.
- - Miscellaneous minor fixes.
- - Some additions to the README.ncr53c8xx file.
- Tue Apr 15 10:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.3e
- - Support for any number of LUNs (64) (SPI2-compliant).
- (Btw, this may only be ever useful under linux-2.2 ;-))
- Sun Apr 11 10:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.3d
- - Add 'hostid:#id' boot option. This option allows to change the
- default SCSI id the driver uses for controllers.
- - Make SCRIPTS not use self-mastering for PCI.
- There were still 2 places the driver used this feature of the
- 53C8XX family.
- - Move some data structures (nvram layouts and driver set-up) to
- the sym53c8xx_defs.h file. So, the both drivers will share them.
- - Set MAX LUNS to 16 (instead of 8).
- Sat Mar 20 21:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.3b
- - Add support for NCR PQS PDS.
- James Bottomley <James.Bottomley@columbiasc.ncr.com>
- - Allow value 0 for host ID.
- - Support more than 8 controllers (> 40 in fact :-) )
- - Add 'excl=#ioaddr' boot option: exclude controller.
- (Version 1.3a driver)
- Thu Mar 11 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.3 (8xx-896 driver bundle)
- - Equivalent changes as ncr53c8xx-3.2 due to the driver bundle.
- (See Changelog.ncr53c8xx)
- - Do a normal soft reset as first chip reset, since aborting current
- operation may raise an interrupt we are not able to handle since
- the interrupt handler is not yet established.
- Sat Mar 6 11:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.2b
- - Fix some oooold bug that hangs the bus if a device rejects a
- negotiation. Btw, the corresponding stuff also needed some cleanup
- and thus the change is a bit larger than it could have been.
- - Still some typo that made compilation fail for 64 bit (trivial fix).
- Sun Feb 21 20:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.2a
- - The rewrite of the interrupt handling broke the SBMC interrupt
- handling due to a 1 bit mask tiny error. Hopefully fixed.
- - If INQUIRY came from a scatter list, the driver looked into
- the scatterlist instead of the data.:) Since this should never
- happen, we just discard the data if use_sg is not zero.
- Fri Feb 12 23:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.2
- - Major rewrite of the interrupt handling and recovery stuff for
- the support of non compliant SCSI removal, insertion and all
- kinds of screw-up that may happen on the SCSI BUS.
- Hopefully, the driver is now unbreakable or may-be, it is just
- quite brocken. :-)
- Many thanks to Johnson Russel (Symbios) for having responded to
- my questions and for his interesting advices and comments about
- support of SCSI hot-plug.
- - Add 'recovery' option to driver set-up.
- - Negotiate SYNC data transfers with CCS devices.
- - Deal correctly with 64 bit PCI address registers on Linux 2.2.
- Pointed out by Leonard Zubkoff.
- Sun Jan 31 18:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.1a
- - Some 896 chip revisions (all for now :-)), may hang-up if the
- soft reset bit is set at the wrong time while SCRIPTS are running.
- We need to first abort the current SCRIPTS operation prior to
- resetting the chip. This fix has been sent to me by SYMBIOS/LSI
- and I just translated it into ncr53c8xx syntax.
- Must be considered 100 % trustable, unless I did some mistake
- when translating it. :-)
- Sun Jan 24 18:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.1
- - Major rewrite of the SCSI parity error handling.
- The informations contained in the data manuals are incomplete about
- this feature.
- I asked SYMBIOS about and got in reply the explanations that are
- _indeed_ missing in the data manuals.
- - Allow to tune request_irq() flags from the boot command line using
- ncr53c8xx=irqm:??, as follows:
- a) If bit 0x10 is set in irqm, SA_SHIRQ flag is not used.
- b) If bit 0x20 is set in irqm, SA_INTERRUPT flag is not used.
- By default the driver uses both SA_SHIRQ and SA_INTERRUPT.
- Option 'ncr53c8xx=irqm:0x20' may be used when an IRQ is shared by
- a 53C8XX adapter and a network board.
- - Fix for 64 bit PCI address register calculation. (Lance Robinson)
- - Fix for big-endian in phase mismatch handling. (Michal Jaegermann)
- Fri Jan 1 20:00 1999 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.0a
- - Waiting list look-up didn't work for the first command of the list.
- Hopefully fixed, but tested on paper only. ;)
- - Remove the most part of PPC specific code for Linux-2.2.
- Thanks to Cort.
- - Some other minors changes.
- Sat Dec 19 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version sym53c8xx-1.0
- - Define some new IO registers for the 896 (istat1, mbox0, mbox1)
- - Revamp slightly the Symbios NVRAM lay-out based on the excerpt of
- the header file I received from Symbios.
- - Check the PCI bus number for the boot order (Using a fast
- PCI controller behing a PCI-PCI bridge seems sub-optimal).
- - Disable overlapped PCI arbitration for the 896 revision 1.
- - Reduce a bit the number of IO register reads for phase mismatch
- by reading DWORDS at a time instead of BYTES.
- Thu Dec 3 24:00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.18
- - I received this afternoon a 896 from SYMBIOS and started testing
- the driver with this beast. After having fixed 3 buglets, it worked
- with all features enabled including the phase mismatch handling
- from SCRIPTS. Since this feature is not yet tested enough, the
- boot option 'ncr53c8xx=specf:1' is still required to enable the
- driver to handle PM from SCRIPTS.
- Sun Nov 29 18:00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.17
- - The SISL RAID change requires now remap_pci_mem() stuff to be
- compiled for __i386__ when normal IOs are used.
- - The PCI memory read from SCRIPTS that should ensure ordering
- was in fact misplaced. BTW, this may explain why broken PCI
- device drivers regarding ordering are working so well. ;-)
- - Rewrite ncr53c8xx_setup (boot command line options) since the
- binary code was a bit too bloated in my opinion.
- - Make the code simpler in the wakeup_done routine.
- Tue Nov 24 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.16
- - Add SCSI_NCR_OPTIMIZE_896_1 compile option and 'optim' boot option.
- When set, the driver unconditionnaly assumes that the interrupt
- handler is called for command completion, then clears INTF, scans
- the done queue and returns if some completed CCB is found. If no
- completed CCB are found, interrupt handling will proceed normally.
- With a 896 that handles MA from SCRIPTS, this can be a great win,
- since the driver will never performs PCI read transactions, but
- only PCI write transactions that may be posted.
- If the driver haven't to also raise the SIGP this would be perfect.
- Even with this penalty, I think that this will work great.
- Obviously this optimization makes sense only if the IRQ is not
- shared with another device.
- - Still a buglet in the tags initial settings that needed to be fixed.
- It was not possible to disable TGQ at system startup for devices
- that claim TGQ support. The driver used at least 2 for the queue
- depth but did'nt keep track of user settings for tags depth lower
- than 2.
- Thu Nov 19 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.15
- - Add support for hardware LED control of the 896.
- - Ignore chips that are driven by SISL RAID (DAC 960).
- Change sent by Leonard Zubkoff and slightly reworked.
- - Prevent 810A rev 11 and 860 rev 1 from using cache line based
- transactions since those early chip revisions may use such on
- LOAD/STORE instructions (work-around).
- - Remove some useless and bloat code from the pci init stuff.
- - Do not use the readX()/writeX() kernel functions for __i386__,
- since they perform useless masking operations in order to deal
- with broken driver in 2.1.X kernel.
- Wed Nov 11 10:00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.14
- - The driver was unhappy when configured with default_tags > MAX_TAGS
- Hopefully doubly-fixed.
- - Set PCI_PARITY in PCI_COMMAND register in not set (PCI fix-up).
- - Print out some message if phase mismatch is handled from SCRIPTS.
- Sun Nov 1 14H00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.13
- - Some rewrite of the device detection code. This code had been
- patched too much and needed to be face-lifted a bit.
- Remove all platform dependent fix-ups that was not needed or
- conflicted with some other driver code as work-arounds.
- Reread the NVRAM before the calling of ncr_attach(). This spares
- stack space and so allows to handle more boards.
- Handle 64 bit base addresses under linux-2.0.X.
- Set MASTER bit in PCI COMMAND register if not set.
- Wed Oct 30 22H00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.12
- - Damned! I just broke the driver for Alpha by leaving a stale
- instruction in the source code. Hopefully fixed.
- - Do not set PFEN when it is useless. Doing so we are sure that BOF
- will be active, since the manual appears to be very unclear on what
- feature is actually used by the chip when both PFEN and BOF are
- set.
- Sat Oct 24 16H00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.11
- - LOAD/STORE instructions were miscompiled for register offsets
- beyond 0x7f. This broke accesses to 896' new registers.
- - Disable by default Phase Mismatch handling from SCRIPTS, since
- current 896 rev.1 seems not to operate safely with the driver
- when this feature is enabled (and above LOAD/STORE fix applied).
- I will change the default to 'enabled' when this problem will be
- solved.
- Using boot option 'ncr53c8xx=specf:1' enables this feature.
- - Implement a work-around (DEL 472 - ITEM 5) that should allow the
- driver to safely enable hardware phase mismatch with 896 rev. 1.
- Tue Oct 20 22H00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.10
- - Add the 53c876 description to the chip table. This is only useful
- for printing the right name of the controller.
- - Add additional checking of INQUIRY data:
- Check INQUIRY data received length is at least 7. Byte 7 of
- inquiry data contains device features bits and the driver might
- be confused by garbage. Also check peripheral qualifier.
- - Use a 1,3,5,...MAXTAGS*2+1 tag numbering. Previous driver could
- use any tag number from 1 to 253 and some non conformant devices
- might have problems with large tag numbers.
- - Use NAME53C and NAME53C8XX for chip name prefix chip family name.
- Just give a try using "sym53c" and "sym53c8xx" instead of "ncr53c"
- and "ncr53c8xx". :-)
- Sun Oct 11 17H00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.9
- - DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15).
- - Break ncr_scatter() into 2 functions in order to guarantee best
- possible code optimization for the case we get a scatter list.
- - Add the code intended to support up to 1 tera-byte for 64 bit systems.
- It is probably too early, but I wanted to complete the thing.
- Sat Oct 3 14H00 1998 Gerard Roudier (groudier@club-internet.fr)
- * version pre-sym53c8xx-0.8
- - Do some testing with io_mapped and fix what needed to be so.
- - Wait for SCSI selection to complete or time-out immediately after
- the chip won arbitration, since executing SCRIPTS while the SCSI
- core is performing SCSI selection breaks the selection procedure
- at least for some chip revisions.
- - Interrupt the SCRIPTS if a device does not go to MSG OUT phase after
- having been selected with ATN. Such a situation is not recoverable,
- better to fail when we are stuck.
|