floppytape, ft -- QIC-40 and QIC-80 cartridge floppy tape drive


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_select_mode FT_HARD_SELECT yes yes
ft_alloc_switch FT_OPEN_TIME no yes
ft_minbufs 2 <= x <= (ft_maxbufs) no yes
ft_maxbufs (ft_minbufs) <= x <= 20 no yes

 |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   |

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.

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.

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.

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
DC2000 205 0.25 12,500
DC2080 205 0.25 14,700
DC2120 307.5 0.25 14,700

 |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

 |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      |


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.


default tape device; linked to /dev/rft0

raw interface device file

control interface device file

See also

mkdev(ADM), tape(C), tape(HW)
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003