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