From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LDQC9-0004fs-6Z for qemu-devel@nongnu.org; Thu, 18 Dec 2008 16:14:09 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LDQC7-0004fQ-EF for qemu-devel@nongnu.org; Thu, 18 Dec 2008 16:14:08 -0500 Received: from [199.232.76.173] (port=39102 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LDQC7-0004fN-Ag for qemu-devel@nongnu.org; Thu, 18 Dec 2008 16:14:07 -0500 Received: from web51103.mail.re2.yahoo.com ([206.190.38.145]:45301) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1LDQC7-0005Nf-5i for qemu-devel@nongnu.org; Thu, 18 Dec 2008 16:14:07 -0500 Date: Thu, 18 Dec 2008 13:14:03 -0800 (PST) From: Justin Chevrier MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Message-ID: <971426.41520.qm@web51103.mail.re2.yahoo.com> Subject: [Qemu-devel] [PATCH] Floppy: Remove Sense Interrupt Hack Reply-To: theburner1@yahoo.com, qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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 --- 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);