fd(7D)




NAME

     fd, fdc - drivers for floppy disks and floppy disk controll-
     ers


SYNOPSIS

  SPARC
     /dev/diskette0

     /dev/rdiskette0

  x86
     /dev/diskette[0-1]

     /dev/rdiskette[0-1]


DESCRIPTION

     The fd and fdc drivers  provide  the  interfaces  to  floppy
     disks  using the Intel 8272, Intel 82077, NEC 765, or compa-
     tible disk controllers on x86 based systems.

     The default partitions for the floppy driver are:

     a     All cylinders except the last

     b     Only the last cylinder

     c     Entire diskette

     The  fd driver autosenses the density of the diskette.

     When the floppy is first opened the driver looks for a SunOS
     label  in  logical  block 0 of the diskette.  If attempts to
     read the SunOS label fail, the open will fail. If block 0 is
     read  successfully  but  a  SunOS  label is not found, auto-
     sensed geometry and default partitioning are assumed.

     The fd driver supports both block and ``raw'' interfaces.

     The block files (/dev/diskette*) access the  diskette  using
     the  system's normal buffering mechanism and may be read and
     written without regard to physical diskette records.

     There is also a  ``raw''  (/dev/rdiskette*)  interface  that
     provides  for  direct  transmission between the diskette and
     the user's  read  or  write  buffer.  A  single  read(2)  or
     write(2)  call  usually results in one I/O operation; there-
     fore raw I/O is  considerably  more  efficient  when  larger
     blocking factors are used. A blocking factor of no less than
     8 Kbytes is recommended. See the Notes section,  below,  for
     information on the number of sectors per track.

  3.5" Diskettes
     For 3.5" double-sided diskettes, the following densities are
     supported:

  SPARC
     1.7 Mbyte density
           80 cylinders, 21 sectors per track, 1.7 Mbyte capacity

     high density
           80 cylinders, 18 sectors per track, 1.44  Mbyte  capa-
           city

     double density
           80 cylinders, 9 sectors per track, 720 Kbyte capacity

  x86
     extended density
           80 cylinders, 36 sectors per track, 2.88  Mbyte  capa-
           city

     1.7 Mbyte density
           80 cylinders, 21 sectors per track, 1.7 Mbyte capacity

     high density
           80 cylinders, 18 sectors per track, 1.44  Mbyte  capa-
           city

     double density
           80 cylinders, 9 sectors per track, 760 Kbyte capacity

  5.25" Diskettes
     For 5.25" double-sided diskettes on x86 platforms, the  den-
     sities listed below are supported:

  SPARC
          5.25" diskettes are not supported on SPARC platforms.

  x86
     high density
           80 cylinders, 15 sectors per track, 1.2 Mbyte capacity

     double density
           40 cylinders, 9 sectors per track, 360 Kbyte capacity

     double density
           40 cylinders, 8 sectors per track, 320 Kbyte capacity

     quad density
           80 cylinders, 9 sectors per track, 720 Kbyte capacity

     double density
           40 cylinders, 16 sectors per track (256 bytes per sec-
           tor), 320 Kbyte capacity

     double density
           40 cylinders, 4 sectors per track (1024 bytes per sec-
           tor), 320 Kbyte capacity


ERRORS

     EBUSY During opening, the  partition  has  been  opened  for
           exclusive access and another process wants to open the
           partition. Once open, this error is  returned  if  the
           floppy  disk driver attempted to pass a command to the
           floppy disk controller when the  controller  was  busy
           handling  another command.  In this case, the applica-
           tion should try the operation again.

     EFAULT
           An invalid address was specified in an  ioctl  command
           (see fdio(7I)).

     EINVAL
           The number of bytes read or written is not a  multiple
           of  the  diskette's  sector  size.  This error is also
           returned when  an  unsupported  command  is  specified
           using the  FDIOCMD ioctl command (see  fdio(7I)).

     EIO   During opening, the diskette does not have a label  or
           there  is  no  diskette in the drive.  Once open, this
           error is returned if the requested I/O transfer  could
           not be completed.

     ENOSPC
           An attempt was made to  write  past  the  end  of  the
           diskette.

     ENOTTY
           The floppy disk driver does not support the  requested
           ioctl functions (see  fdio(7I)).

     ENXIO The floppy disk device does not exist or the device is
           not ready.

     EROFS The floppy disk device is opened for write access  and
           the  diskette in the drive is write protected.

  x86 Only
     ENOSYS
           The floppy disk device does not support the  requested
           ioctl  function ( FDEJECT).


x86 CONFIGURATION


     The driver attempts to initialize itself using the  informa-
     tion      found      in      the     configuration     file,
     /platform/i86pc/kernel/drv/fd.conf.

     name="fd"  parent="fdc"  unit=0;
     name="fd"  parent="fdc"  unit=1;


