RF(4) (vax)

RF(4) | Device Drivers Manual (vax) | RF(4)

# NAME

`rf` —
DEC RX01 / RX02 floppy disk interface

# SYNOPSIS

`rfc0 at uba? csr 0177170 # RX01/RX02 controller`
`rf* at rfc? drive? # RX01/RX02 floppy disk drive`

# DESCRIPTION

The `rf` device provides access to DEC RX01 and RX02 floppy disk drives and clones thereof. These drives use preformatted 8" single sided, soft sectored media. The RX01 and RX02 drives use a geometry of 77 cylinders, one head and 26 sectors. Each sector contains 128 bytes in case of single density ( RX01 and RX02 in RX01 mode) or 256 bytes in double density mode. As NetBSD is not able to handle non-512 byte media the driver translates this to a geometry of 50 cylinders, one head and 10 sectors in single density and 77 cylinders, one head and 13 sectors in double density mode. While the later matches the total number of sectors, the fake geometry in single density does not cover the last two physical sectors exact, but it is possible to access this sectors at 512 byte LBN 501. When a 512 byte block is written to LBN 501 the last 256 bytes are ignored. When this 512 byte block is read the last 256 bytes contain undefined data.

This driver supports three minor devices corresponding to the slices:

Slice | Description
a | Single density only mode.
b | Double density only mode.
c | Density autodetect.

As the RX01 and RX02 hardware is not able to support formatting a blank disk, this driver has no support for according IOCTLs. But there are clones from third party vendors that support formatting. Formatting a blank disk may be initiated by the following commands on the VAX chevron prompt:

Single density
d/p/w 20001E78 9
d/p/w 20001E7A 92

Double density
d/p/w 20001E78 109
d/p/w 20001E7A 92

# FILES

/dev/rf?[abc]
/dev/rrf?[abc]

# DIAGNOSTICS

rfc_attach: Error creating bus_dma map: %d
did not respond to INIT CMD
  Possible errors during vax/autoconf(4). %d is the return code of bus_dmamap_create(9).
%s: did not respond to CMD %x
  An error occurred while the driver tried to send command %x to drive %s.
rfc_intr: Error while reading sector: %x
rfc_intr: Error while writing sector: %x
rfc_intr: Error while DMA: %x
  %x is status code from the controller error and status register.
rfc_intr: Error while loading bus_dma map: %d
  %d is return code of bus_dmamap_load(9).
%s: density error.
  A single density disk was opened in double density only mode or vice versa or the medium in the drive attached as %s was not readable at all.

# SEE ALSO

dd(1), tar(1), vax/intro(4), disklabel(5), disklabel(8), mknod(8), mount(8), newfs(8)

# HISTORY

The rf driver appeared in NetBSD 2.0. It is a complete rewrite, not related to the old 4.2BSD `rx` driver.

# AUTHORS

Jochen Kunz

# BUGS

Writing of a disklabel(5) is not supported. The driver return always the internally fake disklabel.

February 17, 2017 | NetBSD 9.4