===== Release notes for ftape-2.03b, 27/05/95 ===== - Prevented verify_area to return error if called with zero length. - Fixed a bug in flush_buffers that caused too much padding to be written when a final segment had bad sectors. - Increased maximum fast-seek overshoot value from 5 to 10 segments. - Breaking loop after 5 retries when positioning fails. - Fixed wrong calculation of tape length for QIC-3010 and QIC-3020 tapes (densities were swapped). - Fixed wrong calculation of overshoot on seek_forward: Wrong sign of error. - Suppress (false) error message due to new tape loaded. - Added two new CMS drives (11c3 and 11c5) to vendors.h. ===== Release notes for ftape-2.03a, 09/05/95 ===== - Fixed display of old error (even if already cleared) in ftape_open. - Improved tape length detection, ioctls would fail for 425 ft tapes. Until the tape length is calculated with data from the header segment, we'll use worst-case values. - Clear eof_mark after rewinding ioctls. - Fixed wrong version message (2.03 had 2.02g id). - Fixed bug that caused the fdc to be reset very frequently. This shouldn't affect normal operation but the timing of the report routines has changed again and that may cause problems. We'll just have to find out.... - Implemented correct write precompensation setting for QIC-3010/3020. - Cleaned up fdc_interrupt_wait routine. Hope it still works :-) - Finally removed (already disabled) special eof mark handling for gnu tar. - Changed order of get_dma_residue and disable_dma in fdc-isr.c because the current order would fail on at least one system. We're back to the original order again, hope (and expect) this doesn't break any other system. ===== Release notes for ftape-2.03, 07/05/95 ===== (Changes refer to the first ftape-2.02 release) Support for wide and extended length tapes ------------------------------------------ The Conner TSM 420 and 850 drives are reported to be working. I haven't received any reports about other brands; the TSM 420 and 850 seem to be the most widely used wide drives. Extended length tapes (425 ft) with normal QIC-80 drives are operating too (At least I've had no reports stating otherwise). _Not_ yet completely supported (although they may work) are QIC-3020 drives and 2 Mbps floppy disk controllers won't work at the highest speed. If someone is kind enough to send me one of these, I'll include support for it too ;-) Easier configuration -------------------- Problems due to wrong settings in the Makefile are prevented by using a configuration script that sets the necessary (kernel version dependent) compile time options. This kernel version is now determined from the sources found at /usr/src/linux, or if not found, the old way using /proc/version. Versioned modules will be used automatically when supported by- and configured in- the kernel. Note that the current modules code (1.1.87) is still broken and _needs_ the fix included in the insmod directory. Please don't send me any more Oops reports caused by insmod :-( Reduced module size ------------------- The standard module size is much reduced and some compile time options can even reduce it further. (I don't recommend this for normal use but it can be handy for rescue diskettes) Option: Approx. module size: 150 Kb NO_TRACE 125 Kb NO_TRACE_AT_ALL 67 Kb Much improved driver interruption --------------------------------- Most possible loops have been broken and signal detection has been improved. In most cases the driver can be aborted by ^C (SIGINT) and SIGKILL (kill -9) will generate be a sure kill. (Note that aborting a tape operation may damage the last data written to tape) Improved error recovery ----------------------- Ftape now returns an error (ENODATA) to the application if a segment proves to be unrecoverable and then skips the bad segment. This causes most applications to continue to work (tar and afio) loosing only a small amount (up to 29 Kb) of data. Retried read operations will now be done slighly off-track to improve the chance of success. Serious head off-track errors will be detected. FC-10 and FC-20 controllers --------------------------- Ftape now supports both the old CMS FC-10 and the newer FC-20 controllers. Because the operation of these cards is still undocumented, thus far they will only work with the default settings (See Makefile). Any feed-back on how to use them with other settings will be welcome ! Compilation will fail if one changes the settings to illegal values. Kernels and compilers --------------------- Ftape is currently being developped using the 2.5.8 compiler. The older 2.4.5 probably works too (Set option in Makefile!). I have no experience with any later compilers nor Elf support. Any information on this is welcome. The latest kernel I have tested ftape with is 1.2.6. Compression ----------- An impressive collection of changes for ftape including on-the-fly compression is still lying on my desk. If 2.03 proves to be reliable I might start integrating these but as usual, I'm short in time :-( Formatting ---------- There is still no way to format tapes under Linux. As far as I know all attempts to write such a program have died now. Since formatted tapes are rather common now, I think all we need is a utility that writes a worst case pattern and verifies that with the drive put in verify mode, reducing margins. Any takers ? Furthermore ----------- Cleaned up messages. Prepared to support multiple tape drives on one fdc. Thanks to all the people who sent bug reports and helped me improve the driver. Without trying to be complete I'll mention Gary Anderson (without his accurate reports and unreliable hardware there wouldn't be a 2.03), Stefan Kneifel (FC-20), Robert Broughton (FC-20, you were almost there ;-), Bjorn Ekwall (for the versioned modules and buggy insmod ;-), Peter Fox, Christopher Oliver, Ralph Whittaker and not the least Linus Torvalds (for Linux and keeping me busy because of changes to the kernel ;-) Thanks to anyone I forgot, for the bug reports, the ftape bashing and the mental support... That's it for now. Have Fun, Bas. ===== Release notes for ftape-2.02g, 06/05/95 ===== - Added extra test to break read-id loop with signal. - Changed rewind code to handle negative overshoot for drives that take very long to start or stop. - Let use of get/set i/o-regions depend on kernel version. - Changed code to use a more general test for conditional compilations depending on kernel version. - Improved micro-step functionality to go off-track only while reading (id & data). - Added failure on tape-not-referenced bit in ftape_command. - Added FOREVER option to read-wait routine. - Changed read-id to use shorter timeout causing smaller rewinds on timeout. - Made kernel-interface functions static. ===== Release notes for ftape-2.02f, 03/05/95 ===== - Added support for dual tape drives on my system, extended Configure script to detect host 'dodo'. - Log media defect in history if ecc failed and no data was returned. - Fixed Configure script that was failing for kernel versions with double digit version or revision numbers. ===== Release notes for ftape-2.02e, 01/05/95 ===== - Fixed reposition loop at logical eot (failing read_id). - Fixed 34 segment offset when rewinding. - Added fast seek capability for more than 255 segments. - Fixed wrong busy result from ftape_command causing reverse seek to fail. - Added breakout from infinite rewind loop (if something fails). ===== Release notes for ftape-2.02d, 30/04/95 ===== - Improved abortion on signals: Interrupt will make a gracefull exit, Kill will be less nice and should be used if everything else fails. - Included check for tape-head off track. - Implemented exit from tape-start loop. - Added kernel io-port registration. - Implemented skip of failing segment (ENODATA) on ecc failure. This allows afio and tar to continue when the tape is damaged. - Made distinction between drive names with different codes. ===== Release notes for ftape-2.02c, 22/04/95 ===== - Fixed too tight command queueing after tape stop/pause command issued from within interrupt service routine (Showed as timeout on Acknowledge errors during retries on some systems) - Tried to fix timeouts when using 425 ft tape because the extended length doesn't seem to be detected by the hardware. We now use the format code from the header segment so adjust the timing after reading the header segment. - Fixed some messages stating 'unexpected something...' being not unexpected anymore. - Started preparations for merge of dynamic buffer allocation and compression code. - Changed some debug messages to include relevant segment information at level 4. - Included early bail-out when drive offline, preventing a lot of false messages. - Moved ftape_parameter_xxx() offsets into function instead of in calls. - Removed 'weird, drive busy but no data' error when caused by an error during a read-id. - Improved 'timeout on acknowledge' diagnostics. - Moved MODULE option into Configure. - Reduced code size when no tracing at all was set (Claus Heine). - No longer log error code 0 (no error) as an error. ===== Release notes for ftape-2.02b, 09/04/95 ===== - Relaxed timing for status operation and displaying abnormal results. Hopefully this shows what's going wrong with the Conner TSM850R drives. - Created script for configuration, using version number of kernel source if available, otherwise /proc/version. - Fixed conditionals in kernel-interface.c. - Removed unavoidable TRACE output. ===== Release notes for ftape-2.02a, 01/04/95 ===== - Implemented `new-style' (versioned) modules support for new kernels. - Reduced size of module by moving static data to bss. - Now using version number of kernel source instead of running kernel for kernel versions >= 1.1.82 - Added feedback on drive speeds to vendor information. - Included fixed insmod sources to distribution (Let's hope the modules distribution get fixed soon :-/). Note that I haven't yet implemented any of the code extension I received. I hope to find some time to do this soon. ===== Release notes for ftape-2.02, 15/01/95 ===== - Fixed failing repositioning when overshoot was incremented. - Fixed rate selection: Because of a deficiency in the QIC-117 specification one cannot distinguish between a not implemented and a failing command. Therefor we now try to find out if the drive does support this command before usage. - Fixed error retry using wrong offset in fdc-isr. - Improved retry code to retry only once on a single no-data error in a segment. - Validate sector number extracted from eof mark because an invalid file mark (due to ???) could cause kernel panic. - Split ftape-io.c into ftape-io.c and ftape-ctl.c files. - Corrected too high media error count after writing to a bad tape. - Added #include again because old kernel versions need it. - Fixed fdc not being disabled when open failed because no tape drive was found. - Fixed problem with soft error in sector 32 (shift operator with shiftcount 32 is not defined). ===== Release notes for ftape-2.01, 08/01/95 ===== - Removed TESTING setting from distributed Makefile. - Fixed `mt asf' failure: Rewind was deferred to close which overruled the fsf ioctl. - Prevented non-interruptible commands being interrupted. - Added missing timeout.pause setting. - Maximum tape speed read from drive type information table. If the information is not in the table (0) the drive will determine the speed itself and put a message in the logfile. This information should then be added to the table in the vendors.h file (and reported to me). - Added call to ftape_init_drive after soft reset for those (antique) drives that don't do an implicit seek_load_point after a reset or power up. - Don't try to set data rate if reset failed. - Prevent update of seek variables when starting from the beginning or the end of the tape. - Fixed wrong adjustment of overshoot in seek_forward(). - Added sync to Makefile (again). - Added code to diagnose timer problems (calibr.c). - Replaced time differences by timediff calls. - Removed reference to do_floppy from object for recent kernels. - Fixed wrong display of 'failing dma controller' message. - Removed various no longer used #include statements. - Added max. tape speed value to vendor-struct. - Changed ftape-command to check pre-conditions and wait if needed. - Further updated qic117.h to rev G. - Combined command name table and restrictions table to one. Extended this table with some new fields. - Increased timeout on Ack timer value and included code to report out of spec behaviour. - Increased rewind timeout margin to calculated + 20%. - Improved data rate selection so it won't fail on some older (pre standard) drives. - Changed initialisation code so drive will be rewound if the driver is reloaded and the tape is not at bot. - Moved some of the flush operations from close to the ioctls. - Added exit code value to failing verify area message. - Loop until tape halted in smart-stop. - Fast seek handled specially if located at bot or eot. - Being more conservative on overshoot value. ===== Release notes for ftape-2.00, 31/12/94 ===== The Install-guide is completely rewritten and now also includes some information on how to use the driver. If you're either new to ftape or new to Unix tape devices make sure to read it ! If you own a pci system and experience problems with the ftape driver make sure to read the README.PCI file. It contains some hints on how to fix your hardware. For anybody who hasn't noticed: The version number of the driver has been incremented (The latest released version has been version 1.14d). This has been done for two major reasons: o A new (better) error recovery scheme is implemented. o Support for new drive types has been added. All these improvements/changes will probably include a couple of new (and old?) bugs. If you encounter any problems that you think I'm not yet aware of, feel free to send a report to . I recommend keeping a version of ftape-1.14d available, just in case ;-) This version should work with all kernel versions from 1.0.9 up to 1.1.72 (and probably earlier and later versions too). Major new features: - Better handling of tapes with defects: When a sector repeatedly (SOFT_RETRIES in ftape.h) cannot be written to or read from it is marked as an hard error and gets skipped. The error correction code can handle up to three of these hard errors provided there are no other errors in that segment (32 Kb). - Allows writing to tapes with defects (although the risc of loosing data increases !) Look for the media-defects entry printed with the statistics when the tape is closed. A non-zero value here shows a bad tape. [the actual count is wrong (too high), this is a known bug]. - Use of backup header segment if first one is failing. - Support for extended length tapes with QIC-80: both 425 and 1100 ft. 0.25 inch tapes are now recognized and handled. - Support for new QIC-80 drives with 8 mm `wide' tapes (e.g. Conner TSM 420). - Support for new QIC-3010 and QIC-3020 drives (experimental) with both 0.25 inch and 8 mm tapes. Some minor features were added, a couple of small bugs were fixed and probably some new ones introduced ;-). [lseek() didn't make it into this version] Have fun, Bas. ----