1 |
199 |
simons |
This Readme 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 ftp.imag.fr:pub/Linux/ZLIBC/floppy/FAQ
|
8 |
|
|
|
9 |
|
|
|
10 |
|
|
Lilo config 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 |
|
|
Example: If your kernel is called linux-pre2.0.9, type the following line
|
17 |
|
|
at the lilo boot prompt (if you have a thinkpad):
|
18 |
|
|
linux-pre2.0.9 floppy=thinkpad
|
19 |
|
|
You may also enter the following line in /etc/lilo.conf, in the description
|
20 |
|
|
of linux-pre2.0.9:
|
21 |
|
|
append = "floppy=thinkpad"
|
22 |
|
|
|
23 |
|
|
Several floppy related options may be given, example:
|
24 |
|
|
linux-pre2.0.9 floppy=daring floppy=two_fdc
|
25 |
|
|
append = "floppy=daring floppy=two_fdc"
|
26 |
|
|
|
27 |
|
|
If you give options both in the lilo config file and on the boot
|
28 |
|
|
prompt, the option strings of both places are concatenated, the boot
|
29 |
|
|
prompt options coming last. That's why there are also options to
|
30 |
|
|
restore the default behavior.
|
31 |
|
|
|
32 |
|
|
If you use the floppy driver as a module, use the following syntax:
|
33 |
|
|
insmod floppy 'floppy=""'
|
34 |
|
|
|
35 |
|
|
Example:
|
36 |
|
|
insmod floppy 'floppy="daring two_fdc"'
|
37 |
|
|
|
38 |
|
|
Note that in this case 'floppy=' should only be typed out once, and
|
39 |
|
|
not once for each option. You need at least modules-1.3.57 for this
|
40 |
|
|
method. However, the older environment variable based syntax is still
|
41 |
|
|
available:
|
42 |
|
|
(sh syntax): floppy="daring two_fdc" insmod floppy
|
43 |
|
|
(csh syntax): setenv floppy "daring two_fdc" ; insmod floppy
|
44 |
|
|
|
45 |
|
|
Some versions of insmod are buggy in one way or another. If you have
|
46 |
|
|
any problems (options not being passed correctly, segfaults during
|
47 |
|
|
insmod), first check whether there is a more recent version. If there
|
48 |
|
|
isn't, use the old method using environment variables.
|
49 |
|
|
|
50 |
|
|
The floppy related options include:
|
51 |
|
|
|
52 |
|
|
floppy=,allowed_drive_mask
|
53 |
|
|
Obsolete. Use the floppy=,,cmos option instead
|
54 |
|
|
|
55 |
|
|
floppy=all_drives
|
56 |
|
|
Obsolete. Use the floppy=,,cmos option instead
|
57 |
|
|
|
58 |
|
|
floppy=asus_pci
|
59 |
|
|
Sets the bit mask to allow only units 0 and 1. (The default)
|
60 |
|
|
|
61 |
|
|
floppy=daring
|
62 |
|
|
Tells the floppy driver that you have a well behaved floppy controller.
|
63 |
|
|
This allows more efficient and smoother operation, but may fail on
|
64 |
|
|
certain controllers. This may speed up certain operations.
|
65 |
|
|
|
66 |
|
|
floppy=0,daring
|
67 |
|
|
Tells the floppy driver that your floppy controller should be used
|
68 |
|
|
with caution.
|
69 |
|
|
|
70 |
|
|
floppy=one_fdc
|
71 |
|
|
Tells the floppy driver that you have only floppy controller (default)
|
72 |
|
|
|
73 |
|
|
floppy=two_fdc
|
74 |
|
|
floppy=,two_fdc
|
75 |
|
|
Tells the floppy driver that you have two floppy controllers. The
|
76 |
|
|
second floppy controller is assumed to be at . This
|
77 |
|
|
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, and is
|
94 |
|
|
thus harder to find, whereas non-dma buffers may be allocated
|
95 |
|
|
in virtual memory. However, I advise against this if you have
|
96 |
|
|
an FDC without a FIFO (8272A or 82072). 82072A and later are
|
97 |
|
|
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 |
|
|
floppy=dma
|
103 |
|
|
Tells the floppy driver that a workable DMA channel is available
|
104 |
|
|
(the default).
|
105 |
|
|
|
106 |
|
|
floppy=nofifo
|
107 |
|
|
Disables the FIFO entirely. This is needed if you get "Bus
|
108 |
|
|
master arbitration error" messages from your ethernet card (or
|
109 |
|
|
from other devices) while accessing the floppy.
|
110 |
|
|
|
111 |
|
|
floppy=fifo
|
112 |
|
|
Enables the FIFO (default)
|
113 |
|
|
|
114 |
|
|
floppy=,fifo_depth
|
115 |
|
|
Sets the FIFO threshold. This is mostly relevant in DMA
|
116 |
|
|
mode. If this is higher, the floppy driver tolerates more
|
117 |
|
|
interrupt latency, but it triggers more interrupts (i.e. it
|
118 |
|
|
imposes more load on the rest of the system). If this is
|
119 |
|
|
lower, the interrupt latency should be lower too (faster
|
120 |
|
|
processor). The benefit of a lower threshold is less
|
121 |
|
|
interrupts.
|
122 |
|
|
To tune the fifo threshold, switch on over/underrun messages
|
123 |
|
|
using 'floppycontrol --messages'. Then access a floppy
|
124 |
|
|
disk. If you get a huge amount of "Over/Underrun - retrying"
|
125 |
|
|
messages, then the fifo threshold is too low. Try with a
|
126 |
|
|
higher value, until you only get an occasional Over/Underrun.
|
127 |
|
|
It is a good idea to compile the floppy driver as a module
|
128 |
|
|
when doing this tuning. Indeed, it allows to try different
|
129 |
|
|
fifo values without rebooting the machine for each test. Note
|
130 |
|
|
that you need to do 'floppycontrol --messages' every time you
|
131 |
|
|
re-insert the module.
|
132 |
|
|
Usually, tuning the fifo threshold should not be needed, as
|
133 |
|
|
the default (0xa) is reasonable.
|
134 |
|
|
|
135 |
|
|
floppy=,,cmos
|
136 |
|
|
Sets the CMOS type of to . This is mandatory if
|
137 |
|
|
you have more than two floppy drives (only two can be
|
138 |
|
|
described in the physical CMOS), or if your BIOS uses
|
139 |
|
|
non-standard CMOS types. The CMOS types are:
|
140 |
|
|
|
141 |
|
|
1 - 5 1/4 DD
|
142 |
|
|
2 - 5 1/4 HD
|
143 |
|
|
3 - 3 1/2 DD
|
144 |
|
|
4 - 3 1/2 HD
|
145 |
|
|
5 - 3 1/2 ED
|
146 |
|
|
6 - 3 1/2 ED
|
147 |
|
|
16 - unknown or not installed
|
148 |
|
|
(Note: there are two valid types for ED drives. This is because 5 was
|
149 |
|
|
initially chosen to represent floppy *tapes*, and 6 for ED drives.
|
150 |
|
|
AMI ignored this, and used 5 for ED drives. That's why the floppy
|
151 |
|
|
driver handles both)
|
152 |
|
|
|
153 |
|
|
floppy=unexpected_interrupts
|
154 |
|
|
Print a warning message when an unexpected interrupt is received
|
155 |
|
|
(default behavior)
|
156 |
|
|
|
157 |
|
|
floppy=no_unexpected_interrupts
|
158 |
|
|
floppy=L40SX
|
159 |
|
|
Don't print a message when an unexpected interrupt is received. This
|
160 |
|
|
is needed on IBM L40SX laptops in certain video modes. (There seems
|
161 |
|
|
to be an interaction between video and floppy. The unexpected interrupts
|
162 |
|
|
only affect performance, and can safely be ignored.)
|
163 |
|
|
|
164 |
|
|
|
165 |
|
|
Supporting utilities and additional documentation:
|
166 |
|
|
==================================================
|
167 |
|
|
|
168 |
|
|
Additional parameters of the floppy driver can be configured at run
|
169 |
|
|
time. Utilities which do this can be found in the fdutils
|
170 |
|
|
package. This package also contains a new version of mtools which
|
171 |
|
|
allows to access high capacity disks (up to 1992K on a high density 3
|
172 |
|
|
1/2 disk!). It also contains additional documentation about the floppy
|
173 |
|
|
driver. It can be found at:
|
174 |
|
|
ftp.imag.fr:pub/Linux/ZLIBC/fdutils/fdutils-4.1.src.tar.gz
|
175 |
|
|
sunsite.unc.edu:/pub/Linux/system/Misc/fdutils-4.1.src.tar.gz
|
176 |
|
|
tsx-11.mit.edu:/pub/linux/sources/sbin/fdutils-4.1.src.tar.gz
|
177 |
|
|
|
178 |
|
|
Alpha patches to these utilities are at:
|
179 |
|
|
ftp.imag.fr:pub/Linux/ZLIBC/fdutils/ALPHA
|
180 |
|
|
All patches contained in this directory are directly against the base
|
181 |
|
|
version, i.e. DON'T APPLY THEM ON TOP OF EACH OTHER. Only apply the
|
182 |
|
|
most recent one.
|
183 |
|
|
|
184 |
|
|
|
185 |
|
|
Alpha patches for the floppy driver:
|
186 |
|
|
====================================
|
187 |
|
|
|
188 |
|
|
You may find ALPHA patches of the driver itself in
|
189 |
|
|
ftp.imag.fr:pub/Linux/ZLIBC/floppy/ALPHA. These patches are named
|
190 |
|
|
fdp-.diff.gz
|
191 |
|
|
WARNING: These _are_ ALPHA, and may introduce new problems! Some
|
192 |
|
|
problems may only show up on certain hardware, or when trying weirdo
|
193 |
|
|
things. So don't be misled by people claiming they are stable and
|
194 |
|
|
should really be BETA. What works for one person, may not work for
|
195 |
|
|
somebody else at all. This directory contains a RELEASES file
|
196 |
|
|
describing the features of some of these patches.
|
197 |
|
|
|
198 |
|
|
If after some testing these patches prove to be sufficiently stable,
|
199 |
|
|
they'll move into ftp.imag.fr:pub/Linux/ZLIBC/floppy/BETA.
|
200 |
|
|
|
201 |
|
|
You may find quick&dirty fixes to the driver in
|
202 |
|
|
ftp.imag.fr:pub/Linux/ZLIBC/QDF. These patches are named
|
203 |
|
|
fdp-.diff
|
204 |
|
|
These patches fix only the most obvious problems, or provide trivial
|
205 |
|
|
enhancements. The main objective is to keep these patches small and
|
206 |
|
|
local, in order to keep the probability of introducing new problems as
|
207 |
|
|
small as possible. However, they may not attack the root of the
|
208 |
|
|
problem but only cure the symptoms. This directory contains a RELEASES
|
209 |
|
|
file describing the features of these patches.
|
210 |
|
|
|
211 |
|
|
The ALPHA, BETA and QDF directories are removed, and replaced by a
|
212 |
|
|
README file when they get empty due to integration of the patches into
|
213 |
|
|
the stock kernel. You may still find patches to old kernels in
|
214 |
|
|
ftp.imag.fr:pub/Linux/ZLIBC/obsolete
|
215 |
|
|
|
216 |
|
|
|
217 |
|
|
Reporting problems about the floppy driver
|
218 |
|
|
==========================================
|
219 |
|
|
|
220 |
|
|
If you have a question or a bug report about the floppy driver, mail
|
221 |
|
|
me at Alain.Knaff@imag.fr. If you post to the news, use preferably one
|
222 |
|
|
of the groups comp.os.linux.help (for questions) or
|
223 |
|
|
comp.os.linux.hardware (for bug reports). As the volume in these
|
224 |
|
|
groups is rather high, be sure to include the word "floppy" (or
|
225 |
|
|
"FLOPPY") in the subject line.
|
226 |
|
|
|
227 |
|
|
Be sure to read the FAQ before mailing/posting any bug reports!
|
228 |
|
|
|
229 |
|
|
Alain
|