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