1Hey, 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 103ftape-3.03b was released as a beta release only. Its main new feature 104was support of the DITTO-2GB drive. This was made possible by reverse 105engineering done by <fill in his name> after Iomega failed to support 106ftape. Although they had promised to do so (this makes me feel a bit 107sad 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 154zftape 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 198sftape 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 207No 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 321Notes 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 330Notes 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 345Notes for contrib/gnumt: 346- modified mt from the GNU cpio package that supports all the new 347 ioctls of zftape. 348Notes 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 354The ftape maintainer has changed. 355Kai Harrekilde-Petersen <khp@dolphinics.no> 356has resigned from maintaining ftape, and I, 357Claus-Justus Heine <claus@momo.math.rwth-aachen.de>, 358have 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 376There 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 378new 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 392If you correct a problem with ftape, please send your patch to 393khp@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 401Bugfixes 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 416Another 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 424This 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 436Special thanks go to Neal Friedman and Steven Sorbom for their 437help in producing and testing this release. 438 439I have continued to clean up the code, with an eye towards inclusion 440of ftape in Linus' official kernel (In fact, as I type this, I am 441running on a kernel with ftape support statically linked). I have 442test-compiled ftape against my 1.2.13 tree without problems. 443Hopefully, everything should be OK for the v1.2.x people. 444 445WARNING! Alan Cox has mailed me that ftape does *NOT* work with 446Linux/SMP. If you try to run ftape under Linux/SMP, it will cause a 447kernel 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 494This 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 524Bas offline linux-tape 525---------------------- 526For reasons only known to the majordomo mail list processor, Bas was 527kicked off the linux-tape list sometime during the summer. Being 528overworked 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) 530version. 531 532zftape 533------ 534Note that there exists a much improved version of ftape, written by 535Claus-Justus Heine <claus@willi.math.rwth-aachen.de> which is named 536zftape, which conforms to the QIC-80 specs on how to mark backups, and 537is capable of doing automatic compression. However, zftape makes 538substantial changes to ftape, and I (Kai) have therefore declined to 539integrate zftape into ftape. Hopefully, this will happen soon. 540 541CONFIG_QIC117 removed from the kernel 542------------------------------------- 543The biggest change of all is that ftape now will allocate its dma 544buffers when it is inserted. The means that the CONFIG_QIC117 option 545has disappeared from the Linux kernel as of v1.3.34. If you have an 546earlier kernel, simply answer 'no' to the question will do the trick 547(if you get complains about __get_free_pages() missing, contact the 548linux-tape mailing list). 549 550Note that ftape-2.04beta will work equally well on kernels with and 551without `ftape support'. The only catch is, that you will waste 552around 96-128Kb of precious DMA'able memory on a box that has ftape 553support compiled in. 554 555Now 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 607Support for wide and extended length tapes 608------------------------------------------ 609The Conner TSM 420 and 850 drives are reported to be working. 610I haven't received any reports about other brands; the TSM 420 611and 850 seem to be the most widely used wide drives. 612Extended length tapes (425 ft) with normal QIC-80 drives 613are operating too (At least I've had no reports stating otherwise). 614_Not_ yet completely supported (although they may work) are 615QIC-3020 drives and 2 Mbps floppy disk controllers won't work at 616the highest speed. 617If someone is kind enough to send me one of these, I'll include 618support for it too ;-) 619 620Easier configuration 621-------------------- 622Problems due to wrong settings in the Makefile are prevented 623by using a configuration script that sets the necessary (kernel 624version dependent) compile time options. 625This kernel version is now determined from the sources found 626at /usr/src/linux, or if not found, the old way using 627/proc/version. 628Versioned modules will be used automatically when supported 629by- and configured in- the kernel. 630Note that the current modules code (1.1.87) is still broken 631and _needs_ the fix included in the insmod directory. 632Please don't send me any more Oops reports caused by insmod :-( 633 634Reduced module size 635------------------- 636The standard module size is much reduced and some compile time 637options can even reduce it further. (I don't recommend this 638for normal use but it can be handy for rescue diskettes) 639 640Option: Approx. module size: 641 642<standard> 150 Kb 643NO_TRACE 125 Kb 644NO_TRACE_AT_ALL 67 Kb 645 646 647Much improved driver interruption 648--------------------------------- 649Most possible loops have been broken and signal detection 650has been improved. 651In most cases the driver can be aborted by ^C (SIGINT) and 652SIGKILL (kill -9) will generate be a sure kill. 653(Note that aborting a tape operation may damage the last 654data written to tape) 655 656Improved error recovery 657----------------------- 658Ftape now returns an error (ENODATA) to the application if 659a segment proves to be unrecoverable and then skips the 660bad segment. 661This causes most applications to continue to work (tar 662and afio) loosing only a small amount (up to 29 Kb) of data. 663Retried read operations will now be done slightly off-track 664to improve the chance of success. Serious head off-track 665errors will be detected. 666 667FC-10 and FC-20 controllers 668--------------------------- 669Ftape now supports both the old CMS FC-10 and the newer FC-20 670controllers. 671Because the operation of these cards is still undocumented, 672thus far they will only work with the default settings (See 673Makefile). Any feed-back on how to use them with other settings 674will be welcome ! 675Compilation will fail if one changes the settings to illegal 676values. 677 678Kernels and compilers 679--------------------- 680Ftape is currently being developed using the 2.5.8 compiler. 681The older 2.4.5 probably works too (Set option in Makefile!). 682I have no experience with any later compilers nor Elf support. 683Any information on this is welcome. 684The latest kernel I have tested ftape with is 1.2.6. 685 686Compression 687----------- 688An impressive collection of changes for ftape including 689on-the-fly compression is still lying on my desk. 690If 2.03 proves to be reliable I might start integrating these 691but as usual, I'm short in time :-( 692 693Formatting 694---------- 695There is still no way to format tapes under Linux. As far as 696I know all attempts to write such a program have died now. 697Since formatted tapes are rather common now, I think all we 698need is a utility that writes a worst case pattern and verifies 699that with the drive put in verify mode, reducing margins. 700Any takers ? 701 702Furthermore 703----------- 704Cleaned up messages. 705Prepared to support multiple tape drives on one fdc. 706Thanks to all the people who sent bug reports and helped me 707improve the driver. Without trying to be complete I'll mention 708Gary Anderson (without his accurate reports and unreliable 709hardware there wouldn't be a 2.03), Stefan Kneifel (FC-20), 710Robert Broughton (FC-20, you were almost there ;-), Bjorn 711Ekwall (for the versioned modules and buggy insmod ;-), Peter 712Fox, Christopher Oliver, Ralph Whittaker and not the least 713Linus Torvalds (for Linux and keeping me busy because of 714changes to the kernel ;-) 715Thanks to anyone I forgot, for the bug reports, the ftape 716bashing and the mental support... 717 718 719That's it for now. Have Fun, 720 721Bas. 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 821Note that I haven't yet implemented any of the code extension I 822received. 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 898some information on how to use the driver. If you're either new 899to 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 902ftape driver make sure to read the README.PCI file. It contains 903some hints on how to fix your hardware. 904 905 For anybody who hasn't noticed: The version number of the 906driver has been incremented (The latest released version has 907been 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 914of new (and old?) bugs. If you encounter any problems that you think 915I'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 917in case ;-) 918 919 This version should work with all kernel versions from 1.0.9 up 920to 1.1.72 (and probably earlier and later versions too). 921 922 923Major 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 948Some minor features were added, a couple of small bugs were fixed and 949probably some new ones introduced ;-). 950 951[lseek() didn't make it into this version] 952 953Have fun, 954 955Bas. 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 967