FILES

  SPARC
     /platform/sun4u/kernel/drv/fd
           driver module

     /usr/include/sys/fdreg.h
           structs and definitions for Intel 82072 and 82077 con-
           trollers

     /usr/include/sys/fdvar.h
           structs and definitions for floppy drivers

     /dev/diskette
           device file

     /dev/diskette0
           device file

     /dev/rdiskette
           raw device file

     /dev/rdiskette0
           raw device file

  For ucb Compatibility
     /dev/fd0[a-c]
           block file

     /dev/rfd0[a-c]
           raw file

     /vol/dev/diskette0
           directory containing volume management character  dev-
           ice file

     /vol/dev/rdiskette0
           directory containing the volume management raw charac-
           ter device file

     /vol/dev/aliases/floppy0
           symbolic link to the entry in /vol/dev/rdiskette0

  x86
     /platform/i86pc/kernel/drv/fd
           driver module

     /platform/i86pc/kernel/drv/fd.conf
           configuration file for floppy driver

     /platform/i86pc/kernel/drv/fdc
           floppy-controller driver module

     /platform/i86pc/kernel/drv/fdc.conf
           configuration file for the floppy-controller

     /usr/include/sys/fdc.h
           structs and definitions for x86 floppy devices

     /usr/include/sys/fdmedia.h
           structs and definitions for x86 floppy media

  x86 First Drive
     /dev/diskette
           device file

     /dev/diskette0
           device file

     /dev/rdiskette
           raw device file

     /dev/rdiskette0
           raw device file

  For ucb Compatibility
     /dev/fd0[a-c]
           block file

     /dev/rfd0[a-c]
           raw file

     /vol/dev/diskette0
           directory containing volume management character  dev-
           ice file

     /vol/dev/rdiskette0
           directory containing the volume management raw charac-
           ter device file

     /vol/dev/aliases/floppy0
           symbolic link to the entry in /vol/dev/rdiskette0

  x86 Second Drive
     /dev/diskette1
           device file

     /dev/rdiskette1
           raw device file

  For ucb Compatibility
     /dev/fd1[a-c]
           block file

     /dev/rfd1[a-c]
           raw file

     /vol/dev/diskette1
           directory containing volume management character  dev-
           ice file

     /vol/dev/rdiskette1
           directory containing the volume management raw charac-
           ter device file

     /vol/dev/aliases/floppy1
           symbolic link to the entry in /vol/dev/rdiskette1


SEE ALSO

     fdformat(1),  dd(1M),  drvconfig(1M),   vold(1M),   read(2),
     write(2), driver.conf(4), dkio(7I) fdio(7I)


DIAGNOSTICS

  All Platforms
     fd<n>: <command name> failed (<sr1> <sr2> <sr3>)
           The <command name> failed  after  several  retries  on
           drive <n>. The three hex values in parenthesis are the
           contents of status register 0, status register 1,  and
           status  register 2 of the Intel 8272, the Intel 82072,
           and the Intel 82077 Floppy Disk Controller on  comple-
           tion  of  the command, as documented in the data sheet
           for that part.  This error message is usually followed
           by one of the following,  interpreting the bits of the
           status register:

           fd<n >:
                 not writable

           fd<n >:
                 crc error blk <block number>

                 There was a data error on <block number>.

           fd<n >:
                 bad format

           fd<n >:
                 timeout

           fd<n >:
                 drive not ready

           fd<n >:
                 unformatted diskette or no diskette in drive

           fd<n >:
                 block <block number> is past the end!

                 (nblk=<total number of blocks>)

                 The operation tried to  access  a  block  number
                 that is greater than the total number of blocks.

           fd<n >:
                 b_bcount 0x<op_size> not % 0x<sect_size>

                 The size of an operation is not  a  multiple  of
                 the sector size.

           fd<n >:
                 overrun/underrun

           fd<n >:
                 host bus error. There was a hardware error on  a
                 system bus.

  SPARC Only
     Overrun/underrun errors  occur  when  accessing  a  diskette
     while  the  system  is heavily loaded.  Decrease the load on
     the system and retry the diskette access.


NOTES

     3.5"  high density diskettes have 18 sectors per  track  and
     5.25" high density diskettes have 15 sectors per track. They
     can cross a track (though not a cylinder)  boundary  without
     losing  data, so when using dd(1M) or read(2)/write(2) calls
     to or from the ``raw'' diskette, you should  specify  bs=18k
     or  multiples thereof for 3.5" diskettes, and bs=15k or mul-
     tiples thereof for 5.25" diskettes.

     The SPARC fd driver is not an unloadable module.

     Under Solaris (x86 Edition), the configuration of the floppy
     drives  is  specified  in CMOS configuration memory. Use the
     BIOS setup program or an EISA configuration program for  the
     system  to define the diskette size and density/capacity for
     each installed drive. Note that
      MS-DOS may operate the floppy drives correctly, even though
     the  CMOS  configuration  may be in error. Solaris (x86 Edi-
     tion) relies on the CMOS configuration to be accurate.

Man(1) output converted with man2html