You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Remove long-unmaintained ftape driver subsystem.
It's bitrotten, long unmaintained, long hidden under BROKEN_ON_SMP, etc. As scheduled in feature-removal-schedule.txt, and ack'd several times on lkml. Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
@@ -104,8 +104,6 @@ firmware_class/
|
||||
- request_firmware() hotplug interface info.
|
||||
floppy.txt
|
||||
- notes and driver options for the floppy disk driver.
|
||||
ftape.txt
|
||||
- notes about the floppy tape device driver.
|
||||
hayes-esp.txt
|
||||
- info on using the Hayes ESP serial driver.
|
||||
highuid.txt
|
||||
|
||||
@@ -234,14 +234,6 @@ Who: Jean Delvare <khali@linux-fr.org>
|
||||
|
||||
---------------------------
|
||||
|
||||
What: ftape
|
||||
When: 2.6.20
|
||||
Why: Orphaned for ages. SMP bugs long unfixed. Few users left
|
||||
in the world.
|
||||
Who: Jeff Garzik <jeff@garzik.org>
|
||||
|
||||
---------------------------
|
||||
|
||||
What: IPv4 only connection tracking/NAT/helpers
|
||||
When: 2.6.22
|
||||
Why: The new layer 3 independant connection tracking replaces the old
|
||||
|
||||
@@ -1,307 +0,0 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
This file describes some issues involved when using the "ftape"
|
||||
floppy tape device driver that comes with the Linux kernel.
|
||||
|
||||
ftape has a home page at
|
||||
|
||||
http://ftape.dot-heine.de/
|
||||
|
||||
which contains further information about ftape. Please cross check
|
||||
this WWW address against the address given (if any) in the MAINTAINERS
|
||||
file located in the top level directory of the Linux kernel source
|
||||
tree.
|
||||
|
||||
NOTE: This is an unmaintained set of drivers, and it is not guaranteed to work.
|
||||
If you are interested in taking over maintenance, contact Claus-Justus Heine
|
||||
<ch@dot-heine.de>, the former maintainer.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
A minus 1: Ftape documentation
|
||||
|
||||
A. Changes
|
||||
1. Goal
|
||||
2. I/O Block Size
|
||||
3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape)
|
||||
4. Formatting
|
||||
5. Interchanging cartridges with other operating systems
|
||||
|
||||
B. Debugging Output
|
||||
1. Introduction
|
||||
2. Tuning the debugging output
|
||||
|
||||
C. Boot and load time configuration
|
||||
1. Setting boot time parameters
|
||||
2. Module load time parameters
|
||||
3. Ftape boot- and load time options
|
||||
4. Example kernel parameter setting
|
||||
5. Example module parameter setting
|
||||
|
||||
D. Support and contacts
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
A minus 1. Ftape documentation
|
||||
==============================
|
||||
|
||||
Unluckily, the ftape-HOWTO is out of date. This really needs to be
|
||||
changed. Up to date documentation as well as recent development
|
||||
versions of ftape and useful links to related topics can be found at
|
||||
the ftape home page at
|
||||
|
||||
http://ftape.dot-heine.de/
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
A. Changes
|
||||
==========
|
||||
|
||||
1. Goal
|
||||
~~~~
|
||||
The goal of all that incompatibilities was to give ftape an interface
|
||||
that resembles the interface provided by SCSI tape drives as close
|
||||
as possible. Thus any Unix backup program that is known to work
|
||||
with SCSI tape drives should also work.
|
||||
|
||||
The concept of a fixed block size for read/write transfers is
|
||||
rather unrelated to this SCSI tape compatibility at the file system
|
||||
interface level. It developed out of a feature of zftape, a
|
||||
block wise user transparent on-the-fly compression. That compression
|
||||
support will not be dropped in future releases for compatibility
|
||||
reasons with previous releases of zftape.
|
||||
|
||||
2. I/O Block Size
|
||||
~~~~~~~~~~~~~~
|
||||
The block size defaults to 10k which is the default block size of
|
||||
GNU tar.
|
||||
|
||||
The block size can be tuned either during kernel configuration or
|
||||
at runtime with the MTIOCTOP ioctl using the MTSETBLK operation
|
||||
(i.e. do "mt -f /dev/qft0" setblk #BLKSZ). A block size of 0
|
||||
switches to variable block size mode i.e. "mt setblk 0" switches
|
||||
off the block size restriction. However, this disables zftape's
|
||||
built in on-the-fly compression which doesn't work with variable
|
||||
block size mode.
|
||||
|
||||
The BLKSZ parameter must be given as a byte count and must be a
|
||||
multiple of 32k or 0, i.e. use "mt setblk 32768" to switch to a
|
||||
block size of 32k.
|
||||
|
||||
The typical symptom of a block size mismatch is an "invalid
|
||||
argument" error message.
|
||||
|
||||
3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
zftape (the file system interface of ftape-3.x) denies write access
|
||||
to the tape cartridge when it isn't positioned either at BOT or
|
||||
EOD.
|
||||
|
||||
4. Formatting
|
||||
~~~~~~~~~~
|
||||
ftape DOES support formatting of floppy tape cartridges. You need the
|
||||
`ftformat' program that is shipped with the modules version of ftape.
|
||||
Please get the latest version of ftape from
|
||||
|
||||
ftp://sunsite.unc.edu/pub/Linux/kernel/tapes
|
||||
|
||||
or from the ftape home page at
|
||||
|
||||
http://ftape.dot-heine.de/
|
||||
|
||||
`ftformat' is contained in the `./contrib/' subdirectory of that
|
||||
separate ftape package.
|
||||
|
||||
5. Interchanging cartridges with other operating systems
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The internal emulation of Unix tape device file marks has changed
|
||||
completely. ftape now uses the volume table segment as specified
|
||||
by the QIC-40/80/3010/3020/113 standards to emulate file marks. As
|
||||
a consequence there is limited support to interchange cartridges
|
||||
with other operating systems.
|
||||
|
||||
To be more precise: ftape will detect volumes written by other OS's
|
||||
programs and other OS's programs will detect volumes written by
|
||||
ftape.
|
||||
|
||||
However, it isn't possible to extract the data dumped to the tape
|
||||
by some MSDOS program with ftape. This exceeds the scope of a
|
||||
kernel device driver. If you need such functionality, then go ahead
|
||||
and write a user space utility that is able to do that. ftape already
|
||||
provides all kernel level support necessary to do that.
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
B. Debugging Output
|
||||
================
|
||||
|
||||
1. Introduction
|
||||
~~~~~~~~~~~~
|
||||
The ftape driver can be very noisy in that is can print lots of
|
||||
debugging messages to the kernel log files and the system console.
|
||||
While this is useful for debugging it might be annoying during
|
||||
normal use and enlarges the size of the driver by several kilobytes.
|
||||
|
||||
To reduce the size of the driver you can trim the maximal amount of
|
||||
debugging information available during kernel configuration. Please
|
||||
refer to the kernel configuration script and its on-line help
|
||||
functionality.
|
||||
|
||||
The amount of debugging output maps to the "tracing" boot time
|
||||
option and the "ft_tracing" modules option as follows:
|
||||
|
||||
0 bugs
|
||||
1 + errors (with call-stack dump)
|
||||
2 + warnings
|
||||
3 + information
|
||||
4 + more information
|
||||
5 + program flow
|
||||
6 + fdc/dma info
|
||||
7 + data flow
|
||||
8 + everything else
|
||||
|
||||
2. Tuning the debugging output
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
To reduce the amount of debugging output printed to the system
|
||||
console you can
|
||||
|
||||
i) trim the debugging output at run-time with
|
||||
|
||||
mt -f /dev/nqft0 setdensity #DBGLVL
|
||||
|
||||
where "#DBGLVL" is a number between 0 and 9
|
||||
|
||||
ii) trim the debugging output at module load time with
|
||||
|
||||
modprobe ftape ft_tracing=#DBGLVL
|
||||
|
||||
Of course, this applies only if you have configured ftape to be
|
||||
compiled as a module.
|
||||
|
||||
iii) trim the debugging output during system boot time. Add the
|
||||
following to the kernel command line:
|
||||
|
||||
ftape=#DBGLVL,tracing
|
||||
|
||||
Please refer also to the next section if you don't know how to
|
||||
set boot time parameters.
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
C. Boot and load time configuration
|
||||
================================
|
||||
|
||||
1. Setting boot time parameters
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Assuming that you use lilo, the LI)nux LO)ader, boot time kernel
|
||||
parameters can be set by adding a line
|
||||
|
||||
append some_kernel_boot_time_parameter
|
||||
|
||||
to `/etc/lilo.conf' or at real boot time by typing in the options
|
||||
at the prompt provided by LILO. I can't give you advice on how to
|
||||
specify those parameters with other loaders as I don't use them.
|
||||
|
||||
For ftape, each "some_kernel_boot_time_parameter" looks like
|
||||
"ftape=value,option". As an example, the debugging output can be
|
||||
increased with
|
||||
|
||||
ftape=4,tracing
|
||||
|
||||
NOTE: the value precedes the option name.
|
||||
|
||||
2. Module load time parameters
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Module parameters can be specified either directly when invoking
|
||||
the program 'modprobe' at the shell prompt:
|
||||
|
||||
modprobe ftape ft_tracing=4
|
||||
|
||||
or by editing the file `/etc/modprobe.conf' in which case they take
|
||||
effect each time when the module is loaded with `modprobe' (please
|
||||
refer to the respective manual pages). Thus, you should add a line
|
||||
|
||||
options ftape ft_tracing=4
|
||||
|
||||
to `/etc/modprobe.conf` if you intend to increase the debugging
|
||||
output of the driver.
|
||||
|
||||
|
||||
3. Ftape boot- and load time options
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
i. Controlling the amount of debugging output
|
||||
DBGLVL has to be replaced by a number between 0 and 8.
|
||||
|
||||
module | kernel command line
|
||||
-----------------------|----------------------
|
||||
ft_tracing=DBGLVL | ftape=DBGLVL,tracing
|
||||
|
||||
ii. Hardware setup
|
||||
BASE is the base address of your floppy disk controller,
|
||||
IRQ and DMA give its interrupt and DMA channel, respectively.
|
||||
BOOL is an integer, "0" means "no"; any other value means
|
||||
"yes". You don't need to specify anything if connecting your tape
|
||||
drive to the standard floppy disk controller. All of these
|
||||
values have reasonable defaults. The defaults can be modified
|
||||
during kernel configuration, i.e. while running "make config",
|
||||
"make menuconfig" or "make xconfig" in the top level directory
|
||||
of the Linux kernel source tree. Please refer also to the on
|
||||
line documentation provided during that kernel configuration
|
||||
process.
|
||||
|
||||
ft_probe_fc10 is set to a non-zero value if you wish for ftape to
|
||||
probe for a Colorado FC-10 or FC-20 controller.
|
||||
|
||||
ft_mach2 is set to a non-zero value if you wish for ftape to probe
|
||||
for a Mountain MACH-2 controller.
|
||||
|
||||
module | kernel command line
|
||||
-----------------------|----------------------
|
||||
ft_fdc_base=BASE | ftape=BASE,ioport
|
||||
ft_fdc_irq=IRQ | ftape=IRQ,irq
|
||||
ft_fdc_dma=DMA | ftape=DMA,dma
|
||||
ft_probe_fc10=BOOL | ftape=BOOL,fc10
|
||||
ft_mach2=BOOL | ftape=BOOL,mach2
|
||||
ft_fdc_threshold=THR | ftape=THR,threshold
|
||||
ft_fdc_rate_limit=RATE | ftape=RATE,datarate
|
||||
|
||||
4. Example kernel parameter setting
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
To configure ftape to probe for a Colorado FC-10/FC-20 controller
|
||||
and to increase the amount of debugging output a little bit, add
|
||||
the following line to `/etc/lilo.conf':
|
||||
|
||||
append ftape=1,fc10 ftape=4,tracing
|
||||
|
||||
5. Example module parameter setting
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
To do the same, but with ftape compiled as a loadable kernel
|
||||
module, add the following line to `/etc/modprobe.conf':
|
||||
|
||||
options ftape ft_probe_fc10=1 ft_tracing=4
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
D. Support and contacts
|
||||
====================
|
||||
|
||||
Ftape is distributed under the GNU General Public License. There is
|
||||
absolutely no warranty for this software. However, you can reach
|
||||
the current maintainer of the ftape package under the email address
|
||||
given in the MAINTAINERS file which is located in the top level
|
||||
directory of the Linux kernel source tree. There you'll find also
|
||||
the relevant mailing list to use as a discussion forum and the web
|
||||
page to query for the most recent documentation, related work and
|
||||
development versions of ftape.
|
||||
|
||||
Changelog:
|
||||
==========
|
||||
|
||||
~1996: Original Document
|
||||
|
||||
10-24-2004: General cleanup and updating, noting additional module options.
|
||||
James Nelson <james4765@gmail.com>
|
||||
@@ -557,9 +557,6 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
floppy= [HW]
|
||||
See Documentation/floppy.txt.
|
||||
|
||||
ftape= [HW] Floppy Tape subsystem debugging options.
|
||||
See Documentation/ftape.txt.
|
||||
|
||||
gamecon.map[2|3]=
|
||||
[HW,JOY] Multisystem joystick and NES/SNES/PSX pad
|
||||
support via parallel port (up to 5 devices per port)
|
||||
|
||||
@@ -1166,11 +1166,6 @@ P: David Howells
|
||||
M: dhowells@redhat.com
|
||||
S: Maintained
|
||||
|
||||
FTAPE/QIC-117
|
||||
L: linux-tape@vger.kernel.org
|
||||
W: http://sourceforge.net/projects/ftape
|
||||
S: Orphan
|
||||
|
||||
FUSE: FILESYSTEM IN USERSPACE
|
||||
P: Miklos Szeredi
|
||||
M: miklos@szeredi.hu
|
||||
|
||||
@@ -855,39 +855,6 @@ config TANBAC_TB0219
|
||||
depends TANBAC_TB022X
|
||||
select GPIO_VR41XX
|
||||
|
||||
menu "Ftape, the floppy tape device driver"
|
||||
|
||||
config FTAPE
|
||||
tristate "Ftape (QIC-80/Travan) support"
|
||||
depends on BROKEN_ON_SMP && (ALPHA || X86)
|
||||
---help---
|
||||
If you have a tape drive that is connected to your floppy
|
||||
controller, say Y here.
|
||||
|
||||
Some tape drives (like the Seagate "Tape Store 3200" or the Iomega
|
||||
"Ditto 3200" or the Exabyte "Eagle TR-3") come with a "high speed"
|
||||
controller of their own. These drives (and their companion
|
||||
controllers) are also supported if you say Y here.
|
||||
|
||||
If you have a special controller (such as the CMS FC-10, FC-20,
|
||||
Mountain Mach-II, or any controller that is based on the Intel 82078
|
||||
FDC like the high speed controllers by Seagate and Exabyte and
|
||||
Iomega's "Ditto Dash") you must configure it by selecting the
|
||||
appropriate entries from the "Floppy tape controllers" sub-menu
|
||||
below and possibly modify the default values for the IRQ and DMA
|
||||
channel and the IO base in ftape's configuration menu.
|
||||
|
||||
If you want to use your floppy tape drive on a PCI-bus based system,
|
||||
please read the file <file:drivers/char/ftape/README.PCI>.
|
||||
|
||||
The ftape kernel driver is also available as a runtime loadable
|
||||
module. To compile this driver as a module, choose M here: the
|
||||
module will be called ftape.
|
||||
|
||||
source "drivers/char/ftape/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
||||
source "drivers/char/agp/Kconfig"
|
||||
|
||||
source "drivers/char/drm/Kconfig"
|
||||
|
||||
@@ -78,7 +78,6 @@ obj-$(CONFIG_TOSHIBA) += toshiba.o
|
||||
obj-$(CONFIG_I8K) += i8k.o
|
||||
obj-$(CONFIG_DS1620) += ds1620.o
|
||||
obj-$(CONFIG_HW_RANDOM) += hw_random/
|
||||
obj-$(CONFIG_FTAPE) += ftape/
|
||||
obj-$(CONFIG_COBALT_LCD) += lcd.o
|
||||
obj-$(CONFIG_PPDEV) += ppdev.o
|
||||
obj-$(CONFIG_NWBUTTON) += nwbutton.o
|
||||
|
||||
@@ -1,330 +0,0 @@
|
||||
#
|
||||
# Ftape configuration
|
||||
#
|
||||
config ZFTAPE
|
||||
tristate "Zftape, the VFS interface"
|
||||
depends on FTAPE
|
||||
---help---
|
||||
Normally, you want to say Y or M. DON'T say N here or you
|
||||
WON'T BE ABLE TO USE YOUR FLOPPY TAPE DRIVE.
|
||||
|
||||
The ftape module itself no longer contains the routines necessary
|
||||
to interface with the kernel VFS layer (i.e. to actually write data
|
||||
to and read data from the tape drive). Instead the file system
|
||||
interface (i.e. the hardware independent part of the driver) has
|
||||
been moved to a separate module.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called zftape.
|
||||
|
||||
Regardless of whether you say Y or M here, an additional runtime
|
||||
loadable module called `zft-compressor' which contains code to
|
||||
support user transparent on-the-fly compression based on Ross
|
||||
William's lzrw3 algorithm will be produced. If you have enabled the
|
||||
kernel module loader (i.e. have said Y to "Kernel module loader
|
||||
support", above) then `zft-compressor' will be loaded
|
||||
automatically by zftape when needed.
|
||||
|
||||
Despite its name, zftape does NOT use compression by default.
|
||||
|
||||
config ZFT_DFLT_BLK_SZ
|
||||
int "Default block size"
|
||||
depends on ZFTAPE
|
||||
default "10240"
|
||||
---help---
|
||||
If unsure leave this at its default value, i.e. 10240. Note that
|
||||
you specify only the default block size here. The block size can be
|
||||
changed at run time using the MTSETBLK tape operation with the
|
||||
MTIOCTOP ioctl (i.e. with "mt -f /dev/qft0 setblk #BLKSZ" from the
|
||||
shell command line).
|
||||
|
||||
The probably most striking difference between zftape and previous
|
||||
versions of ftape is the fact that all data must be written or read
|
||||
in multiples of a fixed block size. The block size defaults to
|
||||
10240 which is what GNU tar uses. The values for the block size
|
||||
should be either 1 or multiples of 1024 up to a maximum value of
|
||||
63488 (i.e. 62 K). If you specify `1' then zftape's builtin
|
||||
compression will be disabled.
|
||||
|
||||
Reasonable values are `10240' (GNU tar's default block size),
|
||||
`5120' (afio's default block size), `32768' (default block size some
|
||||
backup programs assume for SCSI tape drives) or `1' (no restriction
|
||||
on block size, but disables builtin compression).
|
||||
|
||||
comment "The compressor will be built as a module only!"
|
||||
depends on FTAPE && ZFTAPE
|
||||
|
||||
config ZFT_COMPRESSOR
|
||||
tristate
|
||||
depends on FTAPE!=n && ZFTAPE!=n
|
||||
default m
|
||||
|
||||
config FT_NR_BUFFERS
|
||||
int "Number of ftape buffers (EXPERIMENTAL)"
|
||||
depends on FTAPE && EXPERIMENTAL
|
||||
default "3"
|
||||
help
|
||||
Please leave this at `3' unless you REALLY know what you are doing.
|
||||
It is not necessary to change this value. Values below 3 make the
|
||||
proper use of ftape impossible, values greater than 3 are a waste of
|
||||
memory. You can change the amount of DMA memory used by ftape at
|
||||
runtime with "mt -f /dev/qft0 setdrvbuffer #NUMBUFFERS". Each buffer
|
||||
wastes 32 KB of memory. Please note that this memory cannot be
|
||||
swapped out.
|
||||
|
||||
config FT_PROC_FS
|
||||
bool "Enable procfs status report (+2kb)"
|
||||
depends on FTAPE && PROC_FS
|
||||
---help---
|
||||
Optional. Saying Y will result in creation of a directory
|
||||
`/proc/ftape' under the /proc file system. The files can be viewed
|
||||
with your favorite pager (i.e. use "more /proc/ftape/history" or
|
||||
"less /proc/ftape/history" or simply "cat /proc/ftape/history"). The
|
||||
file will contain some status information about the inserted
|
||||
cartridge, the kernel driver, your tape drive, the floppy disk
|
||||
controller and the error history for the most recent use of the
|
||||
kernel driver. Saying Y will enlarge the size of the ftape driver
|
||||
by approximately 2 KB.
|
||||
|
||||
WARNING: When compiling ftape as a module (i.e. saying M to "Floppy
|
||||
tape drive") it is dangerous to use ftape's /proc file system
|
||||
interface. Accessing `/proc/ftape' while the module is unloaded will
|
||||
result in a kernel Oops. This cannot be fixed from inside ftape.
|
||||
|
||||
choice
|
||||
prompt "Debugging output"
|
||||
depends on FTAPE
|
||||
default FT_NORMAL_DEBUG
|
||||
|
||||
config FT_NORMAL_DEBUG
|
||||
bool "Normal"
|
||||
---help---
|
||||
This option controls the amount of debugging output the ftape driver
|
||||
is ABLE to produce; it does not increase or diminish the debugging
|
||||
level itself. If unsure, leave this at its default setting,
|
||||
i.e. choose "Normal".
|
||||
|
||||
Ftape can print lots of debugging messages to the system console
|
||||
resp. kernel log files. Reducing the amount of possible debugging
|
||||
output reduces the size of the kernel module by some KB, so it might
|
||||
be a good idea to use "None" for emergency boot floppies.
|
||||
|
||||
If you want to save memory then the following strategy is
|
||||
recommended: leave this option at its default setting "Normal" until
|
||||
you know that the driver works as expected, afterwards reconfigure
|
||||
the kernel, this time specifying "Reduced" or "None" and recompile
|
||||
and install the kernel as usual. Note that choosing "Excessive"
|
||||
debugging output does not increase the amount of debugging output
|
||||
printed to the console but only makes it possible to produce
|
||||
"Excessive" debugging output.
|
||||
|
||||
Please read <file:Documentation/ftape.txt> for a short description
|
||||
how to control the amount of debugging output.
|
||||
|
||||
config FT_FULL_DEBUG
|
||||
bool "Excessive"
|
||||
help
|
||||
Extremely verbose output for driver debugging purposes.
|
||||
|
||||
config FT_NO_TRACE
|
||||
bool "Reduced"
|
||||
help
|
||||
Reduced tape driver debugging output.
|
||||
|
||||
config FT_NO_TRACE_AT_ALL
|
||||
bool "None"
|
||||
help
|
||||
Suppress all debugging output from the tape drive.
|
||||
|
||||
endchoice
|
||||
|
||||
comment "Hardware configuration"
|
||||
depends on FTAPE
|
||||
|
||||
choice
|
||||
prompt "Floppy tape controllers"
|
||||
depends on FTAPE
|
||||
default FT_STD_FDC
|
||||
|
||||
config FT_STD_FDC
|
||||
bool "Standard"
|
||||
---help---
|
||||
Only change this setting if you have a special controller. If you
|
||||
didn't plug any add-on card into your computer system but just
|
||||
plugged the floppy tape cable into the already existing floppy drive
|
||||
controller then you don't want to change the default setting,
|
||||
i.e. choose "Standard".
|
||||
|
||||
Choose "MACH-2" if you have a Mountain Mach-2 controller.
|
||||
Choose "FC-10/FC-20" if you have a Colorado FC-10 or FC-20
|
||||
controller.
|
||||
Choose "Alt/82078" if you have another controller that is located at
|
||||
an IO base address different from the standard floppy drive
|
||||
controller's base address of `0x3f0', or uses an IRQ (interrupt)
|
||||
channel different from `6', or a DMA channel different from
|
||||
`2'. This is necessary for any controller card that is based on
|
||||
Intel's 82078 FDC such as Seagate's, Exabyte's and Iomega's "high
|
||||
speed" controllers.
|
||||
|
||||
If you choose something other than "Standard" then please make
|
||||
sure that the settings for the IO base address and the IRQ and DMA
|
||||
channel in the configuration menus below are correct. Use the manual
|
||||
of your tape drive to determine the correct settings!
|
||||
|
||||
If you are already successfully using your tape drive with another
|
||||
operating system then you definitely should use the same settings
|
||||
for the IO base, the IRQ and DMA channel that have proven to work
|
||||
with that other OS.
|
||||
|
||||
Note that this menu lets you specify only the default setting for
|
||||
the hardware setup. The hardware configuration can be changed at
|
||||
boot time (when ftape is compiled into the kernel, i.e. if you
|
||||
have said Y to "Floppy tape drive") or module load time (i.e. if you
|
||||
have said M to "Floppy tape drive").
|
||||
|
||||
Please read also the file <file:Documentation/ftape.txt> which
|
||||
contains a short description of the parameters that can be set at
|
||||
boot or load time. If you want to use your floppy tape drive on a
|
||||
PCI-bus based system, please read the file
|
||||
<file:drivers/char/ftape/README.PCI>.
|
||||
|
||||
config FT_MACH2
|
||||
bool "MACH-2"
|
||||
|
||||
config FT_PROBE_FC10
|
||||
bool "FC-10/FC-20"
|
||||
|
||||
config FT_ALT_FDC
|
||||
bool "Alt/82078"
|
||||
|
||||
endchoice
|
||||
|
||||
comment "Consult the manuals of your tape drive for the correct settings!"
|
||||
depends on FTAPE && !FT_STD_FDC
|
||||
|
||||
config FT_FDC_BASE
|
||||
hex "IO base of the floppy disk controller"
|
||||
depends on FTAPE && !FT_STD_FDC
|
||||
default "0"
|
||||
---help---
|
||||
You don't need to specify a value if the following default
|
||||
settings for the base IO address are correct:
|
||||
<<< MACH-2 : 0x1E0 >>>
|
||||
<<< FC-10/FC-20: 0x180 >>>
|
||||
<<< Secondary : 0x370 >>>
|
||||
Secondary refers to a secondary FDC controller like the "high speed"
|
||||
controllers delivered by Seagate or Exabyte or Iomega's Ditto Dash.
|
||||
Please make sure that the setting for the IO base address
|
||||
specified here is correct. USE THE MANUAL OF YOUR TAPE DRIVE OR
|
||||
CONTROLLER CARD TO DETERMINE THE CORRECT SETTING. If you are already
|
||||
successfully using the tape drive with another operating system then
|
||||
you definitely should use the same settings for the IO base that has
|
||||
proven to work with that other OS.
|
||||
|
||||
Note that this menu lets you specify only the default setting for
|
||||
the IO base. The hardware configuration can be changed at boot time
|
||||
(when ftape is compiled into the kernel, i.e. if you specified Y to
|
||||
"Floppy tape drive") or module load time (i.e. if you have said M to
|
||||
"Floppy tape drive").
|
||||
|
||||
Please read also the file <file:Documentation/ftape.txt> which
|
||||
contains a short description of the parameters that can be set at
|
||||
boot or load time.
|
||||
|
||||
config FT_FDC_IRQ
|
||||
int "IRQ channel of the floppy disk controller"
|
||||
depends on FTAPE && !FT_STD_FDC
|
||||
default "0"
|
||||
---help---
|
||||
You don't need to specify a value if the following default
|
||||
settings for the interrupt channel are correct:
|
||||
<<< MACH-2 : 6 >>>
|
||||
<<< FC-10/FC-20: 9 >>>
|
||||
<<< Secondary : 6 >>>
|
||||
Secondary refers to secondary a FDC controller like the "high speed"
|
||||
controllers delivered by Seagate or Exabyte or Iomega's Ditto Dash.
|
||||
Please make sure that the setting for the IO base address
|
||||
specified here is correct. USE THE MANUAL OF YOUR TAPE DRIVE OR
|
||||
CONTROLLER CARD TO DETERMINE THE CORRECT SETTING. If you are already
|
||||
successfully using the tape drive with another operating system then
|
||||
you definitely should use the same settings for the IO base that has
|
||||
proven to work with that other OS.
|
||||
|
||||
Note that this menu lets you specify only the default setting for
|
||||
the IRQ channel. The hardware configuration can be changed at boot
|
||||
time (when ftape is compiled into the kernel, i.e. if you said Y to
|
||||
"Floppy tape drive") or module load time (i.e. if you said M to
|
||||
"Floppy tape drive").
|
||||
|
||||
Please read also the file <file:Documentation/ftape.txt> which
|
||||
contains a short description of the parameters that can be set at
|
||||
boot or load time.
|
||||
|
||||
config FT_FDC_DMA
|
||||
int "DMA channel of the floppy disk controller"
|
||||
depends on FTAPE && !FT_STD_FDC
|
||||
default "0"
|
||||
---help---
|
||||
You don't need to specify a value if the following default
|
||||
settings for the DMA channel are correct:
|
||||
<<< MACH-2 : 2 >>>
|
||||
<<< FC-10/FC-20: 3 >>>
|
||||
<<< Secondary : 2 >>>
|
||||
Secondary refers to a secondary FDC controller like the "high speed"
|
||||
controllers delivered by Seagate or Exabyte or Iomega's Ditto Dash.
|
||||
Please make sure that the setting for the IO base address
|
||||
specified here is correct. USE THE MANUAL OF YOUR TAPE DRIVE OR
|
||||
CONTROLLER CARD TO DETERMINE THE CORRECT SETTING. If you are already
|
||||
successfully using the tape drive with another operating system then
|
||||
you definitely should use the same settings for the IO base that has
|
||||
proven to work with that other OS.
|
||||
|
||||
Note that this menu lets you specify only the default setting for
|
||||
the DMA channel. The hardware configuration can be changed at boot
|
||||
time (when ftape is compiled into the kernel, i.e. if you said Y to
|
||||
"Floppy tape drive") or module load time (i.e. if you said M to
|
||||
"Floppy tape drive").
|
||||
|
||||
Please read also the file <file:Documentation/ftape.txt> which
|
||||
contains a short description of the parameters that can be set at
|
||||
boot or load time.
|
||||
|
||||
config FT_FDC_THR
|
||||
int "Default FIFO threshold (EXPERIMENTAL)"
|
||||
depends on FTAPE && EXPERIMENTAL
|
||||
default "8"
|
||||
help
|
||||
Set the FIFO threshold of the FDC. If this is higher the DMA
|
||||
controller may serve the FDC after a higher latency time. If this is
|
||||
lower, fewer DMA transfers occur leading to less bus contention.
|
||||
You may try to tune this if ftape annoys you with "reduced data
|
||||
rate because of excessive overrun errors" messages. However, this
|
||||
doesn't seem to have too much effect.
|
||||
|
||||
If unsure, don't touch the initial value, i.e. leave it at "8".
|
||||
|
||||
config FT_FDC_MAX_RATE
|
||||
int "Maximal data rate to use (EXPERIMENTAL)"
|
||||
depends on FTAPE && EXPERIMENTAL
|
||||
default "2000"
|
||||
---help---
|
||||
With some motherboard/FDC combinations ftape will not be able to
|
||||
run your FDC/tape drive combination at the highest available
|
||||
speed. If this is the case you'll encounter "reduced data rate
|
||||
because of excessive overrun errors" messages and lots of retries
|
||||
before ftape finally decides to reduce the data rate.
|
||||
|
||||
In this case it might be desirable to tell ftape beforehand that
|
||||
it need not try to run the tape drive at the highest available
|
||||
speed. If unsure, leave this disabled, i.e. leave it at 2000
|
||||
bits/sec.
|
||||
|
||||
config FT_ALPHA_CLOCK
|
||||
int "CPU clock frequency of your DEC Alpha" if ALPHA
|
||||
depends on FTAPE
|
||||
default "0"
|
||||
help
|
||||
On some DEC Alpha machines the CPU clock frequency cannot be
|
||||
determined automatically, so you need to specify it here ONLY if
|
||||
running a DEC Alpha, otherwise this setting has no effect.
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 1997 Claus Heine.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# $Source: /homes/cvs/ftape-stacked/ftape/Makefile,v $
|
||||
# $Revision: 1.4 $
|
||||
# $Date: 1997/10/05 19:17:56 $
|
||||
#
|
||||
# Makefile for the QIC-40/80/3010/3020 floppy-tape driver for
|
||||
# Linux.
|
||||
#
|
||||
|
||||
obj-$(CONFIG_FTAPE) += lowlevel/
|
||||
obj-$(CONFIG_ZFTAPE) += zftape/
|
||||
obj-$(CONFIG_ZFT_COMPRESSOR) += compressor/
|
||||
@@ -1,81 +0,0 @@
|
||||
Some notes for ftape users with PCI motherboards:
|
||||
=================================================
|
||||
|
||||
The problem:
|
||||
------------
|
||||
|
||||
There have been some problem reports from people using PCI-bus based
|
||||
systems getting overrun errors.
|
||||
I wasn't able to reproduce these until I ran ftape on a Intel Plato
|
||||
(Premiere PCI II) motherboard with bios version 1.00.08AX1.
|
||||
It turned out that if GAT (Guaranteed Access Timing) is enabled (?)
|
||||
ftape gets a lot of overrun errors.
|
||||
The problem disappears when disabling GAT in the bios.
|
||||
Note that Intel removed this setting (permanently disabled) from the
|
||||
1.00.10AX1 bios !
|
||||
|
||||
It looks like that if GAT is enabled there are often large periods
|
||||
(greater than 120 us !??) on the ISA bus that the DMA controller cannot
|
||||
service the floppy disk controller.
|
||||
I cannot imagine this being acceptable in a decent PCI implementation.
|
||||
Maybe this is a `feature' of the chipset. I can only speculate why
|
||||
Intel choose to remove the option from the latest Bios...
|
||||
|
||||
The lesson of this all is that there may be other motherboard
|
||||
implementations having the same of similar problems.
|
||||
If you experience a lot of overrun errors during a backup to tape,
|
||||
see if there is some setting in the Bios that may influence the
|
||||
bus timing.
|
||||
|
||||
I judge this a hardware problem and not a limitation of ftape ;-)
|
||||
My DOS backup software seems to be suffering from the same problems
|
||||
and even refuses to run at 1 Mbps !
|
||||
Ftape will reduce the data-rate from 1 Mbps to 500 Kbps if the number
|
||||
of overrun errors on a track exceeds a threshold.
|
||||
|
||||
|
||||
Possible solutions:
|
||||
-------------------
|
||||
|
||||
Some of the problems were solved by upgrading the (flash) bios.
|
||||
Other suggest that it has to do with the FDC being on the PCI
|
||||
bus, but that is not the case with the Intel Premiere II boards.
|
||||
[If upgrading the bios doesn't solve the problem you could try
|
||||
a floppy disk controller on the isa-bus].
|
||||
|
||||
Here is a list of systems and recommended BIOS settings:
|
||||
|
||||
|
||||
Intel Premiere PCI (Revenge):
|
||||
|
||||
Bios version 1.00.09.AF2 is reported to work.
|
||||
|
||||
|
||||
|
||||
Intel Premiere PCI II (Plato):
|
||||
|
||||
Bios version 1.00.10.AX1 and version 11 beta are ok.
|
||||
If using version 1.00.08.AX1, GAT must be disabled !
|
||||
|
||||
|
||||
|
||||
ASUS PCI/I-SP3G:
|
||||
|
||||
Preferred settings: ISA-GAT-mode : disabled
|
||||
DMA-linebuffer-mode : standard
|
||||
ISA-masterbuffer-mode : standard
|
||||
|
||||
|
||||
DELL Dimension XPS P90
|
||||
|
||||
Bios version A2 is reported to be broken, while bios version A5 works.
|
||||
You can get a flash bios upgrade from http://www.dell.com
|
||||
|
||||
|
||||
To see if you're having the GAT problem, try making a backup
|
||||
under DOS. If it's very slow and often repositions you're
|
||||
probably having this problem.
|
||||
|
||||
--//--
|
||||
LocalWords: ftape PCI bios GAT ISA DMA chipset Mbps Kbps FDC isa AF ok ASUS
|
||||
LocalWords: SP linebuffer masterbuffer XPS http www com
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,31 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 1997 Claus-Justus Heine.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# $Source: /homes/cvs/ftape-stacked/ftape/compressor/Makefile,v $
|
||||
# $Revision: 1.1 $
|
||||
# $Date: 1997/10/05 19:12:28 $
|
||||
#
|
||||
# Makefile for the optional compressor for th zftape VFS
|
||||
# interface to the QIC-40/80/3010/3020 floppy-tape driver for
|
||||
# Linux.
|
||||
#
|
||||
|
||||
obj-$(CONFIG_ZFT_COMPRESSOR) += zft-compressor.o
|
||||
|
||||
zft-compressor-objs := zftape-compress.o lzrw3.o
|
||||
|
||||
CFLAGS_lzrw3.o := -O6 -funroll-all-loops
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,253 +0,0 @@
|
||||
#ifndef _LZRW3_H
|
||||
#define _LZRW3_H
|
||||
/*
|
||||
* $Source: /homes/cvs/ftape-stacked/ftape/compressor/lzrw3.h,v $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 1997/10/05 19:12:30 $
|
||||
*
|
||||
* include files for lzrw3. Only slighty modified from the original
|
||||
* version. Assembles the three include files compress.h, port.h and
|
||||
* fastcopy.h from the original lzrw3 package.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
/******************************************************************************/
|
||||
/* */
|
||||
/* COMPRESS.H */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
/* */
|
||||
/* Author : Ross Williams. */
|
||||
/* Date : December 1989. */
|
||||
/* */
|
||||
/* This header file defines the interface to a set of functions called */
|
||||
/* 'compress', each member of which implements a particular data compression */
|
||||
/* algorithm. */
|
||||
/* */
|
||||
/* Normally in C programming, for each .H file, there is a corresponding .C */
|
||||
/* file that implements the functions promised in the .H file. */
|
||||
/* Here, there are many .C files corresponding to this header file. */
|
||||
/* Each comforming implementation file contains a single function */
|
||||
/* called 'compress' that implements a single data compression */
|
||||
/* algorithm that conforms with the interface specified in this header file. */
|
||||
/* Only one algorithm can be linked in at a time in this organization. */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
/* */
|
||||
/* DEFINITION OF FUNCTION COMPRESS */
|
||||
/* =============================== */
|
||||
/* */
|
||||
/* Summary of Function Compress */
|
||||
/* ---------------------------- */
|
||||
/* The action that 'compress' takes depends on its first argument called */
|
||||
/* 'action'. The function provides three actions: */
|
||||
/* */
|
||||
/* - Return information about the algorithm. */
|
||||
/* - Compress a block of memory. */
|
||||
/* - Decompress a block of memory. */
|
||||
/* */
|
||||
/* Parameters */
|
||||
/* ---------- */
|
||||
/* See the formal C definition later for a description of the parameters. */
|
||||
/* */
|
||||
/* Constants */
|
||||
/* --------- */
|
||||
/* COMPRESS_OVERRUN: The constant COMPRESS_OVERRUN defines by how many bytes */
|
||||
/* an algorithm is allowed to expand a block during a compression operation. */
|
||||
/* */
|
||||
/* Although compression algorithms usually compress data, there will always */
|
||||
/* be data that a given compressor will expand (this can be proven). */
|
||||
/* Fortunately, the degree of expansion can be limited to a single bit, by */
|
||||
/* copying over the input data if the data gets bigger during compression. */
|
||||
/* To allow for this possibility, the first bit of a compressed */
|
||||
/* representation can be used as a flag indicating whether the */
|
||||
/* input data was copied over, or truly compressed. In practice, the first */
|
||||
/* byte would be used to store this bit so as to maintain byte alignment. */
|
||||
/* */
|
||||
/* Unfortunately, in general, the only way to tell if an algorithm will */
|
||||
/* expand a particular block of data is to run the algorithm on the data. */
|
||||
/* If the algorithm does not continuously monitor how many output bytes it */
|
||||
/* has written, it might write an output block far larger than the input */
|
||||
/* block before realizing that it has done so. */
|
||||
/* On the other hand, continuous checks on output length are inefficient. */
|
||||
/* */
|
||||
/* To cater for all these problems, this interface definition: */
|
||||
/* > Allows a compression algorithm to return an output block that is up to */
|
||||
/* COMPRESS_OVERRUN bytes longer than the input block. */
|
||||
/* > Allows a compression algorithm to write up to COMPRESS_OVERRUN bytes */
|
||||
/* more than the length of the input block to the memory of the output */
|
||||
/* block regardless of the length of the output block eventually returned. */
|
||||
/* This allows an algorithm to overrun the length of the input block in the */
|
||||
/* output block by up to COMPRESS_OVERRUN bytes between expansion checks. */
|
||||
/* */
|
||||
/* The problem does not arise for decompression. */
|
||||
/* */
|
||||
/* Identity Action */
|
||||
/* --------------- */
|
||||
/* > action must be COMPRESS_ACTION_IDENTITY. */
|
||||
/* > p_dst_len must point to a longword to receive a longword address. */
|
||||
/* > The value of the other parameters does not matter. */
|
||||
/* > After execution, the longword that p_dst_len points to will be a pointer */
|
||||
/* to a structure of type compress_identity. */
|
||||
/* Thus, for example, after the call, (*p_dst_len)->memory will return the */
|
||||
/* number of bytes of working memory that the algorithm requires to run. */
|
||||
/* > The values of the identity structure returned are fixed constant */
|
||||
/* attributes of the algorithm and must not vary from call to call. */
|
||||
/* */
|
||||
/* Common Requirements for Compression and Decompression Actions */
|
||||
/* ------------------------------------------------------------- */
|
||||
/* > wrk_mem must point to an unused block of memory of a length specified in */
|
||||
/* the algorithm's identity block. The identity block can be obtained by */
|
||||
/* making a separate call to compress, specifying the identity action. */
|
||||
/* > The INPUT BLOCK is defined to be Memory[src_addr,src_addr+src_len-1]. */
|
||||
/* > dst_len will be used to denote *p_dst_len. */
|
||||
/* > dst_len is not read by compress, only written. */
|
||||
/* > The value of dst_len is defined only upon termination. */
|
||||
/* > The OUTPUT BLOCK is defined to be Memory[dst_addr,dst_addr+dst_len-1]. */
|
||||
/* */
|
||||
/* Compression Action */
|
||||
/* ------------------ */
|
||||
/* > action must be COMPRESS_ACTION_COMPRESS. */
|
||||
/* > src_len must be in the range [0,COMPRESS_MAX_ORG]. */
|
||||
/* > The OUTPUT ZONE is defined to be */
|
||||
/* Memory[dst_addr,dst_addr+src_len-1+COMPRESS_OVERRUN]. */
|
||||
/* > The function can modify any part of the output zone regardless of the */
|
||||
/* final length of the output block. */
|
||||
/* > The input block and the output zone must not overlap. */
|
||||
/* > dst_len will be in the range [0,src_len+COMPRESS_OVERRUN]. */
|
||||
/* > dst_len will be in the range [0,COMPRESS_MAX_COM] (from prev fact). */
|
||||
/* > The output block will consist of a representation of the input block. */
|
||||
/* */
|
||||
/* Decompression Action */
|
||||
/* -------------------- */
|
||||
/* > action must be COMPRESS_ACTION_DECOMPRESS. */
|
||||
/* > The input block must be the result of an earlier compression operation. */
|
||||
/* > If the previous fact is true, the following facts must also be true: */
|
||||
/* > src_len will be in the range [0,COMPRESS_MAX_COM]. */
|
||||
/* > dst_len will be in the range [0,COMPRESS_MAX_ORG]. */
|
||||
/* > The input and output blocks must not overlap. */
|
||||
/* > Only the output block is modified. */
|
||||
/* > Upon termination, the output block will consist of the bytes contained */
|
||||
/* in the input block passed to the earlier compression operation. */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
/* */
|
||||
/* PORT.H */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
/* */
|
||||
/* This module contains macro definitions and types that are likely to */
|
||||
/* change between computers. */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
|
||||
#ifndef DONE_PORT /* Only do this if not previously done. */
|
||||
|
||||
#ifdef THINK_C
|
||||
#define UBYTE unsigned char /* Unsigned byte */
|
||||
#define UWORD unsigned int /* Unsigned word (2 bytes) */
|
||||
#define ULONG unsigned long /* Unsigned word (4 bytes) */
|
||||
#define BOOL unsigned char /* Boolean */
|
||||
#define FOPEN_BINARY_READ "rb" /* Mode string for binary reading. */
|
||||
#define FOPEN_BINARY_WRITE "wb" /* Mode string for binary writing. */
|
||||
#define FOPEN_TEXT_APPEND "a" /* Mode string for text appending. */
|
||||
#define REAL double /* USed for floating point stuff. */
|
||||
#endif
|
||||
#if defined(LINUX) || defined(linux)
|
||||
#define UBYTE __u8 /* Unsigned byte */
|
||||
#define UWORD __u16 /* Unsigned word (2 bytes) */
|
||||
#define ULONG __u32 /* Unsigned word (4 bytes) */
|
||||
#define LONG __s32 /* Signed word (4 bytes) */
|
||||
#define BOOL is not used here /* Boolean */
|
||||
#define FOPEN_BINARY_READ not used /* Mode string for binary reading. */
|
||||
#define FOPEN_BINARY_WRITE not used /* Mode string for binary writing. */
|
||||
#define FOPEN_TEXT_APPEND not used /* Mode string for text appending. */
|
||||
#define REAL not used /* USed for floating point stuff. */
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define DONE_PORT /* Don't do all this again. */
|
||||
#define MALLOC_FAIL NULL /* Failure status from malloc() */
|
||||
#define LOCAL static /* For non-exported routines. */
|
||||
#define EXPORT /* Signals exported function. */
|
||||
#define then /* Useful for aligning ifs. */
|
||||
|
||||
#endif
|
||||
|
||||
/******************************************************************************/
|
||||
/* End of PORT.H */
|
||||
/******************************************************************************/
|
||||
|
||||
#define COMPRESS_ACTION_IDENTITY 0
|
||||
#define COMPRESS_ACTION_COMPRESS 1
|
||||
#define COMPRESS_ACTION_DECOMPRESS 2
|
||||
|
||||
#define COMPRESS_OVERRUN 1024
|
||||
#define COMPRESS_MAX_COM 0x70000000
|
||||
#define COMPRESS_MAX_ORG (COMPRESS_MAX_COM-COMPRESS_OVERRUN)
|
||||
|
||||
#define COMPRESS_MAX_STRLEN 255
|
||||
|
||||
/* The following structure provides information about the algorithm. */
|
||||
/* > The top bit of id must be zero. The remaining bits must be chosen by */
|
||||
/* the author of the algorithm by tossing a coin 31 times. */
|
||||
/* > The amount of memory requested by the algorithm is specified in bytes */
|
||||
/* and must be in the range [0,0x70000000]. */
|
||||
/* > All strings s must be such that strlen(s)<=COMPRESS_MAX_STRLEN. */
|
||||
struct compress_identity
|
||||
{
|
||||
ULONG id; /* Identifying number of algorithm. */
|
||||
ULONG memory; /* Number of bytes of working memory required. */
|
||||
|
||||
char *name; /* Name of algorithm. */
|
||||
char *version; /* Version number. */
|
||||
char *date; /* Date of release of this version. */
|
||||
char *copyright; /* Copyright message. */
|
||||
|
||||
char *author; /* Author of algorithm. */
|
||||
char *affiliation; /* Affiliation of author. */
|
||||
char *vendor; /* Where the algorithm can be obtained. */
|
||||
};
|
||||
|
||||
void lzrw3_compress( /* Single function interface to compression algorithm. */
|
||||
UWORD action, /* Action to be performed. */
|
||||
UBYTE *wrk_mem, /* Working memory temporarily given to routine to use. */
|
||||
UBYTE *src_adr, /* Address of input data. */
|
||||
LONG src_len, /* Length of input data. */
|
||||
UBYTE *dst_adr, /* Address of output data. */
|
||||
void *p_dst_len /* Pointer to a longword where routine will write: */
|
||||
/* If action=..IDENTITY => Adr of id structure. */
|
||||
/* If action=..COMPRESS => Length of output data. */
|
||||
/* If action=..DECOMPRESS => Length of output data. */
|
||||
);
|
||||
|
||||
/******************************************************************************/
|
||||
/* End of COMPRESS.H */
|
||||
/******************************************************************************/
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* fast_copy.h */
|
||||
/******************************************************************************/
|
||||
|
||||
/* This function copies a block of memory very quickly. */
|
||||
/* The exact speed depends on the relative alignment of the blocks of memory. */
|
||||
/* PRE : 0<=src_len<=(2^32)-1 . */
|
||||
/* PRE : Source and destination blocks must not overlap. */
|
||||
/* POST : MEM[dst_adr,dst_adr+src_len-1]=MEM[src_adr,src_adr+src_len-1]. */
|
||||
/* POST : MEM[dst_adr,dst_adr+src_len-1] is the only memory changed. */
|
||||
|
||||
#define fast_copy(src,dst,len) memcpy(dst,src,len)
|
||||
|
||||
/******************************************************************************/
|
||||
/* End of fast_copy.h */
|
||||
/******************************************************************************/
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,83 +0,0 @@
|
||||
#ifndef _ZFTAPE_COMPRESS_H
|
||||
#define _ZFTAPE_COMPRESS_H
|
||||
/*
|
||||
* Copyright (c) 1994-1997 Claus-Justus Heine
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2, or (at
|
||||
your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
|
||||
USA.
|
||||
|
||||
*
|
||||
* $Source: /homes/cvs/ftape-stacked/ftape/compressor/zftape-compress.h,v $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 1997/10/05 19:12:32 $
|
||||
*
|
||||
* This file contains macros and definitions for zftape's
|
||||
* builtin compression code.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../zftape/zftape-buffers.h"
|
||||
#include "../zftape/zftape-vtbl.h"
|
||||
#include "../compressor/lzrw3.h"
|
||||
|
||||
/* CMPR_WRK_MEM_SIZE gives the size of the compression wrk_mem */
|
||||
/* I got these out of lzrw3.c */
|
||||
#define U(X) ((__u32) X)
|
||||
#define SIZE_P_BYTE (U(sizeof(__u8 *)))
|
||||
#define ALIGNMENT_FUDGE (U(16))
|
||||
|
||||
#define CMPR_WRK_MEM_SIZE (U(4096)*(SIZE_P_BYTE) + ALIGNMENT_FUDGE)
|
||||
|
||||
/* the maximum number of bytes the size of the "compressed" data can
|
||||
* exceed the uncompressed data. As it is quite useless to compress
|
||||
* data twice it is sometimes the case that it is more efficient to
|
||||
* copy a block of data but to feed it to the "compression"
|
||||
* algorithm. In this case there are some flag bytes or the like
|
||||
* proceding the "compressed" data. THAT MUST NOT BE THE CASE for the
|
||||
* algorithm we use for this driver. Instead, the high bit 15 of
|
||||
* compressed_size:
|
||||
*
|
||||
* compressed_size = ftape_compress()
|
||||
*
|
||||
* must be set in such a case.
|
||||
*
|
||||
* Nevertheless, it might also be as for lzrw3 that there is an
|
||||
* "intermediate" overrun that exceeds the amount of the compressed
|
||||
* data that is actually produced. During the algorithm we need in the
|
||||
* worst case MAX_CMP_GROUP bytes more than the input-size.
|
||||
*/
|
||||
#define MAX_CMP_GROUP (2+16*2) /* from lzrw3.c */
|
||||
|
||||
#define CMPR_OVERRUN MAX_CMP_GROUP /* during compression */
|
||||
|
||||
/****************************************************/
|
||||
|
||||
#define CMPR_BUFFER_SIZE (MAX_BLOCK_SIZE + CMPR_OVERRUN)
|
||||
|
||||
/* the compression map stores the byte offset compressed blocks within
|
||||
* the current volume for catridges with format code 2,3 and 5
|
||||
* (and old versions of zftape) and the offset measured in kilobytes for
|
||||
* format code 4 and 6. This gives us a possible max. size of a
|
||||
* compressed volume of 1024*4GIG which should be enough.
|
||||
*/
|
||||
typedef __u32 CmprMap;
|
||||
|
||||
/* globals
|
||||
*/
|
||||
|
||||
/* exported functions
|
||||
*/
|
||||
|
||||
#endif /* _ZFTAPE_COMPRESS_H */
|
||||
@@ -1,43 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 1996, 1997 Clau-Justus Heine.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# $Source: /homes/cvs/ftape-stacked/ftape/lowlevel/Makefile,v $
|
||||
# $Revision: 1.4 $
|
||||
# $Date: 1997/10/07 09:26:02 $
|
||||
#
|
||||
# Makefile for the lowlevel part QIC-40/80/3010/3020 floppy-tape
|
||||
# driver for Linux.
|
||||
#
|
||||
|
||||
obj-$(CONFIG_FTAPE) += ftape.o
|
||||
|
||||
ftape-objs := ftape-init.o fdc-io.o fdc-isr.o \
|
||||
ftape-bsm.o ftape-ctl.o ftape-read.o ftape-rw.o \
|
||||
ftape-write.o ftape-io.o ftape-calibr.o ftape-ecc.o fc-10.o \
|
||||
ftape-buffer.o ftape-format.o ftape_syms.o
|
||||
|
||||
ifeq ($(CONFIG_FTAPE),y)
|
||||
ftape-objs += ftape-setup.o
|
||||
endif
|
||||
|
||||
ifndef CONFIG_FT_NO_TRACE_AT_ALL
|
||||
ftape-objs += ftape-tracing.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_FT_PROC_FS),y)
|
||||
ftape-objs += ftape-proc.o
|
||||
endif
|
||||
@@ -1,175 +0,0 @@
|
||||
/*
|
||||
*
|
||||
|
||||
Copyright (C) 1993,1994 Jon Tombs.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
The entire guts of this program was written by dosemu, modified to
|
||||
record reads and writes to the ports in the 0x180-0x188 address space,
|
||||
while running the CMS program TAPE.EXE V2.0.5 supplied with the drive.
|
||||
|
||||
Modified to use an array of addresses and generally cleaned up (made
|
||||
much shorter) 4 June 94, dosemu isn't that good at writing short code it
|
||||
would seem :-). Made independent of 0x180, but I doubt it will work
|
||||
at any other address.
|
||||
|
||||
Modified for distribution with ftape source. 21 June 94, SJL.
|
||||
|
||||
Modifications on 20 October 95, by Daniel Cohen (catman@wpi.edu):
|
||||
Modified to support different DMA, IRQ, and IO Ports. Borland's
|
||||
Turbo Debugger in virtual 8086 mode (TD386.EXE with hardware breakpoints
|
||||
provided by the TDH386.SYS Device Driver) was used on the CMS program
|
||||
TAPE V4.0.5. I set breakpoints on I/O to ports 0x180-0x187. Note that
|
||||
CMS's program will not successfully configure the tape drive if you set
|
||||
breakpoints on IO Reads, but you can set them on IO Writes without problems.
|
||||
Known problems:
|
||||
- You can not use DMA Channels 5 or 7.
|
||||
|
||||
Modification on 29 January 96, by Daniel Cohen (catman@wpi.edu):
|
||||
Modified to only accept IRQs 3 - 7, or 9. Since we can only send a 3 bit
|
||||
number representing the IRQ to the card, special handling is required when
|
||||
IRQ 9 is selected. IRQ 2 and 9 are the same, and we should request IRQ 9
|
||||
from the kernel while telling the card to use IRQ 2. Thanks to Greg
|
||||
Crider (gcrider@iclnet.org) for finding and locating this bug, as well as
|
||||
testing the patch.
|
||||
|
||||
Modification on 11 December 96, by Claus Heine (claus@momo.math.rwth-aachen.de):
|
||||
Modified a little to use variahle ft_fdc_base, ft_fdc_irq, ft_fdc_dma
|
||||
instead of preprocessor symbols. Thus we can compile this into the module
|
||||
or kernel and let the user specify the options as command line arguments.
|
||||
|
||||
*
|
||||
* $Source: /homes/cvs/ftape-stacked/ftape/lowlevel/fc-10.c,v $
|
||||
* $Revision: 1.2 $
|
||||
* $Date: 1997/10/05 19:18:04 $
|
||||
*
|
||||
* This file contains code for the CMS FC-10/FC-20 card.
|
||||
*/
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <linux/ftape.h>
|
||||
#include "../lowlevel/ftape-tracing.h"
|
||||
#include "../lowlevel/fdc-io.h"
|
||||
#include "../lowlevel/fc-10.h"
|
||||
|
||||
static __u16 inbs_magic[] = {
|
||||
0x3, 0x3, 0x0, 0x4, 0x7, 0x2, 0x5, 0x3, 0x1, 0x4,
|
||||
0x3, 0x5, 0x2, 0x0, 0x3, 0x7, 0x4, 0x2,
|
||||
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7
|
||||
};
|
||||
|
||||
static __u16 fc10_ports[] = {
|
||||
0x180, 0x210, 0x2A0, 0x300, 0x330, 0x340, 0x370
|
||||
};
|
||||
|
||||
int fc10_enable(void)
|
||||
{
|
||||
int i;
|
||||
__u8 cardConfig = 0x00;
|
||||
__u8 x;
|
||||
TRACE_FUN(ft_t_flow);
|
||||
|
||||
/* This code will only work if the FC-10 (or FC-20) is set to
|
||||
* use DMA channels 1, 2, or 3. DMA channels 5 and 7 seem to be
|
||||
* initialized by the same command as channels 1 and 3, respectively.
|
||||
*/
|
||||
if (ft_fdc_dma > 3) {
|
||||
TRACE_ABORT(0, ft_t_err,
|
||||
"Error: The FC-10/20 must be set to use DMA channels 1, 2, or 3!");
|
||||
}
|
||||
/* Only allow the FC-10/20 to use IRQ 3-7, or 9. Note that CMS's program
|
||||
* only accepts IRQ's 2-7, but in linux, IRQ 2 is the same as IRQ 9.
|
||||
*/
|
||||
if (ft_fdc_irq < 3 || ft_fdc_irq == 8 || ft_fdc_irq > 9) {
|
||||
TRACE_ABORT(0, ft_t_err,
|
||||
"Error: The FC-10/20 must be set to use IRQ levels 3 - 7, or 9!\n"
|
||||
KERN_INFO "Note: IRQ 9 is the same as IRQ 2");
|
||||
}
|
||||
/* Clear state machine ???
|
||||
*/
|
||||
for (i = 0; i < NR_ITEMS(inbs_magic); i++) {
|
||||
inb(ft_fdc_base + inbs_magic[i]);
|
||||
}
|
||||
outb(0x0, ft_fdc_base);
|
||||
|
||||
x = inb(ft_fdc_base);
|
||||
if (x == 0x13 || x == 0x93) {
|
||||
for (i = 1; i < 8; i++) {
|
||||
if (inb(ft_fdc_base + i) != x) {
|
||||
TRACE_EXIT 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
TRACE_EXIT 0;
|
||||
}
|
||||
|
||||
outb(0x8, ft_fdc_base);
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (inb(ft_fdc_base + i) != 0x0) {
|
||||
TRACE_EXIT 0;
|
||||
}
|
||||
}
|
||||
outb(0x10, ft_fdc_base);
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (inb(ft_fdc_base + i) != 0xff) {
|
||||
TRACE_EXIT 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Okay, we found a FC-10 card ! ???
|
||||
*/
|
||||
outb(0x0, fdc.ccr);
|
||||
|
||||
/* Clear state machine again ???
|
||||
*/
|
||||
for (i = 0; i < NR_ITEMS(inbs_magic); i++) {
|
||||
inb(ft_fdc_base + inbs_magic[i]);
|
||||
}
|
||||
/* Send io port */
|
||||
for (i = 0; i < NR_ITEMS(fc10_ports); i++)
|
||||
if (ft_fdc_base == fc10_ports[i])
|
||||
cardConfig = i + 1;
|
||||
if (cardConfig == 0) {
|
||||
TRACE_EXIT 0; /* Invalid I/O Port */
|
||||
}
|
||||
/* and IRQ - If using IRQ 9, tell the FC card it is actually IRQ 2 */
|
||||
if (ft_fdc_irq != 9)
|
||||
cardConfig |= ft_fdc_irq << 3;
|
||||
else
|
||||
cardConfig |= 2 << 3;
|
||||
|
||||
/* and finally DMA Channel */
|
||||
cardConfig |= ft_fdc_dma << 6;
|
||||
outb(cardConfig, ft_fdc_base); /* DMA [2 bits]/IRQ [3 bits]/BASE [3 bits] */
|
||||
|
||||
/* Enable FC-10 ???
|
||||
*/
|
||||
outb(0, fdc.ccr);
|
||||
outb(0, fdc.dor2);
|
||||
outb(FDC_DMA_MODE /* 8 */, fdc.dor);
|
||||
outb(FDC_DMA_MODE /* 8 */, fdc.dor);
|
||||
outb(1, fdc.dor2);
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* cH: why the hell should this be necessary? This is done
|
||||
* by fdc_reset()!!!
|
||||
*
|
||||
*************************************/
|
||||
/* Initialize fdc, select drive B:
|
||||
*/
|
||||
outb(FDC_DMA_MODE, fdc.dor); /* assert reset, dma & irq enabled */
|
||||
/* 0x08 */
|
||||
outb(FDC_DMA_MODE|FDC_RESET_NOT, fdc.dor); /* release reset */
|
||||
/* 0x08 | 0x04 = 0x0c */
|
||||
outb(FDC_DMA_MODE|FDC_RESET_NOT|FDC_MOTOR_1|FTAPE_SEL_B, fdc.dor);
|
||||
/* 0x08 | 0x04 | 0x20 | 0x01 = 0x2d */
|
||||
/* select drive 1 */ /* why not drive 0 ???? */
|
||||
TRACE_EXIT (x == 0x93) ? 2 : 1;
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
#ifndef _FC_10_H
|
||||
#define _FC_10_H
|
||||
|
||||
/*
|
||||
* Copyright (C) 1994-1996 Bas Laarhoven.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*
|
||||
* $Source: /homes/cvs/ftape-stacked/ftape/lowlevel/fc-10.h,v $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 1997/09/19 09:05:22 $
|
||||
*
|
||||
* This file contains definitions for the FC-10 code
|
||||
* of the QIC-40/80 floppy-tape driver for Linux.
|
||||
*/
|
||||
|
||||
/*
|
||||
* fc-10.c defined global vars.
|
||||
*/
|
||||
|
||||
/*
|
||||
* fc-10.c defined global functions.
|
||||
*/
|
||||
extern int fc10_enable(void);
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user