| ============= | 
 | Floppy Driver | 
 | ============= | 
 |  | 
 | FAQ list: | 
 | ========= | 
 |  | 
 | A FAQ list may be found in the fdutils package (see below), and also | 
 | at <http://fdutils.linux.lu/faq.html>. | 
 |  | 
 |  | 
 | LILO configuration options (Thinkpad users, read this) | 
 | ====================================================== | 
 |  | 
 | The floppy driver is configured using the 'floppy=' option in | 
 | lilo. This option can be typed at the boot prompt, or entered in the | 
 | lilo configuration file. | 
 |  | 
 | Example: If your kernel is called linux-2.6.9, type the following line | 
 | at the lilo boot prompt (if you have a thinkpad):: | 
 |  | 
 |  linux-2.6.9 floppy=thinkpad | 
 |  | 
 | You may also enter the following line in /etc/lilo.conf, in the description | 
 | of linux-2.6.9:: | 
 |  | 
 |  append = "floppy=thinkpad" | 
 |  | 
 | Several floppy related options may be given, example:: | 
 |  | 
 |  linux-2.6.9 floppy=daring floppy=two_fdc | 
 |  append = "floppy=daring floppy=two_fdc" | 
 |  | 
 | If you give options both in the lilo config file and on the boot | 
 | prompt, the option strings of both places are concatenated, the boot | 
 | prompt options coming last. That's why there are also options to | 
 | restore the default behavior. | 
 |  | 
 |  | 
 | Module configuration options | 
 | ============================ | 
 |  | 
 | If you use the floppy driver as a module, use the following syntax:: | 
 |  | 
 | 	modprobe floppy floppy="<options>" | 
 |  | 
 | Example:: | 
 |  | 
 | 	modprobe floppy floppy="omnibook messages" | 
 |  | 
 | If you need certain options enabled every time you load the floppy driver, | 
 | you can put:: | 
 |  | 
 | 	options floppy floppy="omnibook messages" | 
 |  | 
 | in a configuration file in /etc/modprobe.d/. | 
 |  | 
 |  | 
 | The floppy driver related options are: | 
 |  | 
 |  floppy=asus_pci | 
 | 	Sets the bit mask to allow only units 0 and 1. (default) | 
 |  | 
 |  floppy=daring | 
 | 	Tells the floppy driver that you have a well behaved floppy controller. | 
 | 	This allows more efficient and smoother operation, but may fail on | 
 | 	certain controllers. This may speed up certain operations. | 
 |  | 
 |  floppy=0,daring | 
 | 	Tells the floppy driver that your floppy controller should be used | 
 | 	with caution. | 
 |  | 
 |  floppy=one_fdc | 
 | 	Tells the floppy driver that you have only one floppy controller. | 
 | 	(default) | 
 |  | 
 |  floppy=two_fdc / floppy=<address>,two_fdc | 
 | 	Tells the floppy driver that you have two floppy controllers. | 
 | 	The second floppy controller is assumed to be at <address>. | 
 | 	This option is not needed if the second controller is at address | 
 | 	0x370, and if you use the 'cmos' option. | 
 |  | 
 |  floppy=thinkpad | 
 | 	Tells the floppy driver that you have a Thinkpad. Thinkpads use an | 
 | 	inverted convention for the disk change line. | 
 |  | 
 |  floppy=0,thinkpad | 
 | 	Tells the floppy driver that you don't have a Thinkpad. | 
 |  | 
 |  floppy=omnibook / floppy=nodma | 
 | 	Tells the floppy driver not to use Dma for data transfers. | 
 | 	This is needed on HP Omnibooks, which don't have a workable | 
 | 	DMA channel for the floppy driver. This option is also useful | 
 | 	if you frequently get "Unable to allocate DMA memory" messages. | 
 | 	Indeed, dma memory needs to be continuous in physical memory, | 
 | 	and is thus harder to find, whereas non-dma buffers may be | 
 | 	allocated in virtual memory. However, I advise against this if | 
 | 	you have an FDC without a FIFO (8272A or 82072). 82072A and | 
 | 	later are OK. You also need at least a 486 to use nodma. | 
 | 	If you use nodma mode, I suggest you also set the FIFO | 
 | 	threshold to 10 or lower, in order to limit the number of data | 
 | 	transfer interrupts. | 
 |  | 
 | 	If you have a FIFO-able FDC, the floppy driver automatically | 
 | 	falls back on non DMA mode if no DMA-able memory can be found. | 
 | 	If you want to avoid this, explicitly ask for 'yesdma'. | 
 |  | 
 |  floppy=yesdma | 
 | 	Tells the floppy driver that a workable DMA channel is available. | 
 | 	(default) | 
 |  | 
 |  floppy=nofifo | 
 | 	Disables the FIFO entirely. This is needed if you get "Bus | 
 | 	master arbitration error" messages from your Ethernet card (or | 
 | 	from other devices) while accessing the floppy. | 
 |  | 
 |  floppy=usefifo | 
 | 	Enables the FIFO. (default) | 
 |  | 
 |  floppy=<threshold>,fifo_depth | 
 | 	Sets the FIFO threshold. This is mostly relevant in DMA | 
 | 	mode. If this is higher, the floppy driver tolerates more | 
 | 	interrupt latency, but it triggers more interrupts (i.e. it | 
 | 	imposes more load on the rest of the system). If this is | 
 | 	lower, the interrupt latency should be lower too (faster | 
 | 	processor). The benefit of a lower threshold is less | 
 | 	interrupts. | 
 |  | 
 | 	To tune the fifo threshold, switch on over/underrun messages | 
 | 	using 'floppycontrol --messages'. Then access a floppy | 
 | 	disk. If you get a huge amount of "Over/Underrun - retrying" | 
 | 	messages, then the fifo threshold is too low. Try with a | 
 | 	higher value, until you only get an occasional Over/Underrun. | 
 | 	It is a good idea to compile the floppy driver as a module | 
 | 	when doing this tuning. Indeed, it allows to try different | 
 | 	fifo values without rebooting the machine for each test. Note | 
 | 	that you need to do 'floppycontrol --messages' every time you | 
 | 	re-insert the module. | 
 |  | 
 | 	Usually, tuning the fifo threshold should not be needed, as | 
 | 	the default (0xa) is reasonable. | 
 |  | 
 |  floppy=<drive>,<type>,cmos | 
 | 	Sets the CMOS type of <drive> to <type>. This is mandatory if | 
 | 	you have more than two floppy drives (only two can be | 
 | 	described in the physical CMOS), or if your BIOS uses | 
 | 	non-standard CMOS types. The CMOS types are: | 
 |  | 
 | 	       ==  ================================== | 
 | 		0  Use the value of the physical CMOS | 
 | 		1  5 1/4 DD | 
 | 		2  5 1/4 HD | 
 | 		3  3 1/2 DD | 
 | 		4  3 1/2 HD | 
 | 		5  3 1/2 ED | 
 | 		6  3 1/2 ED | 
 | 	       16  unknown or not installed | 
 | 	       ==  ================================== | 
 |  | 
 | 	(Note: there are two valid types for ED drives. This is because 5 was | 
 | 	initially chosen to represent floppy *tapes*, and 6 for ED drives. | 
 | 	AMI ignored this, and used 5 for ED drives. That's why the floppy | 
 | 	driver handles both.) | 
 |  | 
 |  floppy=unexpected_interrupts | 
 | 	Print a warning message when an unexpected interrupt is received. | 
 | 	(default) | 
 |  | 
 |  floppy=no_unexpected_interrupts / floppy=L40SX | 
 | 	Don't print a message when an unexpected interrupt is received. This | 
 | 	is needed on IBM L40SX laptops in certain video modes. (There seems | 
 | 	to be an interaction between video and floppy. The unexpected | 
 | 	interrupts affect only performance, and can be safely ignored.) | 
 |  | 
 |  floppy=broken_dcl | 
 | 	Don't use the disk change line, but assume that the disk was | 
 | 	changed whenever the device node is reopened. Needed on some | 
 | 	boxes where the disk change line is broken or unsupported. | 
 | 	This should be regarded as a stopgap measure, indeed it makes | 
 | 	floppy operation less efficient due to unneeded cache | 
 | 	flushings, and slightly more unreliable. Please verify your | 
 | 	cable, connection and jumper settings if you have any DCL | 
 | 	problems. However, some older drives, and also some laptops | 
 | 	are known not to have a DCL. | 
 |  | 
 |  floppy=debug | 
 | 	Print debugging messages. | 
 |  | 
 |  floppy=messages | 
 | 	Print informational messages for some operations (disk change | 
 | 	notifications, warnings about over and underruns, and about | 
 | 	autodetection). | 
 |  | 
 |  floppy=silent_dcl_clear | 
 | 	Uses a less noisy way to clear the disk change line (which | 
 | 	doesn't involve seeks). Implied by 'daring' option. | 
 |  | 
 |  floppy=<nr>,irq | 
 | 	Sets the floppy IRQ to <nr> instead of 6. | 
 |  | 
 |  floppy=<nr>,dma | 
 | 	Sets the floppy DMA channel to <nr> instead of 2. | 
 |  | 
 |  floppy=slow | 
 | 	Use PS/2 stepping rate:: | 
 |  | 
 | 	   PS/2 floppies have much slower step rates than regular floppies. | 
 | 	   It's been recommended that take about 1/4 of the default speed | 
 | 	   in some more extreme cases. | 
 |  | 
 |  | 
 | Supporting utilities and additional documentation: | 
 | ================================================== | 
 |  | 
 | Additional parameters of the floppy driver can be configured at | 
 | runtime. Utilities which do this can be found in the fdutils package. | 
 | This package also contains a new version of mtools which allows to | 
 | access high capacity disks (up to 1992K on a high density 3 1/2 disk!). | 
 | It also contains additional documentation about the floppy driver. | 
 |  | 
 | The latest version can be found at fdutils homepage: | 
 |  | 
 |  http://fdutils.linux.lu | 
 |  | 
 | The fdutils releases can be found at: | 
 |  | 
 |  http://fdutils.linux.lu/download.html | 
 |  | 
 |  http://www.tux.org/pub/knaff/fdutils/ | 
 |  | 
 |  ftp://metalab.unc.edu/pub/Linux/utils/disk-management/ | 
 |  | 
 | Reporting problems about the floppy driver | 
 | ========================================== | 
 |  | 
 | If you have a question or a bug report about the floppy driver, mail | 
 | me at Alain.Knaff@poboxes.com . If you post to Usenet, preferably use | 
 | comp.os.linux.hardware. As the volume in these groups is rather high, | 
 | be sure to include the word "floppy" (or "FLOPPY") in the subject | 
 | line.  If the reported problem happens when mounting floppy disks, be | 
 | sure to mention also the type of the filesystem in the subject line. | 
 |  | 
 | Be sure to read the FAQ before mailing/posting any bug reports! | 
 |  | 
 | Alain | 
 |  | 
 | Changelog | 
 | ========= | 
 |  | 
 | 10-30-2004 : | 
 | 		Cleanup, updating, add reference to module configuration. | 
 | 		James Nelson <james4765@gmail.com> | 
 |  | 
 | 6-3-2000 : | 
 | 		Original Document |