[DLM] Clean up lowcomms
[pandora-kernel.git] / drivers / char / ftape / RELEASE-NOTES
1 Hey, Emacs, we're -*-Text-*- mode!
2
3 ===== Release notes for ftape-3.04d 25/11/97 =====
4 - The correct pre-processor statement for "else if" is "#elif" not
5   "elsif".
6 - Need to call zft_reset_position() when overwriting cartridges
7   previously written with ftape-2.x, sftape, or ancient
8   (pre-ftape-3.x) versions of zftape.
9
10 ===== Release notes for ftape-3.04c 16/11/97 =====
11 - fdc_probe() was calling DUMPREGS with a result length of "1" which
12   was just fine. Undo previous change.
13
14 ===== Release notes for ftape-3.04b 14/11/97 =====
15
16 - patches/2.x.x/floppy.c.diff was somewhat broken, releasing i/o
17   regions it never had allocated.
18 - fdc_probe() was calling DUMPREGS with a result length of "1" instead
19   of "10"
20 - Writing deleted data marks if the first segents on track zero are
21   should work now.
22 - ftformat should now be able to handle those cases where the tape
23   drive sets the read only status bit (QIC-40/80 cartridges with
24   QIC-3010/3020 tape drives) because the header segment is damaged.
25 - the MTIOCFTCMD ioctl may now be issued by the superuser ONLY.
26
27 ===== Release notes for ftape-3.04a 12/11/97 =====
28 - Fix an "infinite loop can't be killed by signal" bug in
29   ftape_get_drive_status(). Only relevant when trying to access
30   buggy/misconfigured hardware
31 - Try to compensate a bug in the HP Colorado T3000's firmware: it
32   doesn't set the write protect bit for QIC80/QIC40 cartridges.
33
34 ===== Release notes for ftape-3.04 06/11/97 =====
35 - If positioning with fast seeking fails fall back to a slow seek
36   before giving up.
37 - (nearly) no retries on "no data errors" when verifying after
38   formatting. Improved tuning of the bad sector map after formatting.
39 - the directory layout has changed again to allow for easier kernel
40   integration
41 - Module parameter "ftape_tracing" now is called "ft_tracing" because
42   the "ftape_tracing" variable has the version checksum attached to it.
43 - `/proc/ftape' interface for 2.0.* kernels. `/proc/ftape' no longer
44   is a directory but a file that contains all the information formerly
45   provided in separate files under the `/proc/ftape/' directory.
46 - Most of the configuration options have been prefixed by "CONFIG_FT_"
47   in preparation of the kernel inclusion. The Makefiles under
48   "./ftape/" should be directly usable by the kernel.
49 - The MODVERSIONS stuff is now auto-detected.
50 - Broke backslashed multi line options in MCONFIG into separate lines
51   using GNU-make's "+=" feature.
52 - The html and dvi version of the manual is now installed under
53   '/usr/doc/ftape` with 'make install`
54 - New SMP define in MCONFIG. ftape works with SMP if this is defined.
55 - attempt to cope with "excessive overrun errors" by gradually
56   increasing FDC FIFO threshold. But this doesn't seem to have too
57   much an effect.
58 - New load time configuration parameter "ft_fdc_rate_limit". If you
59   encounter too many overrun errors with a 2Mb controller then you
60   might want to set this to 1000.
61 - overrun errors on the last sector in a segment sometimes result in
62   a zero DMA residue. Dunno why, but compensate for it.
63 - there were still fdc_read() timeout errors. I think I have fixed it
64   now, please FIXME.
65 - Sometimes ftape_write() failed to re-start the tape drive when a
66   segment without a good sector was reached ("wait for empty segment
67   failed"). This is fixed. Especially important for > QIC-3010.
68 - sftape (aka ftape-2.x) has vanished. I didn't work on it for
69   ages. It is probably still possible to use the old code with
70   ftape-3.04, if one really needs it (BUT RECOMPILE IT)
71 - zftape no longer alters the contents of already existing volume
72   table entries, which makes it possible to fill in missing fields,
73   like time stamps using some user space program.
74 - ./contrib/vtblc/ contains such a program.
75 - new perl script ./contrib/scripts/listtape that list the contents of a
76   floppy tape cartridge parsing the output of "mt volinfo" + "mt fsf"
77 - the MTWEOF implementation has changed a little bit (after I had a
78   look at amanda). Calling MTWEOF while the tape is still held open
79   after writing something to the tape now will terminate the current
80   volume, and start a new one at the current position.
81 - the volume table maintained by zftape now is a doubly linked list
82   that grows dynamically as needed.
83
84   formatting floppy tape cartridges
85   ---------------------------------
86   * there is a new user space formatting program that does most of the
87     dirty work in user space (auto-detect, computing the sector
88     coordinates, adjusting time stamps and statistics). It has a
89     simple command line interface.
90   * ftape-format.o has vanished, it has been folded into the low level
91     ftape.o module, and the ioctl interface into zftape.o. Most of the
92     complicated stuff has been moved to user space, so there was no
93     need for a separate module anymore.
94   * there is a new ioctl MTIOCFTCMD that sends a bare QIC-117 command
95     to the tape drive.
96   * there is a new mmap() feature to map the dma buffers into user
97     space to be used by the user level formatting program.
98   * Formatting of yet unformatted or totally degaussed cartridges
99     should be possible now. FIXME.
100
101 ===== Release notes for ftape-3.03b, <forgot the exact date> ====
102
103 ftape-3.03b was released as a beta release only. Its main new feature
104 was support of the DITTO-2GB drive. This was made possible by reverse
105 engineering done by <fill in his name> after Iomega failed to support
106 ftape. Although they had promised to do so (this makes me feel a bit
107 sad and uncomfortable about Iomega).
108
109 ===== Release notes for ftape-3.03a, 22/05/97 ====
110
111 - Finally fixed auto-un-loading of modules for kernels > 2.1.18
112 - Add an "uninstall" target to the Makefile
113 - removed the kdtime hack
114 - texi2www didn't properly set the back-reference from a footnote back
115   to the regular text.
116
117   zftape specific
118   ---------------
119   * hide the old compression map volume. Taper doesn't accept the
120     presence of non-Taper volumes and Taper-written volume on the same
121     tape.
122   * EOD (End Of Data) handling was still broken: the expected behavior
123     is to return a zero byte count at the first attempt to read past
124     EOD, return a zero byte count at the second attempt to read past
125     EOD and THEN return -EIO.
126   
127   ftape-format specific
128   ---------------------
129   * Detection of QIC-40 cartridges in select_tape_format() was broken
130     and made it impossible to format QIC-3010/3020 cartridges.
131   * There are strange "TR-1 Extra" cartridges out there which weren't
132     detected properly because the don't strictly conform to the
133     QIC-80, Rev. N, spec.
134
135 ===== Release notes for ftape-3.03, 30/04/97 =====
136
137 - Removed kernel integration code from the package. I plan to provide
138   a package that can be integrated into the stock kernel separately
139   (hopefully soon).
140   As a result, a simple `make' command now will build everything.
141 - ALL compile time configuration options have been moved to the file
142   `MCONFIG'.
143 - Quite a few `low level' changes to allow formatting of cartridges.
144 - formatting is implemented as a separate module `ftape-format.o'. The
145   modified `mt' program contains sample code that shows how to use it.
146 - The VFS interface has been moved from the `ftape.o' module to the
147   high level modules `zftape.o' resp. `sftape.o'. `ftape.o' contains
148   the hardware support only.
149 - A bit of /proc support for kernels > 2.1.28
150 - Moved documentation to Doc subdir. INSTALL now contains some real
151   installation notes.
152 - `install' target in Makefile.
153
154 zftape specific:
155 ----------------
156
157 - zftape works for large cartridges now ( > 2^31 bytes)
158 - MTIOCVOLINFO and MTIOCGETSIZE now return the size in KILOBYTES,
159   NO LONGER in bytes.
160
161 - permissions for write access to a cartridge have changed:
162   * zftape now also takes the file access mode into account
163   * zftape no longer allows writing in the middle of the recorded
164     media. The tape has to be positioned at BOT or EOD for write
165     access.
166
167 - MTBSF has changed. It used to position at the beginning of the
168   previous file when called with count 1. This was different from the
169   expected behavior for other Un*x tape drivers (i.e. SCSI). MTBSF
170   with count 1 should merely position at the beginning of the current
171   volume. Fixed. As a result, `tar --verify' now produces the desired
172   result: it verifies the last written volume, not the pre-last
173   written volume.
174
175 - The compression map has vanished --> no need for `mt erase' any
176   more. Fast seeking in a compressed volume is still be possible, but
177   takes slightly longer. As a side effect, you may experience an
178   additional volume showing up in front of all others for old
179   cartridges. This is the tape volume that holds the compression map.
180
181 - The compression support for zftape has been moved to a separate
182   module `zft-compressor'. DON'T forget to load it before trying to
183   read back compressed volumes. The stock `zftape.o' module probes for
184   the module `zft-compressor' using the kerneld message channel; you
185   have to install `zft-compressor.o' in a place where modprobe can
186   find it if you want to use this.
187
188 - New experimental feature that tries to get the broken down GMT time
189   from user space via a kernel daemon message channel. You need to
190   compile and start the `kdtime' daemon contained in the contrib
191   directory to use it. Needed (?) for time stamps in the header
192   segments and the volume table.
193
194 - variable block size mode via MTSETBLK 0
195
196 - keep modules locked in memory after the block size has been changed
197
198 sftape specific:
199 ----------------
200
201 - end of tape handling should be fixed, i.e. multi volume archives
202   written with `afio' can be read back now.
203
204
205 ===== Release notes for ftape-3.02a, 09/01/97 =====
206
207 No big news:
208 - call zft_init() resp. sft_init() when compiling the entire stuff
209   into the kernel image.
210 - fix bug in ftape-setup.c when NO_TRACE_AT_ALL was defined.
211 - fix bug in sftape-eof.c/zftape-eof.c for old kernels (1.2.*)
212 - add support for new module interface for recent kernels
213
214 ===== Release notes for ftape-3.02, 16/12/96 =====
215 - Fixed the `FDC unlock command failed' bug in fdc-io.c. When the FIFO
216   was already locked when ftape was loaded, ftape failed to unlock it.
217 - Fixed compilation of `contrib/gnumt'. It now finds `mtio.h' even if
218   ftape is NOT included into the kernel source tree.
219 - fc-10.c: include <asm/io.h> for inb() and outb().
220 - ftape/sftape/zftape: all global variable now have either a `ftape_',
221   a `ft_', `sft_', `zft_' or `qic_' prefix to prevent name clashes
222   with other parts of the kernel when including ftape into the kernel
223   source tree.
224 - Kerneld support has changed. `ftape' now searches for a module
225   `ftape-frontend' when none of the frontend (`sftape' or `zftape') is
226   loaded. Please refer to the `Installation/Loading ftape' section of
227   the TeXinfo manual.
228 - Add load resp. boot-time configuration of ftape. There are now
229   variables ft_fdc_base, ft_fdc_dma and ft_fdc_irq corresponding to
230   the former FDC_BASE etc. compile time definitions. One can also use
231   the kernel command line parameters to configure the driver if it is
232   compiled into the kernel. Also, the FC-10/FC-20 support is load-time
233   configurable now as well as the MACH-II hack (ft_probe_fc10,
234   resp. ft_mach2). Please refer to the section `Installation/Configure
235   ftape' of the TeXinfo manual.
236 - I removed the MODVERSIONS option from `Makefile.module'. Let me alone
237   with ftape and MODVERSIONS unless you include the ftape sources into
238   the kernel source tree.
239 - new vendors in `vendors.h':
240   * HP Colorado T3000 
241   * ComByte DoublePlay (including a bug fix for their broken
242     formatting software, thanks to whraven@njackn.com)
243   * Iomega DITTO 2GIG. NOTE: this drive cannot work with ftape because
244     the logical data layout of the cartridges used by this drive does
245     NOT conform to the QIC standards, it is a special Iomega specific
246     format. I've sent mail to Iomega but didn't receive an answer
247     yet. If you want this drive to be supported by ftape, ask Iomega
248     to give me information about it.
249 - zftape:
250   * re-introduced the MTIOC_ZFTAPE_GETBLKSZ ioctl for compatibility
251     with zftape 1.06a and earlier. Please don't use it when writing
252     new software, use the MTIOCVOLINFO ioctl instead.
253   * Major overhaul of the code that updates the header segments. Never
254     change the tape label unless erasing the tape. Thus we almost
255     never need to write the header segments, unless we would modify
256     the bad sector map which isn't done yet. Updating of volume table
257     and compression map more secure now although it takes a bit
258     longer.
259   * Fixed bug when aborting a write operation with a signal: zftape
260     now finishes the current volume (i.e. writes an eof marker) at the
261     current position. It didn't before which led to somehow *strange*
262     behavior in this cases.
263   * Keep module locked in memory when using it with  the non-rewinding
264     devices and the tape is not logical at BOT. Needed for kerneld
265     support.
266 - sftape:
267   * Keep module locked in memory when using it with  the non-rewinding
268     devices and the tape is not logical at BOT. Needed for kerneld
269     support.
270
271 ===== Release notes for ftape-3.01, 14/11/96 =====
272
273 - Fixed silly bugs in ftape-3.00:
274   * MAKEDEV.ftape: major device number must be 27, not 23 
275   * sftape/sftape-read.c: sftape_read_header_segments() called 
276     itself recursively instead of calling ftape_read_header_segment()
277   * zftape/qic-vtbl.h: conversion of ftape's file marks to zftape's
278     internal volume table was broken.
279   * patches/2.x.x/linux-2.0.21.dif: my RCS (resp. CVS) system replaced
280     the `$Revison:' etc. macros in the `ftape.h' concerning part of the
281     patch :-( Fixed.
282   * info/ftape.info: Fixed misspellings (`cp' <-> `cp -r' etc.)
283   * when ftape/sftape or ftape/zftape was compiled into the kernel the
284     variable ftape_status was declared twice. Fixed.
285   * removed reference to undeclared variable kernel_version when not
286     compiling as module
287   * fixed a bug introduced by the use of bit-fields for some flags
288     (i.e. write_protected, no_cartridge, formatted)
289   * flag `header_read' is now reset correctly to zero when tape is
290     removed.
291 - fixed a bug in sftape/sftape-eof.c that was already in the original
292   ftape code. MTFSF/BSF was not handled correctly when positioned
293   right before the file mark (think of tar)
294 - Changed TRACE macros (following a suggestion of Marcin Dalecki) to use
295   the predefined __FUNCTION__ macro of GCC. Spares about 4k of code.
296 - added new vendor id for Iomega DITTO 2GIG
297 - fixed a bug already present in zftape-1.06 when aborting a write
298   with a signal: we now finish the current volume at that
299   position. Header segments remain NOT up to date until an explicit call
300   to MTREW or MTOFFL is done.  
301
302 ===== Release notes for ftape-3.00, 14/10/96 =====
303
304 - Merged ftape with zftape. There are three modules now:
305   ftape for the hardware support, sftape for the implementation of the
306   original ftape eof mark stuff and zftape that implements zftape's way
307   of handling things (compression, volume table, tape blocks of
308   constant length)
309 - Documentation in TeXinfo format in the `info' subdirectory.
310 - New ioctls for zftape. See zftape/zftape.h
311 - Dummy formatting ioctl for ftape. See ftape.h
312 - Kernel patch files for the 2.*.* series to include ftape-3.00 in the
313   kernel source tree. These includes a kernel compatible Config.in
314   script and fairly large online information for the kernel configure
315   script.
316 - Support for compiling with Linux-1.2.13. 
317 - Modified GNU mt from their cpio package that can handle the new
318   ioctls.
319 - ftape/sftape/zftape is kerneld save now!
320
321 Notes on sftape:
322 - sftape implements the eof handling code of the original ftape. If
323   you like to stick with the original ftape stuff, you have to use
324   this module, not zftape.
325 - sftape is kerneld save, unlike the original ftape.
326 - we keep the entire header segment now in memory, so no need to read
327   it before updating the header segments. Additional memory
328   consumption: 256 bytes. 
329
330 Notes for zftape:
331 - zftape has support for tapes with format code 6 now, which use a
332   slightly different volume table format compared with other floppy
333   tapes.
334 - new ioctls for zftape. Have a look at zftape/zftape.h
335 - The internal volume table representation has changed for zftape. Old
336   cartridges are converted automatically.
337 - zftape no longer uses compression map segments, which have vanished
338   from the QIC specs, but creates volume table entry that reserves
339   enough space for the compression map. 
340 - zftape is kerneld save now.
341 - we keep the entire header segment now in memory, so no need to read
342   it before updating the header segments. Additional memory
343   consumption: 256 bytes. 
344
345 Notes for contrib/gnumt:
346 - modified mt from the GNU cpio package that supports all the new
347   ioctls of zftape.
348 Notes for contrib/swapout:
349 - This contains the swapout.c program that was written by Kai
350   Harrekilde-Pederson. I simply added a Makefile.
351
352 ===== Release notes for ftape-2.10, 14/10/96 =====
353
354 The ftape maintainer has changed. 
355 Kai Harrekilde-Petersen <khp@dolphinics.no>
356 has resigned from maintaining ftape, and I,
357 Claus-Justus Heine <claus@momo.math.rwth-aachen.de>,
358 have taken over.
359
360 - Added support for tapes with `format code 6', i.e. QIC-3020 tapes
361   with more than 2^16 segments.
362 - merged changes made by Bas Laarhoven with ftape-2.09. Refer
363   to his release notes below. I've included them into this
364   file unchanged for your reference.
365 - disabled call stack back trace for now. This new feature
366   introduced by the interim release 2.0.x still seems to
367   be buggy.
368 - Tried to minimize differences between the ftape version
369   to be included into the kernel source tree and the standalone
370   module version.
371 - Reintroduced support for Linux-1.2.13. Please refer to the
372   Install-guide. 
373
374 ===== Release notes for ftape-2.09, 16/06/96 =====
375
376 There aren't any really big news in this release, mostly just that I
377 (the maintainer) have changed my email address (due to a new job).  My
378 new address is <khp@dolphinics.no>
379
380 - The CLK_48MHZ and FDC_82078SL options has gone (all 2Mbps cards seem
381   to use a 48MHz oscillator anyway and I haven't heard of an 'SL
382   chip out there).
383 - The S82078B has been `downgraded' to i82077AA compability.
384 - TESTING option revived.  Right now, it'll enable the (seriously broken)
385   2Mbps code.  If you enable it, you'll experience a tape drive that's
386   *really* out to lunch!
387 - Some (bold) changes in the init code.  Please notify me if they
388   break things for you.
389
390 ===== Release notes for ftape-2.08, 14/03/96 =====
391
392 If you correct a problem with ftape, please send your patch to
393 khp@dolphinics.no too.
394
395 - Updated to reflect that NR_MEM_LISTS is gone in 1.3.74
396 - Teac 700 added to list of known drives.
397 - The registered device name is now "ft" rather than "ftape".
398
399 ===== Release notes for ftape-2.07a, 14/03/96 =====
400
401 Bugfixes by Marcin Dalecki <dalecki@namu03.gwdg.de>:
402 - In the last release it just compiled against 1.3.70;
403   now the params to request_irq() and free_irq are() are fixed, so it also 
404   works in 1.3.73 :-)
405 - Support for modules is now correct for newer kernels.
406
407 ===== Release notes for ftape-2.07, 04/03/96 =====
408
409
410 - ftape updated to compile against 1.3.70.
411 - Iomega 700 and Wangtek 3200 recognised.
412
413
414 ===== Release notes for ftape-2.06b, 13/02/96 =====
415
416 Another simple bugfix version.
417
418 - Jumbo 700 recognised.
419 - Typo in vendors.h fixed.
420
421
422 ===== Release notes for ftape-2.06a, 10/02/96 =====
423
424 This release is a simple bugfix version.
425
426 - Linux/SMP: ftape *should* work.
427 - FC-10/20: Only accepts IRQs 3-7, or 9.  If IRQ 9, properly tell the card
428   to use IRQ 2.  Thanks to Greg Crider (gcrider@iclnet.org) for finding and
429   locating this bug and testing the patch.
430 - Insight drive recognised correctly again.
431 - Motor-on wakeup version of the Iomega 250 drive added
432
433
434 ===== Release notes for ftape-2.06, 28/01/96 =====
435
436 Special thanks go to Neal Friedman and Steven Sorbom for their
437 help in producing and testing this release.
438
439 I have continued to clean up the code, with an eye towards inclusion
440 of ftape in Linus' official kernel (In fact, as I type this, I am
441 running on a kernel with ftape support statically linked).  I have
442 test-compiled ftape against my 1.2.13 tree without problems.
443 Hopefully, everything should be OK for the v1.2.x people.
444
445 WARNING! Alan Cox has mailed me that ftape does *NOT* work with
446 Linux/SMP.  If you try to run ftape under Linux/SMP, it will cause a
447 kernel deadlock (which is worse than a panic).
448
449 - QIC-3020/TR-3: 1Mbps support works.  Neal is capable of reading and
450   writing data to a tape.  ftape will automatically detect the type of
451   tape (e.g. TR-3 vs QIC-80) and move the fdc in and out of
452   "perpendicular mode" as necessary.
453 - 2Mbps support is disabled by default, since it is not fully
454   debugged.  If you are adventurous, remove -DFDC_82078SL in the
455   Makefile and see what happens :-)
456 - fdc detection: silly bugs removed (Only 2Mbps fdcs were affected)
457   and added detection of the National Semiconductors PC8744 fdc chip
458   (used in the PC873xx "super-IO" chips).
459 - Removed warning about incompatible types when compiling with Linux
460   1.2.x.
461 - README.PCI updated with info about the DELL Dimension XPS P90.
462 - Connor TST3200R added to detected drives.
463 - `swapout' utility added to distribution.  It will dirty 5Meg of
464   memory, trying to swap out other programs.  Just say `make swapout'
465   to build it.  ftape will do this automatically Real Soon Now (ie:
466   when I have found out which kernel memory alloc function to call).
467
468
469 ===== Release notes for ftape-2.05, 08/01/96 =====
470
471 - For v1.2.x Kernels, you must apply the patch linux-1.2/ksyms.patch to
472   the kernel and rebuild it (it adds the __get_dma_pages symbol to
473   ksyms.c).
474 - Included new asm-i386/io.h file from v1.3.x kernel series, to enable
475   gcc v.2.7.[12] to compile v1.2.x kernels (linux-1.2/io.h).
476 - Module versions: If you wish to compile ftape as a versioned module,
477   you must first compile your kernel with CONFIG_MODVERSIONS=y.
478   Otherwise, you will get complaints that <linux/modversions.h> does not
479   exist (if that happens, a `touch modversions.h' will help you out).
480 - CLK_48MHZ: new define in the Makefile (default: non-zero).  If you have
481   a tape controller card that uses the i82078(-1) chip, but cannot get
482   it to work with ftape, try set it to 0 (and please report this).
483 - QIC-3010/3020: Complete support is still missing, but will hopefully
484   come soon.  Steven Sorbom has kindly provided me with hints about
485   this.  Writing of QIC-3020 tapes definitely does NOT work (do not try
486   it! - the drive will not be in "perpendicular mode" and this will ruin
487   the formatting info on the tape).
488 - ftape_num_buffers is out of fashion: use NR_BUFFERS instead (and
489   recompile if you want to change it :-).
490
491
492 ===== Release notes for ftape-2.04, 01/01/96 =====
493
494 This version by Kai Harrekilde-Petersen <khp@dolphinics.no>
495
496 - ALERT! Support for Kernels earlier then v1.1.85 is about to go away.
497   I intend to clean up some of the code (getting rid of an annoyingly
498   large numbers of #ifdef mostly), which means that support for
499   pre-1.1.85 kernels must go as well.
500 - NR_FTAPE_BUFFERS is gone; You can instead select the number of dma
501   buffers by saying `insmod ftape.o ftape_num_buffer=<n>' instead.
502 - Configure script gone.  ftape will now automagically determine your
503   kernel version by /usr/include/linux/version.h instead.
504 - CONFIG_MODVERSIONS now work.  All combinations of versioned /
505   unversioned kernel and ftape module works (at least with my 1.3.52
506   kernel).
507 - If you have problems with inserting ftape into an old (1.2.x)
508   kernel (e.g. insmod says "1.2.8 does not match 1.2.8), recompile
509   your modules utilities with your new compiler.
510 - Reveal TB1400 drive added to vendors.h
511 - Support for the i82078-1 (2Mbps) chip is coming along.  The
512   biggest problem is that I don't have such a card, which makes
513   testing / debugging somewhat problematic.  The second biggest
514   problem is that I do not have the QIC-3010/3020 standards either.
515   Status right now is that the chip is detected, and it should be
516   possible to put it into 2Mbps mode.  However, I do not know what
517   "extras" are needed to complete the support.  Although putting the
518   i82078 into 1Mbps mode ought to work out of the box, it doesn't
519   (right now, ftape complains about id am errors).
520
521
522 ===== Release notes for ftape-2.04beta5, 29/12/95 =====
523
524 Bas offline linux-tape
525 ----------------------
526 For reasons only known to the majordomo mail list processor, Bas was
527 kicked off the linux-tape list sometime during the summer.  Being
528 overworked at his for-pay job, he didn't notice it much.  Instead I
529 (Kai, khp@dolphinics.no) has worked on ftape to produce the 2.04(beta)
530 version.
531
532 zftape
533 ------
534 Note that there exists a much improved version of ftape, written by
535 Claus-Justus Heine <claus@willi.math.rwth-aachen.de> which is named
536 zftape, which conforms to the QIC-80 specs on how to mark backups, and
537 is capable of doing automatic compression.  However, zftape makes
538 substantial changes to ftape, and I (Kai) have therefore declined to
539 integrate zftape into ftape.  Hopefully, this will happen soon.
540
541 CONFIG_QIC117 removed from the kernel
542 -------------------------------------
543 The biggest change of all is that ftape now will allocate its dma
544 buffers when it is inserted.  The means that the CONFIG_QIC117 option
545 has disappeared from the Linux kernel as of v1.3.34.  If you have an
546 earlier kernel, simply answer 'no' to the question will do the trick
547 (if you get complains about __get_free_pages() missing, contact the
548 linux-tape mailing list).
549
550 Note that ftape-2.04beta will work equally well on kernels with and
551 without `ftape support'.  The only catch is, that you will waste
552 around 96-128Kb of precious DMA'able memory on a box that has ftape
553 support compiled in.
554
555 Now for the real changes:
556
557 - FC-20 can now use DMA channels 1, 2, and 3. Thanks to Daniel
558   Cohen, catman@wpi.edu.
559 - ftape no longer requires a (gigantic) 96Kb buffer to be statically
560   allocated by the kernel.
561 - Added new Iomega drive (8882) to vendors.h
562 - -fno-strength-reduce added to Makefile, since GCC is broken.
563 - i82078-1 (2Mbps) FDC support started.
564
565
566 ===== Release notes for ftape-2.03b, 27/05/95 =====
567
568 - Prevented verify_area to return error if called with zero length.
569 - Fixed a bug in flush_buffers that caused too much padding to be
570   written when a final segment had bad sectors.
571 - Increased maximum fast-seek overshoot value from 5 to 10 segments.
572 - Breaking loop after 5 retries when positioning fails.
573 - Fixed wrong calculation of tape length for QIC-3010 and QIC-3020
574   tapes (densities were swapped).
575 - Fixed wrong calculation of overshoot on seek_forward: Wrong sign
576   of error.
577 - Suppress (false) error message due to new tape loaded.
578 - Added two new CMS drives (11c3 and 11c5) to vendors.h.
579
580
581 ===== Release notes for ftape-2.03a, 09/05/95 =====
582
583 - Fixed display of old error (even if already cleared) in ftape_open.
584 - Improved tape length detection, ioctls would fail for 425 ft tapes.
585   Until the tape length is calculated with data from the header
586   segment, we'll use worst-case values.
587 - Clear eof_mark after rewinding ioctls.
588 - Fixed wrong version message (2.03 had 2.02g id).
589 - Fixed bug that caused the fdc to be reset very frequently.
590   This shouldn't affect normal operation but the timing of the
591   report routines has changed again and that may cause problems.
592   We'll just have to find out....
593 - Implemented correct write precompensation setting for QIC-3010/3020.
594 - Cleaned up fdc_interrupt_wait routine. Hope it still works :-)
595 - Finally removed (already disabled) special eof mark handling for
596   gnu tar.
597 - Changed order of get_dma_residue and disable_dma in fdc-isr.c
598   because the current order would fail on at least one system.
599   We're back to the original order again, hope (and expect) this
600   doesn't break any other system.
601
602
603 ===== Release notes for ftape-2.03, 07/05/95 =====
604
605 (Changes refer to the first ftape-2.02 release)
606
607 Support for wide and extended length tapes
608 ------------------------------------------
609 The Conner TSM 420 and 850 drives are reported to be working.
610 I haven't received any reports about other brands; the TSM 420
611 and 850 seem to be the most widely used wide drives.
612 Extended length tapes (425 ft) with normal QIC-80 drives
613 are operating too (At least I've had no reports stating otherwise).
614 _Not_ yet completely supported (although they may work) are
615 QIC-3020 drives and 2 Mbps floppy disk controllers won't work at
616 the highest speed.
617 If someone is kind enough to send me one of these, I'll include
618 support for it too ;-)
619
620 Easier configuration
621 --------------------
622 Problems due to wrong settings in the Makefile are prevented
623 by using a configuration script that sets the necessary (kernel
624 version dependent) compile time options.
625 This kernel version is now determined from the sources found
626 at /usr/src/linux, or if not found, the old way using
627 /proc/version.
628 Versioned modules will be used automatically when supported
629 by- and configured in- the kernel.
630 Note that the current modules code (1.1.87) is still broken
631 and _needs_ the fix included in the insmod directory.
632 Please don't send me any more Oops reports caused by insmod :-(
633
634 Reduced module size
635 -------------------
636 The standard module size is much reduced and some compile time
637 options can even reduce it further. (I don't recommend this
638 for normal use but it can be handy for rescue diskettes)
639
640 Option:           Approx. module size:
641
642 <standard>             150 Kb
643 NO_TRACE               125 Kb
644 NO_TRACE_AT_ALL         67 Kb
645
646
647 Much improved driver interruption
648 ---------------------------------
649 Most possible loops have been broken and signal detection
650 has been improved.
651 In most cases the driver can be aborted by ^C (SIGINT) and
652 SIGKILL (kill -9) will generate be a sure kill.
653 (Note that aborting a tape operation may damage the last
654 data written to tape)
655
656 Improved error recovery
657 -----------------------
658 Ftape now returns an error (ENODATA) to the application if
659 a segment proves to be unrecoverable and then skips the
660 bad segment.
661 This causes most applications to continue to work (tar
662 and afio) loosing only a small amount (up to 29 Kb) of data.
663 Retried read operations will now be done slightly off-track
664 to improve the chance of success. Serious head off-track
665 errors will be detected.
666
667 FC-10 and FC-20 controllers
668 ---------------------------
669 Ftape now supports both the old CMS FC-10 and the newer FC-20
670 controllers.
671 Because the operation of these cards is still undocumented,
672 thus far they will only work with the default settings (See
673 Makefile). Any feed-back on how to use them with other settings
674 will be welcome !
675 Compilation will fail if one changes the settings to illegal
676 values.
677
678 Kernels and compilers
679 ---------------------
680 Ftape is currently being developed using the 2.5.8 compiler.
681 The older 2.4.5 probably works too (Set option in Makefile!).
682 I have no experience with any later compilers nor Elf support.
683 Any information on this is welcome.
684 The latest kernel I have tested ftape with is 1.2.6.
685
686 Compression
687 -----------
688 An impressive collection of changes for ftape including
689 on-the-fly compression is still lying on my desk.
690 If 2.03 proves to be reliable I might start integrating these
691 but as usual, I'm short in time :-(
692
693 Formatting
694 ----------
695 There is still no way to format tapes under Linux. As far as
696 I know all attempts to write such a program have died now.
697 Since formatted tapes are rather common now, I think all we
698 need is a utility that writes a worst case pattern and verifies
699 that with the drive put in verify mode, reducing margins.
700 Any takers ?
701
702 Furthermore
703 -----------
704 Cleaned up messages.
705 Prepared to support multiple tape drives on one fdc.
706 Thanks to all the people who sent bug reports and helped me
707 improve the driver. Without trying to be complete I'll mention
708 Gary Anderson (without his accurate reports and unreliable
709 hardware there wouldn't be a 2.03), Stefan Kneifel (FC-20),
710 Robert Broughton (FC-20, you were almost there ;-), Bjorn
711 Ekwall (for the versioned modules and buggy insmod ;-), Peter
712 Fox, Christopher Oliver, Ralph Whittaker and not the least
713 Linus Torvalds (for Linux and keeping me busy because of
714 changes to the kernel ;-)
715 Thanks to anyone I forgot, for the bug reports, the ftape
716 bashing and the mental support...
717
718
719 That's it for now. Have Fun,
720
721 Bas.
722
723
724 ===== Release notes for ftape-2.02g, 06/05/95 =====
725
726 - Added extra test to break read-id loop with signal.
727 - Changed rewind code to handle negative overshoot for drives
728   that take very long to start or stop.
729 - Let use of get/set i/o-regions depend on kernel version.
730 - Changed code to use a more general test for conditional
731   compilations depending on kernel version.
732 - Improved micro-step functionality to go off-track only
733   while reading (id & data).
734 - Added failure on tape-not-referenced bit in ftape_command.
735 - Added FOREVER option to read-wait routine.
736 - Changed read-id to use shorter timeout causing smaller
737   rewinds on timeout.
738 - Made kernel-interface functions static.
739
740
741 ===== Release notes for ftape-2.02f, 03/05/95 =====
742
743 - Added support for dual tape drives on my system, extended Configure
744   script to detect host 'dodo'.
745 - Log media defect in history if ecc failed and no data was returned.
746 - Fixed Configure script that was failing for kernel versions with
747   double digit version or revision numbers.
748
749
750 ===== Release notes for ftape-2.02e, 01/05/95 =====
751
752 - Fixed reposition loop at logical eot (failing read_id).
753 - Fixed 34 segment offset when rewinding.
754 - Added fast seek capability for more than 255 segments.
755 - Fixed wrong busy result from ftape_command causing reverse
756   seek to fail.
757 - Added breakout from infinite rewind loop (if something fails).
758
759
760 ===== Release notes for ftape-2.02d, 30/04/95 =====
761
762 - Improved abortion on signals: Interrupt will make a graceful
763   exit, Kill will be less nice and should be used if everything
764   else fails.
765 - Included check for tape-head off track.
766 - Implemented exit from tape-start loop.
767 - Added kernel io-port registration.
768 - Implemented skip of failing segment (ENODATA) on ecc failure.
769   This allows afio and tar to continue when the tape is damaged.
770 - Made distinction between drive names with different codes.
771
772
773 ===== Release notes for ftape-2.02c, 22/04/95 =====
774
775 - Fixed too tight command queueing after tape stop/pause command
776   issued from within interrupt service routine (Showed as timeout
777   on Acknowledge errors during retries on some systems)
778 - Tried to fix timeouts when using 425 ft tape because the extended
779   length doesn't seem to be detected by the hardware.
780   We now use the format code from the header segment so adjust the
781   timing after reading the header segment.
782 - Fixed some messages stating 'unexpected something...' being not
783   unexpected anymore.
784 - Started preparations for merge of dynamic buffer allocation and
785   compression code.
786 - Changed some debug messages to include relevant segment information
787   at level 4.
788 - Included early bail-out when drive offline, preventing a lot of
789   false messages.
790 - Moved ftape_parameter_xxx() offsets into function instead of in calls.
791 - Removed 'weird, drive busy but no data' error when caused by
792   an error during a read-id.
793 - Improved 'timeout on acknowledge' diagnostics.
794 - Moved MODULE option into Configure.
795 - Reduced code size when no tracing at all was set (Claus Heine).
796 - No longer log error code 0 (no error) as an error.
797
798
799 ===== Release notes for ftape-2.02b, 09/04/95 =====
800
801 - Relaxed timing for status operation and displaying
802   abnormal results. Hopefully this shows what's going
803   wrong with the Conner TSM850R drives.
804 - Created script for configuration, using version number
805   of kernel source if available, otherwise /proc/version.
806 - Fixed conditionals in kernel-interface.c.
807 - Removed unavoidable TRACE output.
808
809
810 ===== Release notes for ftape-2.02a, 01/04/95 =====
811
812 - Implemented `new-style' (versioned) modules support for new
813   kernels.
814 - Reduced size of module by moving static data to bss.
815 - Now using version number of kernel source instead of running
816   kernel for kernel versions >= 1.1.82
817 - Added feedback on drive speeds to vendor information.
818 - Included fixed insmod sources to distribution (Let's hope
819   the modules distribution get fixed soon :-/).
820
821 Note that I haven't yet implemented any of the code extension I
822 received. I hope to find some time to do this soon.
823
824
825 ===== Release notes for ftape-2.02, 15/01/95 =====
826
827
828 - Fixed failing repositioning when overshoot was incremented.
829 - Fixed rate selection: Because of a deficiency in the QIC-117
830   specification one cannot distinguish between a not implemented
831   and a failing command. Therefor we now try to find out if the
832   drive does support this command before usage.
833 - Fixed error retry using wrong offset in fdc-isr.
834 - Improved retry code to retry only once on a single no-data
835   error in a segment.
836 - Validate sector number extracted from eof mark because an
837   invalid file mark (due to ???) could cause kernel panic.
838 - Split ftape-io.c into ftape-io.c and ftape-ctl.c files.
839 - Corrected too high media error count after writing to
840   a bad tape.
841 - Added #include <asm/segment.h> again because old kernel versions
842   need it.
843 - Fixed fdc not being disabled when open failed because no tape
844   drive was found.
845 - Fixed problem with soft error in sector 32 (shift operator with
846   shiftcount 32 is not defined).
847
848
849 ===== Release notes for ftape-2.01, 08/01/95 =====
850
851
852 - Removed TESTING setting from distributed Makefile.
853 - Fixed `mt asf' failure: Rewind was deferred to close which
854   overruled the fsf ioctl.
855 - Prevented non-interruptible commands being interrupted.
856 - Added missing timeout.pause setting.
857 - Maximum tape speed read from drive type information table.
858   If the information is not in the table (0) the drive will
859   determine the speed itself and put a message in the logfile.
860   This information should then be added to the table in the
861   vendors.h file (and reported to me).
862 - Added call to ftape_init_drive after soft reset for those
863   (antique) drives that don't do an implicit seek_load_point
864   after a reset or power up.
865 - Don't try to set data rate if reset failed.
866 - Prevent update of seek variables when starting from the
867   beginning or the end of the tape.
868 - Fixed wrong adjustment of overshoot in seek_forward().
869 - Added sync to Makefile (again).
870 - Added code to diagnose timer problems (calibr.c).
871 - Replaced time differences by timediff calls.
872 - Removed reference to do_floppy from object for recent kernels.
873 - Fixed wrong display of 'failing dma controller' message.
874 - Removed various no longer used #include statements.
875 - Added max. tape speed value to vendor-struct.
876 - Changed ftape-command to check pre-conditions and wait
877   if needed.
878 - Further updated qic117.h to rev G.
879 - Combined command name table and restrictions table to one.
880   Extended this table with some new fields.
881 - Increased timeout on Ack timer value and included code to
882   report out of spec behaviour.
883 - Increased rewind timeout margin to calculated + 20%.
884 - Improved data rate selection so it won't fail on some
885   older (pre standard) drives.
886 - Changed initialisation code so drive will be rewound if the
887   driver is reloaded and the tape is not at bot.
888 - Moved some of the flush operations from close to the ioctls.
889 - Added exit code value to failing verify area message.
890 - Loop until tape halted in smart-stop.
891 - Fast seek handled specially if located at bot or eot.
892 - Being more conservative on overshoot value.
893
894
895 ===== Release notes for ftape-2.00, 31/12/94 =====
896
897   The Install-guide is completely rewritten and now also includes
898 some information on how to use the driver. If you're either new
899 to ftape or new to Unix tape devices make sure to read it !
900
901   If you own a pci system and experience problems with the
902 ftape driver make sure to read the README.PCI file. It contains
903 some hints on how to fix your hardware.
904
905   For anybody who hasn't noticed: The version number of the
906 driver has been incremented (The latest released version has
907 been version 1.14d).
908   This has been done for two major reasons:
909
910   o  A new (better) error recovery scheme is implemented.
911   o  Support for new drive types has been added.
912
913   All these improvements/changes will probably include a couple
914 of new (and old?) bugs. If you encounter any problems that you think
915 I'm not yet aware of, feel free to send a report to <bas@vimec.nl>.
916   I recommend keeping a version of ftape-1.14d available, just
917 in case ;-)
918
919   This version should work with all kernel versions from 1.0.9 up
920 to 1.1.72 (and probably earlier and later versions too).
921
922
923 Major new features:
924
925 - Better handling of tapes with defects: When a sector repeatedly
926   (SOFT_RETRIES in ftape.h) cannot be written to or read from it is
927   marked as an hard error and gets skipped.
928   The error correction code can handle up to three of these hard
929   errors provided there are no other errors in that segment (32 Kb).
930   
931 - Allows writing to tapes with defects (although the risk of loosing
932   data increases !)
933   Look for the media-defects entry printed with the statistics when
934   the tape is closed. A non-zero value here shows a bad tape.
935   [the actual count is wrong (too high), this is a known bug].
936
937 - Use of backup header segment if first one is failing.
938
939 - Support for extended length tapes with QIC-80: both 425 and 1100 ft.
940   0.25 inch tapes are now recognized and handled.
941
942 - Support for new QIC-80 drives with 8 mm `wide' tapes (e.g. Conner
943   TSM 420).
944
945 - Support for new QIC-3010 and QIC-3020 drives (experimental) with
946   both 0.25 inch and 8 mm tapes.
947
948 Some minor features were added, a couple of small bugs were fixed and
949 probably some new ones introduced ;-).
950
951 [lseek() didn't make it into this version]
952
953 Have fun,
954
955 Bas.
956 ----
957  LocalWords:  ftape MCONFIG mt VFS zftape resp sftape proc subdir MTIOCVOLINFO
958  LocalWords:  MTIOCGETSIZE BOT EOD MTBSF zft kerneld modprobe kdtime contrib TR
959  LocalWords:  MTSETBLK afio uninstall texi www EIO QIC init sft eof aka dma GB
960  LocalWords:  SIGKILL MTIOCFTCMD mmap Iomega FDC fdc io gnumt mtio fc asm inb
961  LocalWords:  outb ft qic frontend TeXinfo irq mach MODVERSIONS CONFIG html dvi
962  LocalWords:  usr doc SMP Mb Dunno FIXME vtblc perl listtape volinfo fsf MTWEOF
963  LocalWords:  amanda degaussed ComByte DoublePlay whraven njackn com MTIOC vtbl
964  LocalWords:  GETBLKSZ MAKEDEV zftape's linux dif CVS Revison cp MTREW MTOFFL
965  LocalWords:  MTFSF BSF Marcin Dalecki GCC Config cpio swapout Kai Harrekilde
966  LocalWords:  Pederson khp dolphinics Justus claus momo rwth aachen Laarhoven