floppytape, ft --
QIC-40 and QIC-80 cartridge floppy tape drive
Description
A single QIC-40 or QIC-80 tape drive
connected to the floppy disk controller is supported by the
ft device driver.
ECC encoding and decoding is automatically used
with the standard raw device /dev/rft0; the
floppy tape driver does not support a no-rewind device.
For every 29KB written to the tape, 3KB of ECC data
is written with it to provide error recovery.
QIC-40 and QIC-80 tapes must be
formatted before use; use preformatted tapes for best
results.
If the default tape device is a QIC-40,
QIC-80, the appropriate device will be linked to /dev/ctmini.
See
tape(HW)
for a list of the
ioctl(S)
commands that are supported by the
ft driver.
Configuration options for the floppy tape driver
Five configuration options are available for the floppy
tape driver (ft) for QIC-40 and
QIC-80 tape drives. To alter these variables, it
is necessary to edit the configuration file
/etc/conf/pack.d/ft/space.c, relink the kernel,
and reboot the system with the new kernel. While all
options may be edited manually in space.c, the
first and second options, ft_drivetype and
ft_select_mode, can also be modified using the
mkdev tape command. These options are summarized
in the following table:
Floppy tape drive configuration options
Variable
Values
Editing
mkdev
Manual
ft_drive_type
FT_QIC40
yes
yes
FT_QIC40XL (FT_QIC60)
FT_QIC80
FT_QIC80XL
ft_select_mode
FT_HARD_SELECT
yes
yes
FT_SOFT_SELECT
ft_alloc_switch
FT_OPEN_TIME
no
yes
FT_INIT_TIME
ft_minbufs
2 <= x <= (ft_maxbufs)
no
yes
ft_maxbufs
(ft_minbufs) <= x <= 20
no
yes
ft_drivetype
When set from FT_QIC40 to FT_QIC40XL, or
from FT_QIC80 to FT_QIC80XL,
ft_drivetype
enables support of extended length (307.5 ft) DC2120
mini-cartridges in the driver.
FT_QIC60 is an obsolete value; FT_QIC40XL should be used
instead.
A QIC-40 drive should never be operated with
ft_drivetype set to FT_QIC80 or
FT_QIC80XL. Also, a QIC-80 drive
should never be operated with ft_drivetype set to
FT_QIC40 or FT_QIC40XL. If they are,
your system may panic or hang, or data may be lost from the
tape media.
ft_select_mode
When set to FT_HARD_SELECT, the ft
driver expects a normal tape drive with a drive
select jumper to be present. If ft_select_mode
is set to FT_SOFT_SELECT, the ft driver uses
Soft Select mode to access the tape drive, which must be a
Soft Select-compatible QIC-40 or QIC-80
tape drive with no drive select jumpers installed.
ft_alloc_switch
When set to FT_OPEN_TIME, the ft driver allocates memory
when it is needed, and frees memory once it is no longer
needed. Typically, memory is allocated at open time
and released at close time. When ft_alloc_switch
is set to FT_INIT_TIME, all memory allocation is
done at init time (when the system boots) and
the ft driver retains this memory. The advantage
of init time allocation
is that more memory is available for the ft
buffers. The disadvantage is that this memory is held by the
tape driver and cannot be used elsewhere in the system.
ft_minbufs ft_maxbufs
These variables set the minimum and maximum number of 32KB
buffers that the ft driver is allowed to use.
The lower limit of the minimum is hard set to 2, with any
value lower than 2 interpreted as 2. The upper limit of
the maximum is hard set to 20, with numbers greater than 20
interpreted as 20. When the ft driver allocates
memory for buffers, it requests ft_maxbufs
first. If this fails, ft reduces its request by
one and tries again. This continues until either the
request is satisfied or ft_minbufs buffers fail
to be allocated. If the request is satisfied, then
ft proceeds. Otherwise, the tape operation fails
and ENOMEM (Error, no memory for buffers) is
returned.
The exception to this is when ft_alloc_switch is
set to FT_INIT_TIME (allocation takes place at
init time). If the ft_minbufs are not
available at init time, then ft resorts
to allocation as needed (as if ft_alloc_switch
were set to FT_OPEN_TIME). If this condition
occurs, a warning is printed at init time.
It is recommended that ft_minbufs be set to at
least 3. Although the driver can operate with only two
buffers, performance is seriously degraded; the tape never
streams, and in fact produces an underrun for every 32KB
block written to the tape.
Floppy tape cartridge media
There are three mini-cartridge types appropriate to floppy
tape drives:
Floppy tape mini-cartridge types
Cartridge
Length
Width
Maximum
(ft)
(in)
density
(ftpi)
DC2000
205
0.25
12,500
DC2080
205
0.25
14,700
DC2120
307.5
0.25
14,700
DC2000 and DC2080 are available unformatted or
preformatted from the manufacturer. Irwin format tapes are incompatible
with the floppy tape driver.
If a 2120 cartridge is inserted into a drive, it can be detected as
an extended length tape and will be formatted for 60MB
on QIC-40 drives, and 120MB on QIC-80 drives.
Some older QIC-40 drives are not able to detect extended length
tapes. These models should never be operated with a DC2120
inserted, since they will expect a 205 foot tape length.
Drives cannot
distinguish between blank (unformatted) DC2000 and DC2080.
Never attempt to format a DC2080 in a QIC-40 drive, or a
DC2000 in a QIC-80 drive.
Media configurations for floppy tape drives are summarized in
the following table:
Floppy tape drive media configurations
Drive
ft_drivetype
Media
Formatted
Operations
capacity (MB)
QIC-40
FT_QIC40
DC2000
40
r/w/f
QIC-40
FT_QIC40XL
DC2000
40
r/w/f
DC2120
60
r/w/f
QIC-80
FT_QIC80
DC2000
40
r
DC2080
80
r/w/f
QIC-80
FT_QIC80XL
DC2000
40
r
DC2120
60
r
DC2080
80
r/w/f
DC2120
120
r/w/f
Diagnostics
The following error message may be displayed on the console.
See
messages(M)
for general information about kernel error messages,
including a list of generic device driver errors.
CONFIG: ft: Cannot allocate m to n (ft_minbufs to ft_maxbufs) 32k buffers
Will try again if opened
Not enough memory was available to allocate to the buffers on initialization.