594 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			594 lines
		
	
	
		
			29 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								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 conditional 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 synchronisation 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 broken. :-)
							 | 
						||
| 
								 | 
							
									  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 information contained in the data manuals is 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 behind 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 unconditionally 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 didn't 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.
							 |