.\" $NetBSD: rf.4,v 1.7 2017/08/01 11:11:17 wiz Exp $
.\" Copyright (c) 2002 Jochen Kunz.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. The name of Jochen Kunz may not be used to endorse or promote
.\" products derived from this software without specific prior
.\" written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY JOCHEN KUNZ
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JOCHEN KUNZ
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.Dd February 17, 2017
.Dt RF 4 vax
.Os
.Sh NAME
.Nm rf
.Nd
.Tn DEC RX01 / RX02
floppy disk interface
.Sh SYNOPSIS
.Cd "rfc0 at uba? csr 0177170 # RX01/RX02 controller"
.Cd "rf* at rfc? drive? # RX01/RX02 floppy disk drive"
.Sh DESCRIPTION
The
.Nm rf
device provides access to
.Tn DEC
.Tn RX01
and
.Tn RX02
floppy disk drives and clones thereof.
These drives use preformatted 8" single sided, soft sectored media.
The
.Tn RX01
and
.Tn RX02
drives use a geometry of 77 cylinders, one head and 26 sectors.
Each sector contains 128 bytes in case of single density (
.Tn RX01
and
.Tn RX02
in
.Tn RX01
mode) or 256 bytes in double density mode.
As
.Nx
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.
.Pp
This driver supports three minor devices corresponding to the slices:
.Bl -column Slice -offset indent
.It Sy Slice Description
.It a Single density only mode.
.It b Double density only mode.
.It c Density autodetect.
.El
As the
.Tn RX01
and
.Tn 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:
.Bl -column Otherx -offset indent
.It Single density
.It d/p/w 20001E78 9
.It d/p/w 20001E7A 92
.El
.Bl -column Otherx -offset indent
.It Double density
.It d/p/w 20001E78 109
.It d/p/w 20001E7A 92
.El
.Sh FILES
.Bl -tag -width /dev/rx?xx -compact
.It Pa /dev/rf?[abc]
.It Pa /dev/rrf?[abc]
.El
.Sh DIAGNOSTICS
.Bl -diag
.It "rfc_attach: Error creating bus_dma map: %d"
.It "did not respond to INIT CMD"
Possible errors during
.Xr vax/autoconf 4 .
%d is the return code of
.Xr bus_dmamap_create 9 .
.It "%s: did not respond to CMD %x"
An error occurred while the driver tried to send command %x to drive %s.
.It "rfc_intr: Error while reading sector: %x"
.It "rfc_intr: Error while writing sector: %x"
.It "rfc_intr: Error while DMA: %x"
%x is status code from the controller error and status register.
.It "rfc_intr: Error while loading bus_dma map: %d"
%d is return code of
.Xr bus_dmamap_load 9 .
.It "%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.
.El
.Sh SEE ALSO
.Xr dd 1 ,
.Xr tar 1 ,
.Xr vax/intro 4 ,
.Xr disklabel 5 ,
.Xr disklabel 8 ,
.Xr mknod 8 ,
.Xr mount 8 ,
.Xr newfs 8
.Sh HISTORY
The rf driver appeared in
.Nx 2.0 .
It is a complete rewrite, not related to the old 4.2BSD
.Nm rx
driver.
.Sh AUTHORS
.An Jochen Kunz
.Sh BUGS
Writing of a
.Xr disklabel 5
is not supported.
The driver return always the internally fake disklabel.