9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] Floppy driver
@ 2001-05-21  4:49 lucio
  0 siblings, 0 replies; only message in thread
From: lucio @ 2001-05-21  4:49 UTC (permalink / raw)
  To: 9fans

The following code:

print ("floppyrevive(%d): %lux - %lux\n", ++x, &fl, fl.d);
		/* reset controller and turn all motors off */
		splhi();
		fl.ncmd = 1;
		fl.cmd[0] = 0;
		outb(Pdor, 0);
		delay(10);
		outb(Pdor, Fintena|Fena);
		delay(10);
		spllo();
print ("floppyrevive(%d): %lux - %lux\n", ++x, &fl, fl.d);

from /sys/src/boot/pc/devfloppy.c:/^floppyrevive (I seem to recall)
reveals that fl.d changes value from a valid address to 0xffffffff.

Now, "fl" is the FController structure, defined in ..../devfloppy.h
(and in devfloppy.c, I removed the second declaration) and I really
cannot figure how one (or more) fields within that structure could
be affected by the operations between.

Also, this only occurs on an old 386/387 platform, with an add-on
ATA and floppy controller.  I have not seen the symptom on the
Pentium I first experimented with.  The symptom itself is obscure:
from trap.c: "exception/interrupt 12".

Clues, anyone?

++L


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-05-21  4:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-05-21  4:49 [9fans] Floppy driver lucio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).