xref: /OK3568_Linux_fs/kernel/Documentation/scsi/ChangeLog.ncr53c8xx (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSat May 12 12:00 2001 Gerard Roudier (groudier@club-internet.fr)
2*4882a593Smuzhiyun	* version ncr53c8xx-3.4.3b
3*4882a593Smuzhiyun	- Ensure LEDC bit in GPCNTL is cleared when reading the NVRAM.
4*4882a593Smuzhiyun	  Fix sent by Stig Telfer <stig@api-networks.com>.
5*4882a593Smuzhiyun	- Define scsi_set_pci_device() as nil for kernel < 2.4.4.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunMon Feb 12 22:30 2001 Gerard Roudier (groudier@club-internet.fr)
8*4882a593Smuzhiyun	* version ncr53c8xx-3.4.3
9*4882a593Smuzhiyun	- Call pci_enable_device() as AC wants this to be done.
10*4882a593Smuzhiyun	- Get both the BAR cookies actual and PCI BAR values.
11*4882a593Smuzhiyun	  (see Changelog.sym53c8xx rev. 1.7.3 for details)
12*4882a593Smuzhiyun	- Merge changes for linux-2.4 that declare the host template
13*4882a593Smuzhiyun	  in the driver object also when the driver is statically
14*4882a593Smuzhiyun	  linked with the kernel.
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunSun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr)
17*4882a593Smuzhiyun	* version ncr53c8xx-3.4.2
18*4882a593Smuzhiyun	- See Changelog.sym53c8xx, driver version 1.7.2.
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunWed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr)
21*4882a593Smuzhiyun	* version ncr53c8xx-3.4.1
22*4882a593Smuzhiyun	- Provide OpenFirmware path through the proc FS on PPC.
23*4882a593Smuzhiyun	- Remove trailing argument #2 from a couple of #undefs.
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunSun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr)
26*4882a593Smuzhiyun	* version ncr53c8xx-3.4.0
27*4882a593Smuzhiyun	- Remove the PROFILE C and SCRIPTS code.
28*4882a593Smuzhiyun	  This facility was not this useful and thus was not longer
29*4882a593Smuzhiyun	  desirable given the increasing complexity of the driver code.
30*4882a593Smuzhiyun	- Merges from FreeBSD sym-1.6.2 driver:
31*4882a593Smuzhiyun	  * Clarify memory barriers needed by the driver for architectures
32*4882a593Smuzhiyun	    that implement a weak memory ordering.
33*4882a593Smuzhiyun	- General cleanup:
34*4882a593Smuzhiyun	  Move definitions for barriers and IO/MMIO operations to the
35*4882a593Smuzhiyun	  sym53c8xx_defs.h header files. They are now shared by the
36*4882a593Smuzhiyun	  both drivers.
37*4882a593Smuzhiyun	  Use SCSI_NCR_IOMAPPED instead of NCR_IOMAPPED.
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunThu May 11   12:30 2000 Pam Delaney (pam.delaney@lsil.com)
40*4882a593Smuzhiyun	* revision 3.3b
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunMon Apr 24 12:00 2000 Gerard Roudier (groudier@club-internet.fr)
43*4882a593Smuzhiyun	* revision 3.2i
44*4882a593Smuzhiyun	- Return value 1 (instead of 0) from the driver setup routine.
45*4882a593Smuzhiyun	- Let the driver also attach controllers that have been set to
46*4882a593Smuzhiyun	  OFF in the NVRAM as it did prior to revision 3.2g.
47*4882a593Smuzhiyun
48*4882a593SmuzhiyunSat Apr 1  12:00 2000 Gerard Roudier (groudier@club-internet.fr)
49*4882a593Smuzhiyun	* revision 3.2h
50*4882a593Smuzhiyun	- Fix a compilation problem on Alpha introduced in version 3.2g.
51*4882a593Smuzhiyun          (`port' changed to `base_io').
52*4882a593Smuzhiyun	- Move from `sym' to this driver a tiny change for __sparc__ that
53*4882a593Smuzhiyun	  applies to cache line size (? Probably from David S Miller).
54*4882a593Smuzhiyun	- Make sure no data transfer will happen for Scsi_Cmnd requests
55*4882a593Smuzhiyun	  that supply SCSI_DATA_NONE direction (this avoids some BUG()
56*4882a593Smuzhiyun	  statement in the PCI code when a data buffer is also supplied).
57*4882a593Smuzhiyun
58*4882a593SmuzhiyunThu Mar 16   9:30 2000 Pam Delaney (pam.delaney@lsil.com)
59*4882a593Smuzhiyun	* revision 3.3b-3
60*4882a593Smuzhiyun 	- Added exclusion for the 53C1010 and 53C1010_66 chips
61*4882a593Smuzhiyun	  to the driver (change to sym53c8xx_comm.h).
62*4882a593Smuzhiyun
63*4882a593SmuzhiyunMon March 6  23:15 2000 Gerard Roudier (groudier@club-internet.fr)
64*4882a593Smuzhiyun	* revision 3.2g
65*4882a593Smuzhiyun	- Add the file sym53c8xx_comm.h that collects code that should
66*4882a593Smuzhiyun	  be shared by sym53c8xx and ncr53c8xx drivers. For now, it is
67*4882a593Smuzhiyun	  a header file that is only included by the ncr53c8xx driver,
68*4882a593Smuzhiyun	  but things will be cleaned up later. This code addresses
69*4882a593Smuzhiyun	  notably:
70*4882a593Smuzhiyun	  * Chip detection and PCI related initialisations
71*4882a593Smuzhiyun	  * NVRAM detection and reading
72*4882a593Smuzhiyun	  * DMA mapping
73*4882a593Smuzhiyun	  * Boot setup command
74*4882a593Smuzhiyun	  * And some other ...
75*4882a593Smuzhiyun	- Add support for the new dynamic dma mapping kernel interface.
76*4882a593Smuzhiyun	  Requires Linux-2.3.47 (tested with pre-2.3.47-6).
77*4882a593Smuzhiyun	- Get data transfer direction from the scsi command structure
78*4882a593Smuzhiyun	  (Scsi_Cmnd) when this information is available.
79*4882a593Smuzhiyun
80*4882a593SmuzhiyunMon March 6  23:15 2000 Gerard Roudier (groudier@club-internet.fr)
81*4882a593Smuzhiyun        * revision 3.2g
82*4882a593Smuzhiyun        - Add the file sym53c8xx_comm.h that collects code that should
83*4882a593Smuzhiyun          be shared by sym53c8xx and ncr53c8xx drivers. For now, it is
84*4882a593Smuzhiyun          a header file that is only included by the ncr53c8xx driver,
85*4882a593Smuzhiyun          but things will be cleaned up later. This code addresses
86*4882a593Smuzhiyun          notably:
87*4882a593Smuzhiyun          * Chip detection and PCI related initialisations
88*4882a593Smuzhiyun          * NVRAM detection and reading
89*4882a593Smuzhiyun          * DMA mapping
90*4882a593Smuzhiyun          * Boot setup command
91*4882a593Smuzhiyun          * And some other ...
92*4882a593Smuzhiyun        - Add support for the new dynamic dma mapping kernel interface.
93*4882a593Smuzhiyun          Requires Linux-2.3.47 (tested with pre-2.3.47-6).
94*4882a593Smuzhiyun        - Get data transfer direction from the scsi command structure
95*4882a593Smuzhiyun          (Scsi_Cmnd) when this information is available.
96*4882a593Smuzhiyun
97*4882a593SmuzhiyunFri Jan 14 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
98*4882a593Smuzhiyun	* revision pre-3.3b-1
99*4882a593Smuzhiyun	- Merge parallel driver series 3.31 and 3.2e
100*4882a593Smuzhiyun
101*4882a593SmuzhiyunTue Jan 11 14:00 2000 Pam Delaney (pam.delaney@lsil.com)
102*4882a593Smuzhiyun	* revision 3.31
103*4882a593Smuzhiyun	- Added support for mounting disks on wide-narrow-wide
104*4882a593Smuzhiyun	  scsi configurations.
105*4882a593Smuzhiyun	- Built off of version 3.30
106*4882a593Smuzhiyun
107*4882a593SmuzhiyunMon Jan 10 13:30 2000 Pam Delaney (pam.delaney@lsil.com)
108*4882a593Smuzhiyun	* revision 3.30
109*4882a593Smuzhiyun	- Added capability to use the integrity checking code
110*4882a593Smuzhiyun	  in the kernel (optional).
111*4882a593Smuzhiyun	- Disabled support for the 53C1010.
112*4882a593Smuzhiyun	- Built off of version 3.2c
113*4882a593Smuzhiyun
114*4882a593SmuzhiyunSat Jan 8  22:00 2000 Gerard Roudier (groudier@club-internet.fr)
115*4882a593Smuzhiyun	* revision 3.2e
116*4882a593Smuzhiyun	- Add year 2000 copyright.
117*4882a593Smuzhiyun	- Display correctly bus signals when bus is detected wrong.
118*4882a593Smuzhiyun	- Remove the dead code that broke driver 3.2d.
119*4882a593Smuzhiyun
120*4882a593SmuzhiyunMon Dec 6  22:00 1999 Gerard Roudier (groudier@club-internet.fr)
121*4882a593Smuzhiyun	* revision 3.2d
122*4882a593Smuzhiyun	- Change messages written by the driver at initialisation and
123*4882a593Smuzhiyun	  through the /proc FS (rather cosmetic changes that consist in
124*4882a593Smuzhiyun	  printing out the PCI bus number and device/function).
125*4882a593Smuzhiyun	- Get rid of the old PCI bios interface, but preserve kernel 2.0
126*4882a593Smuzhiyun	  compatibility from a simple wrapper.
127*4882a593Smuzhiyun	- Remove the compilation condition about having to acquire the
128*4882a593Smuzhiyun	  io_request_lock since it seems to be a definite feature now.:)
129*4882a593Smuzhiyun	- proc_dir structure no longer needed for kernel >= 2.3.27.
130*4882a593Smuzhiyun	- Change the driver detection code by the sym53c8xx one, modulo
131*4882a593Smuzhiyun	  some minor changes. The driver can now attach any number of
132*4882a593Smuzhiyun	  controllers (>40) and does no longer hoger stack space at
133*4882a593Smuzhiyun	  initialisation.
134*4882a593Smuzhiyun	- Definitely disable overlapped PCI arbitration for all dual
135*4882a593Smuzhiyun	  function chips, since I cannot make sure for what chip revisions
136*4882a593Smuzhiyun	  it is actually safe.
137*4882a593Smuzhiyun	- Add support for the SYM53C1510D.
138*4882a593Smuzhiyun	- Update the poor Tekram sync factor table.
139*4882a593Smuzhiyun	- Remove the compilation condition about having to acquire the
140*4882a593Smuzhiyun	  io_request_lock since it seems to be a definite feature now.:)
141*4882a593Smuzhiyun	- proc_dir structure no longer needed for kernel >= 2.3.27.
142*4882a593Smuzhiyun
143*4882a593SmuzhiyunSat Sep 11  18:00 1999 Gerard Roudier (groudier@club-internet.fr)
144*4882a593Smuzhiyun	* revision 3.2c
145*4882a593Smuzhiyun	- Handle correctly (hopefully) jiffies wrap-around.
146*4882a593Smuzhiyun	- Restore the entry used to detect 875 until revision 0xff.
147*4882a593Smuzhiyun	  (I removed it inadvertently, it seems :) )
148*4882a593Smuzhiyun	- Replace __initfunc() which is deprecated stuff by __init which
149*4882a593Smuzhiyun	  is not yet so. ;-)
150*4882a593Smuzhiyun	- Add support of some 'resource handling' for linux-2.3.13.
151*4882a593Smuzhiyun	  Basically the BARs have been changed to something more complex
152*4882a593Smuzhiyun	  in the pci_dev structure.
153*4882a593Smuzhiyun	- Remove some deprecated code.
154*4882a593Smuzhiyun
155*4882a593SmuzhiyunSat May 10  11:00 1999 Gerard Roudier (groudier@club-internet.fr)
156*4882a593Smuzhiyun	* revision pre-3.2b-1
157*4882a593Smuzhiyun	- Support for the 53C895A by Pamela Delaney <pam.delaney@lsil.com>
158*4882a593Smuzhiyun	  The 53C895A contains all of the features of the 896 but has only
159*4882a593Smuzhiyun	  one channel and has a 32 bit PCI bus. It does 64 bit PCI addressing
160*4882a593Smuzhiyun	  using dual cycle PCI data transfers.
161*4882a593Smuzhiyun	- Miscellaneous minor fixes.
162*4882a593Smuzhiyun	- Some additions to the README.ncr53c8xx file.
163*4882a593Smuzhiyun
164*4882a593SmuzhiyunSun Apr 11  10:00 1999 Gerard Roudier (groudier@club-internet.fr)
165*4882a593Smuzhiyun	* revision 3.2a
166*4882a593Smuzhiyun	- Add 'hostid:#id' boot option. This option allows to change the
167*4882a593Smuzhiyun	  default SCSI id the driver uses for controllers.
168*4882a593Smuzhiyun	- Remove nvram layouts and driver set-up structures from the C source,
169*4882a593Smuzhiyun	  and use the one defined in sym53c8xx_defs.h file.
170*4882a593Smuzhiyun	  (shared by both drivers).
171*4882a593Smuzhiyun	- Set for now MAX LUNS to 16 (instead of 8).
172*4882a593Smuzhiyun
173*4882a593SmuzhiyunThu Mar 11  23:00 1999 Gerard Roudier (groudier@club-internet.fr)
174*4882a593Smuzhiyun	* revision 3.2	  (8xx-896 driver bundle)
175*4882a593Smuzhiyun	- Only define the host template in ncr53c8xx.h and include the
176*4882a593Smuzhiyun	  sym53c8xx_defs.h file.
177*4882a593Smuzhiyun	- Declare static all symbols that do not need to be visible from
178*4882a593Smuzhiyun	  outside the driver code.
179*4882a593Smuzhiyun	- Add 'excl' boot command option that allows to pass to the driver
180*4882a593Smuzhiyun	  io address of devices not to attach.
181*4882a593Smuzhiyun	- Add info() function called from the host template to print
182*4882a593Smuzhiyun	  driver/host information.
183*4882a593Smuzhiyun	- Minor documentation additions.
184*4882a593Smuzhiyun
185*4882a593SmuzhiyunSat Mar 6  11:00 1999 Gerard Roudier (groudier@club-internet.fr)
186*4882a593Smuzhiyun	* revision 3.1h
187*4882a593Smuzhiyun	- Fix some oooold bug that hangs the bus if a device rejects a
188*4882a593Smuzhiyun	  negotiation. Btw, the corresponding stuff also needed some cleanup
189*4882a593Smuzhiyun	  and thus the change is a bit larger than it could have been.
190*4882a593Smuzhiyun	- Still some typo that made compilation fail for 64 bit (trivial fix).
191*4882a593Smuzhiyun
192*4882a593SmuzhiyunSun Feb  14:00 1999 Gerard Roudier (groudier@club-internet.fr)
193*4882a593Smuzhiyun	* revision 3.1g
194*4882a593Smuzhiyun	- Deal correctly with 64 bit PCI address registers on Linux 2.2.
195*4882a593Smuzhiyun	  Pointed out by Leonard Zubkoff.
196*4882a593Smuzhiyun	- Allow to tune request_irq() flags from the boot command line using
197*4882a593Smuzhiyun	  ncr53c8xx=irqm:??, as follows:
198*4882a593Smuzhiyun	  a) If bit 0x10 is set in irqm, IRQF_SHARED flag is not used.
199*4882a593Smuzhiyun	  b) If bit 0x20 is set in irqm, IRQF_DISABLED flag is not used.
200*4882a593Smuzhiyun	  By default the driver uses both IRQF_SHARED and IRQF_DISABLED.
201*4882a593Smuzhiyun	  Option 'ncr53c8xx=irqm:0x20' may be used when an IRQ is shared by
202*4882a593Smuzhiyun	  a 53C8XX adapter and a network board.
203*4882a593Smuzhiyun	- Tiny misspelling fixed (ABORT instead of ABRT). Was fortunately
204*4882a593Smuzhiyun	  harmless.
205*4882a593Smuzhiyun	- Negotiate SYNC data transfers with CCS devices.
206*4882a593Smuzhiyun
207*4882a593SmuzhiyunSat Jan 16  17:30 1999 Gerard Roudier (groudier@club-internet.fr)
208*4882a593Smuzhiyun	* revision 3.1f
209*4882a593Smuzhiyun	- Some PCI fix-ups not needed any more for PPC (from Cort).
210*4882a593Smuzhiyun	- Cache line size set to 16 DWORDS for Sparc   (from DSM).
211*4882a593Smuzhiyun	- Waiting list look-up didn't work for the first command of the list.
212*4882a593Smuzhiyun	- Remove 2 useless lines of code.
213*4882a593Smuzhiyun
214*4882a593SmuzhiyunSun Dec 13  18:00 1998 Gerard Roudier (groudier@club-internet.fr)
215*4882a593Smuzhiyun	* revision 3.1e
216*4882a593Smuzhiyun	- Same work-around as for the 53c876 rev <= 0x15 for 53c896 rev 1:
217*4882a593Smuzhiyun	  Disable overlapped arbitration. This will not make difference
218*4882a593Smuzhiyun	  since the chip has on-chip RAM.
219*4882a593Smuzhiyun
220*4882a593SmuzhiyunThu Nov 26  22:00 1998 Gerard Roudier (groudier@club-internet.fr)
221*4882a593Smuzhiyun	* revision 3.1d
222*4882a593Smuzhiyun	- The SISL RAID change requires now remap_pci_mem() stuff to be
223*4882a593Smuzhiyun	  compiled for __i386__ when normal IOs are used.
224*4882a593Smuzhiyun	- Minor spelling fixes in doc files.
225*4882a593Smuzhiyun
226*4882a593SmuzhiyunSat Nov 21  18:00 1998 Gerard Roudier (groudier@club-internet.fr)
227*4882a593Smuzhiyun	* revision 3.1c
228*4882a593Smuzhiyun	- Ignore chips that are driven by SISL RAID (DAC 960).
229*4882a593Smuzhiyun	  Change sent by Leonard Zubkoff and slightly reworked.
230*4882a593Smuzhiyun	- Still a buglet in the tags initial settings that needed to be fixed.
231*4882a593Smuzhiyun	  It was not possible to disable TGQ at system startup for devices
232*4882a593Smuzhiyun	  that claim TGQ support. The driver used at least 2 for the queue
233*4882a593Smuzhiyun	  depth but did'nt keep track of user settings for tags depth lower
234*4882a593Smuzhiyun	  than 2.
235*4882a593Smuzhiyun
236*4882a593SmuzhiyunWed Nov 11  10:00 1998 Gerard Roudier (groudier@club-internet.fr)
237*4882a593Smuzhiyun	* revision 3.1b
238*4882a593Smuzhiyun	- The driver was unhappy when configured with default_tags > MAX_TAGS
239*4882a593Smuzhiyun	  Hopefully doubly-fixed.
240*4882a593Smuzhiyun	- Update the Configure.help driver section that speaks of TAGS.
241*4882a593Smuzhiyun
242*4882a593SmuzhiyunWed Oct 21 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
243*4882a593Smuzhiyun	* revision 3.1a
244*4882a593Smuzhiyun	- Changes from Eddie Dost for Sparc and Alpha:
245*4882a593Smuzhiyun	  ioremap/iounmap support for Sparc.
246*4882a593Smuzhiyun	  pcivtophys changed to bus_dvma_to_phys.
247*4882a593Smuzhiyun	- Add the 53c876 description to the chip table. This is only useful
248*4882a593Smuzhiyun	  for printing the right name of the controller.
249*4882a593Smuzhiyun	- DEL-441 Item 2 work-around for the 53c876 rev <= 5 (0x15).
250*4882a593Smuzhiyun	- Add additional checking of INQUIRY data:
251*4882a593Smuzhiyun	  Check INQUIRY data received length is at least 7. Byte 7 of
252*4882a593Smuzhiyun	  inquiry data contains device features bits and the driver might
253*4882a593Smuzhiyun	  be confused by garbage. Also check peripheral qualifier.
254*4882a593Smuzhiyun	- Cleanup of the SCSI tasks management:
255*4882a593Smuzhiyun	  Remove the special case for 32 tags. Now the driver only uses the
256*4882a593Smuzhiyun	  scheme that allows up to 64 tags per LUN.
257*4882a593Smuzhiyun	  Merge some code from the 896 driver.
258*4882a593Smuzhiyun	  Use a 1,3,5,...MAXTAGS*2+1 tag numbering. Previous driver could
259*4882a593Smuzhiyun	  use any tag number from 1 to 253 and some non conformant devices
260*4882a593Smuzhiyun	  might have problems with large tag numbers.
261*4882a593Smuzhiyun	- 'no_sync' changed to 'no_disc' in the README file. This is an old
262*4882a593Smuzhiyun	  and trivial mistake that seems to demonstrate the README file is
263*4882a593Smuzhiyun	  not often read. :)
264*4882a593Smuzhiyun
265*4882a593SmuzhiyunSun Oct  4 14:00 1998 Gerard Roudier (groudier@club-internet.fr)
266*4882a593Smuzhiyun	* revision 3.0i
267*4882a593Smuzhiyun	- Cosmetic changes for sparc (but not for the driver) that needs
268*4882a593Smuzhiyun	  __irq_itoa() to be used for printed IRQ value to be understandable.
269*4882a593Smuzhiyun	- Some problems with the driver that didn't occur using driver 2.5f
270*4882a593Smuzhiyun	  were due to a SCSI selection problem triggered by a clearly
271*4882a593Smuzhiyun	  documented feature that in fact seems not to work: (53C8XX chips
272*4882a593Smuzhiyun	  are claimed by the manuals to be able to execute SCSI scripts just
273*4882a593Smuzhiyun	  after abitration while the SCSI core is performing SCSI selection).
274*4882a593Smuzhiyun	  This optimization is broken and has been removed.
275*4882a593Smuzhiyun	- Some broken scsi devices are confused when a negotiation is started
276*4882a593Smuzhiyun	  on a LUN that does not correspond to a real device. According to
277*4882a593Smuzhiyun	  SCSI specs, this is a device firmware bug. This has been worked
278*4882a593Smuzhiyun	  around by only starting negotiation if the LUN has previously be
279*4882a593Smuzhiyun	  used for at least 1 successful SCSI command.
280*4882a593Smuzhiyun	- The 'last message sent' printed out on M_REJECT message reception
281*4882a593Smuzhiyun	  was read from the SFBR i/o register after the previous message had
282*4882a593Smuzhiyun	  been sent.
283*4882a593Smuzhiyun	  This was not correct and affects all previous driver versions and
284*4882a593Smuzhiyun	  the original FreeBSD one as well. The SCSI scripts has been fixed
285*4882a593Smuzhiyun	  so that it now provides the right information to the C code.
286*4882a593Smuzhiyun
287*4882a593SmuzhiyunSat Jul 18 13:00 1998 Gerard Roudier (groudier@club-internet.fr)
288*4882a593Smuzhiyun	* revision 3.0g
289*4882a593Smuzhiyun	- Preliminary fixes for Big Endian (sent by Eddie C. Dost).
290*4882a593Smuzhiyun	  Big Endian architectures should work again with the driver.
291*4882a593Smuzhiyun	  Eddie's patch has been partially applied since current 2.1.109
292*4882a593Smuzhiyun	  does not have all the Sparc changes of the vger tree.
293*4882a593Smuzhiyun	- Use of BITS_PER_LONG instead of (~0UL == 0xffffffffUL) has fixed
294*4882a593Smuzhiyun	  the problem observed when the driver was compiled using EGCS or
295*4882a593Smuzhiyun	  PGCC.
296*4882a593Smuzhiyun
297*4882a593SmuzhiyunMon Jul 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr)
298*4882a593Smuzhiyun	* revision 3.0f
299*4882a593Smuzhiyun	- Some spelling fixes.
300*4882a593Smuzhiyun	- linux/config.h misplaced in ncr53c8xx.h
301*4882a593Smuzhiyun	- MODULE_PARM stuff added for linux 2.1.
302*4882a593Smuzhiyun	- check INQUIRY response data format is exactly 2.
303*4882a593Smuzhiyun	- use BITS_PER_LONG if defined.
304*4882a593Smuzhiyun
305*4882a593SmuzhiyunSun Jun 28 12:00 1998 Gerard Roudier (groudier@club-internet.fr)
306*4882a593Smuzhiyun	* revision 3.0e
307*4882a593Smuzhiyun	- Some cleanup, spelling fixes, version checks, documentations
308*4882a593Smuzhiyun	  changes, etc ...
309*4882a593Smuzhiyun
310*4882a593SmuzhiyunSat Jun 20 20:00 1998 Gerard Roudier (groudier@club-internet.fr)
311*4882a593Smuzhiyun	* revision 3.0c
312*4882a593Smuzhiyun	- Add a boot setup option that allows to set up device queue depths
313*4882a593Smuzhiyun	  at boot-up. This option is very useful since Linux does not
314*4882a593Smuzhiyun	  allow to change scsi device queue depth once the system has been
315*4882a593Smuzhiyun	  booted up.
316*4882a593Smuzhiyun
317*4882a593SmuzhiyunSun Jun 15 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
318*4882a593Smuzhiyun	* revision 3.0a
319*4882a593Smuzhiyun	- Support for up to 64 TAGS per LUN.
320*4882a593Smuzhiyun	- Rewrite the TARGET vs LUN capabilities management.
321*4882a593Smuzhiyun	  CmdQueue is now handled as a LUN capability as it shall be.
322*4882a593Smuzhiyun	  This also fixes a bug triggered when disabling tagged command
323*4882a593Smuzhiyun	  queuing for a device that had this feature enabled.
324*4882a593Smuzhiyun	- Remove the ncr_opennings() stuff that was useless under Linux
325*4882a593Smuzhiyun	  and hard to understand to me.
326*4882a593Smuzhiyun	- Add "setverbose" procfs driver command. It allows to tune
327*4882a593Smuzhiyun	  verbose level after boot-up. Setting this level to zero, for
328*4882a593Smuzhiyun	  example avoid flooding the syslog file.
329*4882a593Smuzhiyun	- Add KERN_XXX to some printk's.
330*4882a593Smuzhiyun
331*4882a593SmuzhiyunTue Jun 10 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
332*4882a593Smuzhiyun	* revision 3.0
333*4882a593Smuzhiyun	- Linux config changes for 2.0.34:
334*4882a593Smuzhiyun	  Remove NVRAM detection config option. This option is now enabled
335*4882a593Smuzhiyun	  by default but can be disabled by editing the driver header file.
336*4882a593Smuzhiyun	  Add a PROFILE config option.
337*4882a593Smuzhiyun	- Update Configure.help
338*4882a593Smuzhiyun	- Add calls to new function mdelay() for milli-seconds delay if
339*4882a593Smuzhiyun	  kernel version >= 2.1.105.
340*4882a593Smuzhiyun	- Replace all printf(s) by printk(s). After all, the ncr53c8xx is
341*4882a593Smuzhiyun	  a driver for Linux.
342*4882a593Smuzhiyun	- Perform auto-sense on COMMAND TERMINATED. Not sure it is useful.
343*4882a593Smuzhiyun	- Some other minor changes.
344*4882a593Smuzhiyun
345*4882a593SmuzhiyunTue Jun 4 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
346*4882a593Smuzhiyun	* revision 2.6n
347*4882a593Smuzhiyun	- Code cleanup and simplification:
348*4882a593Smuzhiyun	  Remove kernel 1.2.X and 1.3.X support.
349*4882a593Smuzhiyun	  Remove the _old_ target capabilities table.
350*4882a593Smuzhiyun	  Remove the error recovery code that have'nt been really useful.
351*4882a593Smuzhiyun	  Use a single alignment boundary (CACHE_LINE_SIZE) for data
352*4882a593Smuzhiyun	  structures.
353*4882a593Smuzhiyun	- Several aggressive SCRIPTS optimizations and changes:
354*4882a593Smuzhiyun	  Reselect SCRIPTS code rewritten.
355*4882a593Smuzhiyun	  Support for selection/reselection without ATN.
356*4882a593Smuzhiyun	  And some others.
357*4882a593Smuzhiyun	- Miscallaneous changes in the C code:
358*4882a593Smuzhiyun	  Count actual number of CCB queued to the controller (future use).
359*4882a593Smuzhiyun	  Lots of other minor changes.
360*4882a593Smuzhiyun
361*4882a593SmuzhiyunWed May 13 20:00 1998 Gerard Roudier (groudier@club-internet.fr)
362*4882a593Smuzhiyun	* revision 2.6m
363*4882a593Smuzhiyun	- Problem of missed SCSI bus reset with the 53C895 fixed by
364*4882a593Smuzhiyun	  Richard Waltham. The 53C895 needs about 650 us for the bus
365*4882a593Smuzhiyun	  mode to settle. Delays used while resetting the controller
366*4882a593Smuzhiyun	  and the bus have been adjusted. Thanks Richard!
367*4882a593Smuzhiyun	- Some simplification for 64 bit arch done ccb address testing.
368*4882a593Smuzhiyun	- Add a check of the MSG_OUT phase after Selection with ATN.
369*4882a593Smuzhiyun	- The new tagged queue stuff seems ok, so some informationnal
370*4882a593Smuzhiyun	  message have been conditionned by verbose >= 3.
371*4882a593Smuzhiyun	- Donnot reset if a SBMC interrupt reports the same bus mode.
372*4882a593Smuzhiyun	- Print out the whole driver set-up. Some options were missing and
373*4882a593Smuzhiyun	  the print statement was misplaced for modules.
374*4882a593Smuzhiyun	- Ignore a SCSI parity interrupt if the chip is not connected to
375*4882a593Smuzhiyun	  the SCSI bus.
376*4882a593Smuzhiyun
377*4882a593SmuzhiyunSat May 1 16:00 1998 Gerard Roudier (groudier@club-internet.fr)
378*4882a593Smuzhiyun	* revision 2.6l
379*4882a593Smuzhiyun	- Add CCB done queue support for Alpha and perhaps some other
380*4882a593Smuzhiyun	  architectures.
381*4882a593Smuzhiyun	- Add some barriers to enforce memory ordering for x86 and
382*4882a593Smuzhiyun	  Alpha architectures.
383*4882a593Smuzhiyun	- Fix something that looks like an old bug in the nego SIR
384*4882a593Smuzhiyun	  interrupt code in case of negotiation failure.
385*4882a593Smuzhiyun
386*4882a593SmuzhiyunSat Apr 25 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
387*4882a593Smuzhiyun	* revision 2.6k
388*4882a593Smuzhiyun	- Remove all accesses to the on-chip RAM from the C code:
389*4882a593Smuzhiyun	  Use SCRIPTS to load the on-chip RAM.
390*4882a593Smuzhiyun	  Use SCRIPTS to repair the start queue on selection timeout.
391*4882a593Smuzhiyun	  Use the copy of script in main memory to calculate the chip
392*4882a593Smuzhiyun	  context on phase mismatch.
393*4882a593Smuzhiyun	- The above allows now to use the on-chip RAM without requiring
394*4882a593Smuzhiyun	  to get access to the on-chip RAM from the C code. This makes
395*4882a593Smuzhiyun	  on-chip RAM useable for linux-1.2.13 and for Linux-Alpha for
396*4882a593Smuzhiyun	  instance.
397*4882a593Smuzhiyun	- Some simplifications and cleanups in the SCRIPTS and C code.
398*4882a593Smuzhiyun	- Buglet fixed in parity error recovery SCRIPTS (never tested).
399*4882a593Smuzhiyun	- Minor updates in README.ncr53c8xx.
400*4882a593Smuzhiyun
401*4882a593SmuzhiyunWed Apr 15 21:00 1998 Gerard Roudier (groudier@club-internet.fr)
402*4882a593Smuzhiyun	* revision 2.6j
403*4882a593Smuzhiyun	- Incorporate changes from linux-2.1.95 ncr53c8xx driver version.
404*4882a593Smuzhiyun	- Add SMP support for linux-2.1.95 and above.
405*4882a593Smuzhiyun	- Fix a bug when QUEUE FULL is returned and no commands are
406*4882a593Smuzhiyun	  disconnected. This happens with Atlas I / L912 and may happen
407*4882a593Smuzhiyun	  with Atlas II / LXY4.
408*4882a593Smuzhiyun	- Nail another one on CHECK condition when requeuing the command
409*4882a593Smuzhiyun	  for auto-sense.
410*4882a593Smuzhiyun	- Call scsi_done() for all completed commands after interrupt
411*4882a593Smuzhiyun	  handling.
412*4882a593Smuzhiyun	- Increase the done queue to 24 entries.
413*4882a593Smuzhiyun
414*4882a593SmuzhiyunSat Apr 4 20:00 1998 Gerard Roudier (groudier@club-internet.fr)
415*4882a593Smuzhiyun	* revision 2.6i
416*4882a593Smuzhiyun	- CTEST0 is used by the 53C885 for Power Management and
417*4882a593Smuzhiyun	  priority setting between the 2 functions.
418*4882a593Smuzhiyun	  Use SDID instead as actual target number. Just have had to
419*4882a593Smuzhiyun	  overwrite it with SSID on reselection.
420*4882a593Smuzhiyun	- Split DATA_IN and DATA_OUT scripts into 2 sub-scripts.
421*4882a593Smuzhiyun	  64 segments are moved from on-chip RAM scripts.
422*4882a593Smuzhiyun	  If more segments, a script in main memory is used for the
423*4882a593Smuzhiyun	  additional segments.
424*4882a593Smuzhiyun	- Since the SCRIPTS processor continues SCRIPTS execution after
425*4882a593Smuzhiyun	  having won arbitration, do some stuff prior to testing any SCSI
426*4882a593Smuzhiyun	  phase on reselection. This should have the vertue to process
427*4882a593Smuzhiyun	  scripts in parallel with the SCSI core performing selection.
428*4882a593Smuzhiyun	- Increase the done queue to 12 entries.
429*4882a593Smuzhiyun
430*4882a593SmuzhiyunSun Mar 29 12:00 1998 Gerard Roudier (groudier@club-internet.fr)
431*4882a593Smuzhiyun	* revision 2.6h
432*4882a593Smuzhiyun	- Some fixes.
433*4882a593Smuzhiyun
434*4882a593SmuzhiyunTue Mar 26 23:00 1998 Gerard Roudier (groudier@club-internet.fr)
435*4882a593Smuzhiyun	* revision 2.6g
436*4882a593Smuzhiyun	- New done queue. 8 entries by default (6 always useable).
437*4882a593Smuzhiyun	  Can be increased if needed.
438*4882a593Smuzhiyun	- Resources management using doubly linked queues.
439*4882a593Smuzhiyun	- New auto-sense and QUEUE FULL handling that does not need to
440*4882a593Smuzhiyun	  stall the NCR queue any more.
441*4882a593Smuzhiyun	- New CCB starvation avoiding algorithm.
442*4882a593Smuzhiyun	- Prepare CCBs for SCSI commands that cannot be queued, instead of
443*4882a593Smuzhiyun	  inserting these commands into the waiting list. The waiting list
444*4882a593Smuzhiyun	  is now only used while resetting and when memory for CCBs is not
445*4882a593Smuzhiyun	  yet available?
446*4882a593Smuzhiyun
447*4882a593SmuzhiyunSun Feb 8 22:00 1998 Gerard Roudier (groudier@club-internet.fr)
448*4882a593Smuzhiyun	* revision 2.6f
449*4882a593Smuzhiyun	- Some fixes in order to really support the 53C895, at least with
450*4882a593Smuzhiyun	  FAST-20 devices.
451*4882a593Smuzhiyun	- Heavy changes in the target/lun resources management to allow
452*4882a593Smuzhiyun	  the scripts to jump directly to the CCB on reselection instead
453*4882a593Smuzhiyun	  of walking on the lun CCBs list. Up to 32 tags per lun are now
454*4882a593Smuzhiyun	  supported without script processor and PCI traffic overhead.
455*4882a593Smuzhiyun
456*4882a593SmuzhiyunSun Jan 11 22:00 1998 Gerard Roudier (groudier@club-internet.fr)
457*4882a593Smuzhiyun	* revision 2.6d
458*4882a593Smuzhiyun	- new (different ?) implementation of the start queue:
459*4882a593Smuzhiyun          Use a simple CALL to a launch script in the CCB.
460*4882a593Smuzhiyun	- implement a minimal done queue (1 entry :-) ).
461*4882a593Smuzhiyun          this avoid scanning all CCBs on INT FLY (Only scan all CCBs, on
462*4882a593Smuzhiyun          overflow). Hit ratio is better than 99.9 % on my system, so no
463*4882a593Smuzhiyun          need to have a larger done queue.
464*4882a593Smuzhiyun	- generalization of the restart of CCB on special condition as
465*4882a593Smuzhiyun          Abort, QUEUE FULL, CHECK CONDITION.
466*4882a593Smuzhiyun          This has been called 'silly scheduler'.
467*4882a593Smuzhiyun	- make all the profiling code conditionned by a config option.
468*4882a593Smuzhiyun	  This spare some PCI traffic and C code when this feature is not
469*4882a593Smuzhiyun          needed.
470*4882a593Smuzhiyun	- handle more cleanly the situation where direction is unknown.
471*4882a593Smuzhiyun	  The pointers patching is now performed by the SCRIPTS processor.
472*4882a593Smuzhiyun	- remove some useless scripts instructions.
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun	Ported from driver 2.5 series:
475*4882a593Smuzhiyun        ------------------------------
476*4882a593Smuzhiyun	- Use FAST-5 instead of SLOW for slow scsi devices according to
477*4882a593Smuzhiyun	  new SPI-2 draft.
478*4882a593Smuzhiyun	- Make some changes in order to accommodate with 875 rev <= 3
479*4882a593Smuzhiyun	  device errata listing 397. Minor consequences are:
480*4882a593Smuzhiyun	  . Leave use of PCI Write and Invalidate under user control.
481*4882a593Smuzhiyun	    Now, by default the driver does not enable PCI MWI and option
482*4882a593Smuzhiyun	    'specf:y' is required in order to enable this feature.
483*4882a593Smuzhiyun	  . Memory Read Line is not enabled for 875 and 875-like chips.
484*4882a593Smuzhiyun	  . Programmed burst length set to 64 DWORDS (instead of 128).
485*4882a593Smuzhiyun	    (Note: SYMBIOS uses 32 DWORDS for the SDMS BIOS)
486*4882a593Smuzhiyun	- Add 'buschk' boot option.
487*4882a593Smuzhiyun	  This option enables checking of SCSI BUS data lines after SCSI
488*4882a593Smuzhiyun	  RESET (set by default). (Submitted by Richard Waltham).
489*4882a593Smuzhiyun	- Update the README file.
490*4882a593Smuzhiyun	- Dispatch CONDITION MET and RESERVATION CONFLICT scsi status
491*4882a593Smuzhiyun	  as OK driver status.
492*4882a593Smuzhiyun	- Update the README file and the Symbios NVRAM format definition
493*4882a593Smuzhiyun	  with removable media flags values (available with SDMS 4.09).
494*4882a593Smuzhiyun	- Several PCI configuration registers fix-ups for powerpc.
495*4882a593Smuzhiyun	  (Patch sent by Cort).
496