1*e7751617SMauro Carvalho Chehab============= 2*e7751617SMauro Carvalho ChehabFloppy Driver 3*e7751617SMauro Carvalho Chehab============= 4*e7751617SMauro Carvalho Chehab 5*e7751617SMauro Carvalho ChehabFAQ list: 6*e7751617SMauro Carvalho Chehab========= 7*e7751617SMauro Carvalho Chehab 8*e7751617SMauro Carvalho ChehabA FAQ list may be found in the fdutils package (see below), and also 9*e7751617SMauro Carvalho Chehabat <http://fdutils.linux.lu/faq.html>. 10*e7751617SMauro Carvalho Chehab 11*e7751617SMauro Carvalho Chehab 12*e7751617SMauro Carvalho ChehabLILO configuration options (Thinkpad users, read this) 13*e7751617SMauro Carvalho Chehab====================================================== 14*e7751617SMauro Carvalho Chehab 15*e7751617SMauro Carvalho ChehabThe floppy driver is configured using the 'floppy=' option in 16*e7751617SMauro Carvalho Chehablilo. This option can be typed at the boot prompt, or entered in the 17*e7751617SMauro Carvalho Chehablilo configuration file. 18*e7751617SMauro Carvalho Chehab 19*e7751617SMauro Carvalho ChehabExample: If your kernel is called linux-2.6.9, type the following line 20*e7751617SMauro Carvalho Chehabat the lilo boot prompt (if you have a thinkpad):: 21*e7751617SMauro Carvalho Chehab 22*e7751617SMauro Carvalho Chehab linux-2.6.9 floppy=thinkpad 23*e7751617SMauro Carvalho Chehab 24*e7751617SMauro Carvalho ChehabYou may also enter the following line in /etc/lilo.conf, in the description 25*e7751617SMauro Carvalho Chehabof linux-2.6.9:: 26*e7751617SMauro Carvalho Chehab 27*e7751617SMauro Carvalho Chehab append = "floppy=thinkpad" 28*e7751617SMauro Carvalho Chehab 29*e7751617SMauro Carvalho ChehabSeveral floppy related options may be given, example:: 30*e7751617SMauro Carvalho Chehab 31*e7751617SMauro Carvalho Chehab linux-2.6.9 floppy=daring floppy=two_fdc 32*e7751617SMauro Carvalho Chehab append = "floppy=daring floppy=two_fdc" 33*e7751617SMauro Carvalho Chehab 34*e7751617SMauro Carvalho ChehabIf you give options both in the lilo config file and on the boot 35*e7751617SMauro Carvalho Chehabprompt, the option strings of both places are concatenated, the boot 36*e7751617SMauro Carvalho Chehabprompt options coming last. That's why there are also options to 37*e7751617SMauro Carvalho Chehabrestore the default behavior. 38*e7751617SMauro Carvalho Chehab 39*e7751617SMauro Carvalho Chehab 40*e7751617SMauro Carvalho ChehabModule configuration options 41*e7751617SMauro Carvalho Chehab============================ 42*e7751617SMauro Carvalho Chehab 43*e7751617SMauro Carvalho ChehabIf you use the floppy driver as a module, use the following syntax:: 44*e7751617SMauro Carvalho Chehab 45*e7751617SMauro Carvalho Chehab modprobe floppy floppy="<options>" 46*e7751617SMauro Carvalho Chehab 47*e7751617SMauro Carvalho ChehabExample:: 48*e7751617SMauro Carvalho Chehab 49*e7751617SMauro Carvalho Chehab modprobe floppy floppy="omnibook messages" 50*e7751617SMauro Carvalho Chehab 51*e7751617SMauro Carvalho ChehabIf you need certain options enabled every time you load the floppy driver, 52*e7751617SMauro Carvalho Chehabyou can put:: 53*e7751617SMauro Carvalho Chehab 54*e7751617SMauro Carvalho Chehab options floppy floppy="omnibook messages" 55*e7751617SMauro Carvalho Chehab 56*e7751617SMauro Carvalho Chehabin a configuration file in /etc/modprobe.d/. 57*e7751617SMauro Carvalho Chehab 58*e7751617SMauro Carvalho Chehab 59*e7751617SMauro Carvalho ChehabThe floppy driver related options are: 60*e7751617SMauro Carvalho Chehab 61*e7751617SMauro Carvalho Chehab floppy=asus_pci 62*e7751617SMauro Carvalho Chehab Sets the bit mask to allow only units 0 and 1. (default) 63*e7751617SMauro Carvalho Chehab 64*e7751617SMauro Carvalho Chehab floppy=daring 65*e7751617SMauro Carvalho Chehab Tells the floppy driver that you have a well behaved floppy controller. 66*e7751617SMauro Carvalho Chehab This allows more efficient and smoother operation, but may fail on 67*e7751617SMauro Carvalho Chehab certain controllers. This may speed up certain operations. 68*e7751617SMauro Carvalho Chehab 69*e7751617SMauro Carvalho Chehab floppy=0,daring 70*e7751617SMauro Carvalho Chehab Tells the floppy driver that your floppy controller should be used 71*e7751617SMauro Carvalho Chehab with caution. 72*e7751617SMauro Carvalho Chehab 73*e7751617SMauro Carvalho Chehab floppy=one_fdc 74*e7751617SMauro Carvalho Chehab Tells the floppy driver that you have only one floppy controller. 75*e7751617SMauro Carvalho Chehab (default) 76*e7751617SMauro Carvalho Chehab 77*e7751617SMauro Carvalho Chehab floppy=two_fdc / floppy=<address>,two_fdc 78*e7751617SMauro Carvalho Chehab Tells the floppy driver that you have two floppy controllers. 79*e7751617SMauro Carvalho Chehab The second floppy controller is assumed to be at <address>. 80*e7751617SMauro Carvalho Chehab This option is not needed if the second controller is at address 81*e7751617SMauro Carvalho Chehab 0x370, and if you use the 'cmos' option. 82*e7751617SMauro Carvalho Chehab 83*e7751617SMauro Carvalho Chehab floppy=thinkpad 84*e7751617SMauro Carvalho Chehab Tells the floppy driver that you have a Thinkpad. Thinkpads use an 85*e7751617SMauro Carvalho Chehab inverted convention for the disk change line. 86*e7751617SMauro Carvalho Chehab 87*e7751617SMauro Carvalho Chehab floppy=0,thinkpad 88*e7751617SMauro Carvalho Chehab Tells the floppy driver that you don't have a Thinkpad. 89*e7751617SMauro Carvalho Chehab 90*e7751617SMauro Carvalho Chehab floppy=omnibook / floppy=nodma 91*e7751617SMauro Carvalho Chehab Tells the floppy driver not to use Dma for data transfers. 92*e7751617SMauro Carvalho Chehab This is needed on HP Omnibooks, which don't have a workable 93*e7751617SMauro Carvalho Chehab DMA channel for the floppy driver. This option is also useful 94*e7751617SMauro Carvalho Chehab if you frequently get "Unable to allocate DMA memory" messages. 95*e7751617SMauro Carvalho Chehab Indeed, dma memory needs to be continuous in physical memory, 96*e7751617SMauro Carvalho Chehab and is thus harder to find, whereas non-dma buffers may be 97*e7751617SMauro Carvalho Chehab allocated in virtual memory. However, I advise against this if 98*e7751617SMauro Carvalho Chehab you have an FDC without a FIFO (8272A or 82072). 82072A and 99*e7751617SMauro Carvalho Chehab later are OK. You also need at least a 486 to use nodma. 100*e7751617SMauro Carvalho Chehab If you use nodma mode, I suggest you also set the FIFO 101*e7751617SMauro Carvalho Chehab threshold to 10 or lower, in order to limit the number of data 102*e7751617SMauro Carvalho Chehab transfer interrupts. 103*e7751617SMauro Carvalho Chehab 104*e7751617SMauro Carvalho Chehab If you have a FIFO-able FDC, the floppy driver automatically 105*e7751617SMauro Carvalho Chehab falls back on non DMA mode if no DMA-able memory can be found. 106*e7751617SMauro Carvalho Chehab If you want to avoid this, explicitly ask for 'yesdma'. 107*e7751617SMauro Carvalho Chehab 108*e7751617SMauro Carvalho Chehab floppy=yesdma 109*e7751617SMauro Carvalho Chehab Tells the floppy driver that a workable DMA channel is available. 110*e7751617SMauro Carvalho Chehab (default) 111*e7751617SMauro Carvalho Chehab 112*e7751617SMauro Carvalho Chehab floppy=nofifo 113*e7751617SMauro Carvalho Chehab Disables the FIFO entirely. This is needed if you get "Bus 114*e7751617SMauro Carvalho Chehab master arbitration error" messages from your Ethernet card (or 115*e7751617SMauro Carvalho Chehab from other devices) while accessing the floppy. 116*e7751617SMauro Carvalho Chehab 117*e7751617SMauro Carvalho Chehab floppy=usefifo 118*e7751617SMauro Carvalho Chehab Enables the FIFO. (default) 119*e7751617SMauro Carvalho Chehab 120*e7751617SMauro Carvalho Chehab floppy=<threshold>,fifo_depth 121*e7751617SMauro Carvalho Chehab Sets the FIFO threshold. This is mostly relevant in DMA 122*e7751617SMauro Carvalho Chehab mode. If this is higher, the floppy driver tolerates more 123*e7751617SMauro Carvalho Chehab interrupt latency, but it triggers more interrupts (i.e. it 124*e7751617SMauro Carvalho Chehab imposes more load on the rest of the system). If this is 125*e7751617SMauro Carvalho Chehab lower, the interrupt latency should be lower too (faster 126*e7751617SMauro Carvalho Chehab processor). The benefit of a lower threshold is less 127*e7751617SMauro Carvalho Chehab interrupts. 128*e7751617SMauro Carvalho Chehab 129*e7751617SMauro Carvalho Chehab To tune the fifo threshold, switch on over/underrun messages 130*e7751617SMauro Carvalho Chehab using 'floppycontrol --messages'. Then access a floppy 131*e7751617SMauro Carvalho Chehab disk. If you get a huge amount of "Over/Underrun - retrying" 132*e7751617SMauro Carvalho Chehab messages, then the fifo threshold is too low. Try with a 133*e7751617SMauro Carvalho Chehab higher value, until you only get an occasional Over/Underrun. 134*e7751617SMauro Carvalho Chehab It is a good idea to compile the floppy driver as a module 135*e7751617SMauro Carvalho Chehab when doing this tuning. Indeed, it allows to try different 136*e7751617SMauro Carvalho Chehab fifo values without rebooting the machine for each test. Note 137*e7751617SMauro Carvalho Chehab that you need to do 'floppycontrol --messages' every time you 138*e7751617SMauro Carvalho Chehab re-insert the module. 139*e7751617SMauro Carvalho Chehab 140*e7751617SMauro Carvalho Chehab Usually, tuning the fifo threshold should not be needed, as 141*e7751617SMauro Carvalho Chehab the default (0xa) is reasonable. 142*e7751617SMauro Carvalho Chehab 143*e7751617SMauro Carvalho Chehab floppy=<drive>,<type>,cmos 144*e7751617SMauro Carvalho Chehab Sets the CMOS type of <drive> to <type>. This is mandatory if 145*e7751617SMauro Carvalho Chehab you have more than two floppy drives (only two can be 146*e7751617SMauro Carvalho Chehab described in the physical CMOS), or if your BIOS uses 147*e7751617SMauro Carvalho Chehab non-standard CMOS types. The CMOS types are: 148*e7751617SMauro Carvalho Chehab 149*e7751617SMauro Carvalho Chehab == ================================== 150*e7751617SMauro Carvalho Chehab 0 Use the value of the physical CMOS 151*e7751617SMauro Carvalho Chehab 1 5 1/4 DD 152*e7751617SMauro Carvalho Chehab 2 5 1/4 HD 153*e7751617SMauro Carvalho Chehab 3 3 1/2 DD 154*e7751617SMauro Carvalho Chehab 4 3 1/2 HD 155*e7751617SMauro Carvalho Chehab 5 3 1/2 ED 156*e7751617SMauro Carvalho Chehab 6 3 1/2 ED 157*e7751617SMauro Carvalho Chehab 16 unknown or not installed 158*e7751617SMauro Carvalho Chehab == ================================== 159*e7751617SMauro Carvalho Chehab 160*e7751617SMauro Carvalho Chehab (Note: there are two valid types for ED drives. This is because 5 was 161*e7751617SMauro Carvalho Chehab initially chosen to represent floppy *tapes*, and 6 for ED drives. 162*e7751617SMauro Carvalho Chehab AMI ignored this, and used 5 for ED drives. That's why the floppy 163*e7751617SMauro Carvalho Chehab driver handles both.) 164*e7751617SMauro Carvalho Chehab 165*e7751617SMauro Carvalho Chehab floppy=unexpected_interrupts 166*e7751617SMauro Carvalho Chehab Print a warning message when an unexpected interrupt is received. 167*e7751617SMauro Carvalho Chehab (default) 168*e7751617SMauro Carvalho Chehab 169*e7751617SMauro Carvalho Chehab floppy=no_unexpected_interrupts / floppy=L40SX 170*e7751617SMauro Carvalho Chehab Don't print a message when an unexpected interrupt is received. This 171*e7751617SMauro Carvalho Chehab is needed on IBM L40SX laptops in certain video modes. (There seems 172*e7751617SMauro Carvalho Chehab to be an interaction between video and floppy. The unexpected 173*e7751617SMauro Carvalho Chehab interrupts affect only performance, and can be safely ignored.) 174*e7751617SMauro Carvalho Chehab 175*e7751617SMauro Carvalho Chehab floppy=broken_dcl 176*e7751617SMauro Carvalho Chehab Don't use the disk change line, but assume that the disk was 177*e7751617SMauro Carvalho Chehab changed whenever the device node is reopened. Needed on some 178*e7751617SMauro Carvalho Chehab boxes where the disk change line is broken or unsupported. 179*e7751617SMauro Carvalho Chehab This should be regarded as a stopgap measure, indeed it makes 180*e7751617SMauro Carvalho Chehab floppy operation less efficient due to unneeded cache 181*e7751617SMauro Carvalho Chehab flushings, and slightly more unreliable. Please verify your 182*e7751617SMauro Carvalho Chehab cable, connection and jumper settings if you have any DCL 183*e7751617SMauro Carvalho Chehab problems. However, some older drives, and also some laptops 184*e7751617SMauro Carvalho Chehab are known not to have a DCL. 185*e7751617SMauro Carvalho Chehab 186*e7751617SMauro Carvalho Chehab floppy=debug 187*e7751617SMauro Carvalho Chehab Print debugging messages. 188*e7751617SMauro Carvalho Chehab 189*e7751617SMauro Carvalho Chehab floppy=messages 190*e7751617SMauro Carvalho Chehab Print informational messages for some operations (disk change 191*e7751617SMauro Carvalho Chehab notifications, warnings about over and underruns, and about 192*e7751617SMauro Carvalho Chehab autodetection). 193*e7751617SMauro Carvalho Chehab 194*e7751617SMauro Carvalho Chehab floppy=silent_dcl_clear 195*e7751617SMauro Carvalho Chehab Uses a less noisy way to clear the disk change line (which 196*e7751617SMauro Carvalho Chehab doesn't involve seeks). Implied by 'daring' option. 197*e7751617SMauro Carvalho Chehab 198*e7751617SMauro Carvalho Chehab floppy=<nr>,irq 199*e7751617SMauro Carvalho Chehab Sets the floppy IRQ to <nr> instead of 6. 200*e7751617SMauro Carvalho Chehab 201*e7751617SMauro Carvalho Chehab floppy=<nr>,dma 202*e7751617SMauro Carvalho Chehab Sets the floppy DMA channel to <nr> instead of 2. 203*e7751617SMauro Carvalho Chehab 204*e7751617SMauro Carvalho Chehab floppy=slow 205*e7751617SMauro Carvalho Chehab Use PS/2 stepping rate:: 206*e7751617SMauro Carvalho Chehab 207*e7751617SMauro Carvalho Chehab PS/2 floppies have much slower step rates than regular floppies. 208*e7751617SMauro Carvalho Chehab It's been recommended that take about 1/4 of the default speed 209*e7751617SMauro Carvalho Chehab in some more extreme cases. 210*e7751617SMauro Carvalho Chehab 211*e7751617SMauro Carvalho Chehab 212*e7751617SMauro Carvalho ChehabSupporting utilities and additional documentation: 213*e7751617SMauro Carvalho Chehab================================================== 214*e7751617SMauro Carvalho Chehab 215*e7751617SMauro Carvalho ChehabAdditional parameters of the floppy driver can be configured at 216*e7751617SMauro Carvalho Chehabruntime. Utilities which do this can be found in the fdutils package. 217*e7751617SMauro Carvalho ChehabThis package also contains a new version of mtools which allows to 218*e7751617SMauro Carvalho Chehabaccess high capacity disks (up to 1992K on a high density 3 1/2 disk!). 219*e7751617SMauro Carvalho ChehabIt also contains additional documentation about the floppy driver. 220*e7751617SMauro Carvalho Chehab 221*e7751617SMauro Carvalho ChehabThe latest version can be found at fdutils homepage: 222*e7751617SMauro Carvalho Chehab 223*e7751617SMauro Carvalho Chehab http://fdutils.linux.lu 224*e7751617SMauro Carvalho Chehab 225*e7751617SMauro Carvalho ChehabThe fdutils releases can be found at: 226*e7751617SMauro Carvalho Chehab 227*e7751617SMauro Carvalho Chehab http://fdutils.linux.lu/download.html 228*e7751617SMauro Carvalho Chehab 229*e7751617SMauro Carvalho Chehab http://www.tux.org/pub/knaff/fdutils/ 230*e7751617SMauro Carvalho Chehab 231*e7751617SMauro Carvalho Chehab ftp://metalab.unc.edu/pub/Linux/utils/disk-management/ 232*e7751617SMauro Carvalho Chehab 233*e7751617SMauro Carvalho ChehabReporting problems about the floppy driver 234*e7751617SMauro Carvalho Chehab========================================== 235*e7751617SMauro Carvalho Chehab 236*e7751617SMauro Carvalho ChehabIf you have a question or a bug report about the floppy driver, mail 237*e7751617SMauro Carvalho Chehabme at [email protected] . If you post to Usenet, preferably use 238*e7751617SMauro Carvalho Chehabcomp.os.linux.hardware. As the volume in these groups is rather high, 239*e7751617SMauro Carvalho Chehabbe sure to include the word "floppy" (or "FLOPPY") in the subject 240*e7751617SMauro Carvalho Chehabline. If the reported problem happens when mounting floppy disks, be 241*e7751617SMauro Carvalho Chehabsure to mention also the type of the filesystem in the subject line. 242*e7751617SMauro Carvalho Chehab 243*e7751617SMauro Carvalho ChehabBe sure to read the FAQ before mailing/posting any bug reports! 244*e7751617SMauro Carvalho Chehab 245*e7751617SMauro Carvalho ChehabAlain 246*e7751617SMauro Carvalho Chehab 247*e7751617SMauro Carvalho ChehabChangelog 248*e7751617SMauro Carvalho Chehab========= 249*e7751617SMauro Carvalho Chehab 250*e7751617SMauro Carvalho Chehab10-30-2004 : 251*e7751617SMauro Carvalho Chehab Cleanup, updating, add reference to module configuration. 252*e7751617SMauro Carvalho Chehab James Nelson <[email protected]> 253*e7751617SMauro Carvalho Chehab 254*e7751617SMauro Carvalho Chehab6-3-2000 : 255*e7751617SMauro Carvalho Chehab Original Document 256