[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Floppy: Remove Sense Interrupt Hack
From: |
Justin Chevrier |
Subject: |
[Qemu-devel] [PATCH] Floppy: Remove Sense Interrupt Hack |
Date: |
Thu, 18 Dec 2008 13:14:03 -0800 (PST) |
Hey guys,
I'm tracking down the next issue(s) with the Openserver installation. The
current issue is that during installation when the installer tries to link the
BLTD (eg. SCSI drivers) drivers into the kernel it is unable to access the
floppy drive. After reviewing the debug logs it turns out that the installer
dosen't like the value being returned by Sense Interrupt. The cause of this is
a hack in the Sense Interrupt code that always returns an OR'd value based on
FD_SR0_SEEK instead of the actual Status0 regsiter. The hack identifies that
the floppy code is broken with regard to Status0 and Read/Writes. Outside of
setting particular values in case of CRC errors/etc I can't identify from
datasheets what we should be doing. I've tracked down what I believe is the
original mailing list post regarding this hack and it seems to be related to
Windows 2000 and higher OS's recognizing the floppy drive. I applied the patch
below and verified that
detection/read/writes/formatting still work in Windows XP SP2.
Original post:
http://lists.gnu.org/archive/html/qemu-devel/2004-10/msg00076.html
SVN change:
http://svn.savannah.gnu.org/viewvc?view=rev&root=qemu&revision=1118
Having said the above does anyone know what the comment in the hack is
referencing? Is it still needed? If so what needs to be done to eliminate it?
If it's no longer needed I propose the patch below.
Justin
Changelog:
Remove Sense Interrupt hack
Signed-off-by: Justin Chevrier <address@hidden>
--- hw/fdc.c (revision 6082)
+++ hw/fdc.c (working copy)
@@ -1601,16 +1601,9 @@
{
fdrive_t *cur_drv = get_cur_drv(fdctrl);
-#if 0
fdctrl->fifo[0] =
fdctrl->status0 | (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);
-#else
- /* XXX: status0 handling is broken for read/write
- commands, so we do this hack. It should be suppressed
- ASAP */
- fdctrl->fifo[0] =
- FD_SR0_SEEK | (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);
-#endif
+
fdctrl->fifo[1] = cur_drv->track;
fdctrl_set_fifo(fdctrl, 2, 0);
fdctrl_reset_irq(fdctrl);
- [Qemu-devel] [PATCH] Floppy: Remove Sense Interrupt Hack,
Justin Chevrier <=
Re: [Qemu-devel] [PATCH] Floppy: Remove Sense Interrupt Hack, Justin Chevrier, 2008/12/23