spinup is the time when the motor became switched on for the last time.
select is the time when the drive became selected for the last time
first_read is the time when the first read request after the last spin up completed.
probed_fmt is the the index of the autodetected format in the autodetection sequence for this drive.
track is the track where the drive currently sits. -1 means that the driver doesn't know, but the controller does (a seek command must be issued). -2 means that the controller doesn't know either, but is sure that it not beyond the 80th track. The drive needs a recalibration. -3 means that the head may be beyond the 80th track. The drive needs two successive recalibrations, because at each recalibration, the controller only issues 80 move head commands to the drive.
maxblock is the highest block number that has been read. maxtrack is a boolean which is set when a sector that is not on track 0/head 0 has been read. These are used for smart invalidation of the buffer cache on geometry change. The buffer cache of the drive is only invalidated on geometry change when this change actually implies that a block that has already been read changes position. This optimization is useful for mtools which changes the geometry after reading the boot sector.
generation is roughly the number of disk changes noticed since boot. Disk changes are noticed if the disk is actually changed, or if a flush command is issued and for both cases if any I/O to/from the disk occurs. (i.e. if you insert several disks, but don't do any I/O to them, the generation number stays the same.)
refs is number of open file descriptors for this drive. It is always at least one, because floppycontrol's file descriptor is counted too.
device is format type (as derived from the minor device number) which is currently being used.
last_checked is date (in jiffies) when the drive was last checked for a disk change, and a disk was actually in the drive.
spec1 and spec2 are the current values of those registers.
rate is current data transfer rate
rawcmd is true if a raw command has been executed since the last reset. If this is the case, a reset will be triggered when a drive on the same FDC is next opened.
dor is the value of the digital output register. The 4 high bits are a bit mask describing which drives are spinning, the 2 low bits describe the selected drive, bit 2 is used to reset the FDC, and bit 3 describes whether this FDC has hold of the interrupt and the DMA. If you have two FDCs, bit 3 is only set on one of them.
version is the version of the FDC. See linux/include/linux/fdreg.h for a listing of the FDC version numbers.
reset is true if a reset needs to be issued to the FDC before processing the next request.
need_configure is true if this FDC needs configuration by the FD_CONFIGURE command.
has_fifo is set if the FDC understands the FD_CONFIGURE command.
perp_mode describes the perpendicular mode of this FDC. 0 is non-perpendicular mode, 2 is HD perpendicular mode, 3 is ED perpendicular mode, and 1 is unknown.
address is the address of the first I/O port of the FDC. Normally, this is 0x3f0 for the first FDC and 0x370 for the second.
This sequence is used by to find out the format of a newly inserted disk. The formats are tried one after the other, and the first matching format is retained. To test the format, the driver tries to read the first sector on the first track on the first head when t is not given, or the whole first track when t is given. Thus, autodetection cannot detect the number of tracks. However, this information is contained in the boot sector, which is now accessible. The boot sector can then be used by mtools to configure the correct number of tracks.
Example: 7,4,20t,21 means to try out the formats whose minor device numbers are 28 (1.44M), 16 (720k) , 80 (1.82M), and 84 (1.99M), in this order. For the 1.82M format, try to read the whole track at once.
Reading the whole track at once allows you to distinguish between two formats which differ only in the number of sectors. (The format with the most sectors must be tried first.) With the new mtools, it is no longer necessary to make this distinction, because mtools can now figure out the number of sectors by looking at the boot sector.
Reading the whole track at once may also speed up the first read by 200 milliseconds. However, if you try to read a disk which has less sectors than the format, you lose some time.
I suggest that you put the most often used format in the first place (barring other constraints), as each format that is tried out takes 400 milliseconds.
If you trust your users and your disks, you don't need this. With most drives you don't need to worry anyways.
Use this option if disk changes are either not detected at all, or if disk changes are detected when the disk was not changed. If this option fixes the problem, I'd recommend checking the floppy cable and the drive jumpers. Apparently the disk change line is near the edge of the cable, and is the first line to suffer if the cable is not inserted straight, or if it is damaged. On some drives, the disk change line may be chosen by jumper. Make sure that your floppy controller board and your drive agree which line is the disk change line. If everything seems right with the jumpers and the cables, or if the drive is known not to support the disk change line, leave this option on.
This is done by clocking the time where the first I/O request completes, and using this time to calculate the current position of the disk. This mechanism is not 100% reliable (If it fails, you may lose 200 milliseconds).