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