summaryrefslogtreecommitdiff
path: root/hw/fdc.c
AgeCommit message (Collapse)AuthorFilesLines
2009-05-13Replace gcc variadic macro extension with C99 versionBlue Swirl1-5/+5
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-02-05hw: remove error handling from qemu_malloc() callers (Avi Kivity)aliguori1-6/+0
Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6529 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-24Floppy: Properly handle Sense Interrupt Status after FDC Resetblueswir11-12/+18
Original text below. Attached is a patch that changes how the emulated floppy controller replies to Sense Interrupt Status commands immediately after a controller reset. The specs state that after a Reset the 82078 goes into polling mode which needs four Sense Interrupt Status commands to be issued afterwards to clear the status of each drive. Currently we always respond to Sense Interrupt Status with a SEEK END instead of POLLING. This causes a problem with the SCO Openserver installer which is expects a POLLING state after reset. This patch returns a POLLING status for four Sense Interrupt Status requests immediately after a controller reset. This approach mirrors the way Bochs handles this situation. With the attached patch applied Openserver gets further when trying to load storage drivers from the floppy disk (blocked by another issue, patch on its way). I have successfully tested the floppy drive on the following OSs after applying this patch: Windows 98, Windows XP SP2, Linux x86 (SysRescCD 1.1.3 and Ubuntu 8.10). Justin Changelog: Properly handle Sense Interrupt Status after FDC Reset Signed-off-by: Justin Chevrier <theburner1@yahoo.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6416 c046a42c-6fe2-441c-8c8c-71466251a162
2008-12-22Use the ARRAY_SIZE() macro where appropriate.malc1-1/+1
Change from v1: Avoid changing the existing coding style in certain files. Signed-off-by: Stuart Brady <stuart.brady@gmail.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6120 c046a42c-6fe2-441c-8c8c-71466251a162
2008-12-02Remove address maskingblueswir11-10/+20
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5853 c046a42c-6fe2-441c-8c8c-71466251a162
2008-05-01FDC: Fix data transfer len (Hervé Poussineau)blueswir11-2/+2
In floppy controller, transfer data len is not correctly calculated. We should read up to the last sector specified by the caller, and not up to the last sector of the floppy. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4294 c046a42c-6fe2-441c-8c8c-71466251a162
2008-05-01FDC: Fix buffer overflow (Hervé Poussineau)blueswir11-2/+4
In floppy controller, programming PIO writes which are more than one sector long leads to a buffer overflow of the fdtrl->fifo[] array. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4293 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 10/10 (Hervé Poussineau):blueswir11-19/+25
- Replaces access to cur_drv field by macros. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4290 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 9/10 (Hervé Poussineau):blueswir11-10/+75
- Supports up to 4 floppy drives if MAX_FD is set to 4. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4289 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 8/10 (Hervé Poussineau):blueswir11-10/+10
- Replaces bootsel field by the whole tdr register. It may be easier if we want to later add support for tapes. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4288 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 7/10 (Hervé Poussineau):blueswir11-69/+74
- Removes useless fields in fdrive_t structure. - Adds a message when bdrv_read/bdrv_write calls fail. - Rename int_status to status0. - Replace some constants by value names. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4287 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 6/10 (Hervé Poussineau):blueswir11-51/+32
- Stores controller state in MSR register instead of internal state field. This simplifies the fdctrl_read_main_status() function, which may be called in some tight loops. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4286 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 5/10 (Hervé Poussineau):blueswir11-82/+14
- Better handling of DOR register. DOR register drives external motors, but it not limited to existing drives. - Use FD_DOR_nRESET flag instead of internal FD_CTRL_RESET flag. - Support writing to DOR register even in reset mode (as said in specification) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4285 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 4/10 (Hervé Poussineau):blueswir11-12/+21
- Handles correctly FD_MSR_NONDMA/FD_DOR_NONDMA flags, and uses them when possible. Fixes a problem with SPECIFY command. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4284 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 3/10 (Hervé Poussineau):blueswir11-16/+75
- Fixes status A and status B registers. It removes one Sun4m mutation. Also removes the internal FD_CTRL_INTR flag. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4283 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 2/10 (Hervé Poussineau):blueswir11-33/+48
- Extract seeking to next sector handling in a function. Add a sector seek in PIO read and write modes git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4282 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-29FDC fix 1/12 (Hervé Poussineau):blueswir11-150/+149
- Adds a command lookup table, as suggested by Fabrice at http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00143.html - This also moves initialization functions at the bottom of the file to prevent multiple forward declarations. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4281 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-08Simplify FDC code (Hervé Poussineau)blueswir11-517/+361
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4174 c046a42c-6fe2-441c-8c8c-71466251a162
2008-03-21 Wire up TC signal from Aux1 to FDCblueswir11-1/+12
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4096 c046a42c-6fe2-441c-8c8c-71466251a162
2008-02-29Give names to magic numbers (Herv�oussineau)blueswir11-125/+222
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4000 c046a42c-6fe2-441c-8c8c-71466251a162
2008-01-01 Register only valid register access widthsblueswir11-11/+40
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3881 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-24Add "cache" parameter to "-drive" (Laurent Vivier).balrog1-1/+6
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3848 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-17Fix bdrv_get_geometry to return uint64_t, by Andre Przywara.ths1-1/+1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3825 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-16Fix wrong signedness, by Andre Przywara.ths1-1/+1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3815 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-17Break up vl.h.pbrook1-1/+5
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3674 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-05No functional changes: remove dead code and fix indentation & wrapping lines.j_mayer1-199/+196
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3535 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-04Fix memory corruption: bdrv_read/write API has been changed to takej_mayer1-4/+2
nb_sectors instead of len in bytes but the fdc driver has never been fixed. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3532 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-04 Fix Solaris breakageblueswir11-5/+5
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3531 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-04 Constificationblueswir11-2/+2
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3529 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-04 Remove target dependent codeblueswir11-7/+21
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3528 c046a42c-6fe2-441c-8c8c-71466251a162
2007-09-16find -type f | xargs sed -i 's/[\t ]$//g' # on most filesths1-9/+9
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3173 c046a42c-6fe2-441c-8c8c-71466251a162
2007-09-13Emulate spinning floppy disk, by Jan Jezabek.ths1-0/+8
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3168 c046a42c-6fe2-441c-8c8c-71466251a162
2007-07-11Spelling fix, by Stefan Weil.ths1-1/+1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3067 c046a42c-6fe2-441c-8c8c-71466251a162
2007-05-19Use full 36-bit physical address space on SS10blueswir11-8/+12
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2830 c046a42c-6fe2-441c-8c8c-71466251a162
2007-04-14Add device save and reset methods to FDC and M48T59blueswir11-1/+96
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2665 c046a42c-6fe2-441c-8c8c-71466251a162
2007-04-07Unify IRQ handling.pbrook1-5/+5
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2635 c046a42c-6fe2-441c-8c8c-71466251a162
2007-01-05Fix comment, by Volker Ruppert.ths1-2/+3
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2295 c046a42c-6fe2-441c-8c8c-71466251a162
2006-12-10Fix sector size overflow, by Herbert Xu.ths1-1/+1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2237 c046a42c-6fe2-441c-8c8c-71466251a162
2006-08-19use bdrv_media_changed()bellard1-24/+14
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2122 c046a42c-6fe2-441c-8c8c-71466251a162
2005-03-13sparc fixes (Blue Swirl)bellard1-19/+18
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1326 c046a42c-6fe2-441c-8c8c-71466251a162
2005-01-03suppressed warnings in 64 bit casebellard1-7/+23
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1184 c046a42c-6fe2-441c-8c8c-71466251a162
2004-12-19SPARC mergebellard1-6/+29
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1179 c046a42c-6fe2-441c-8c8c-71466251a162
2004-11-07audio merge (malc)bellard1-12/+19
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1125 c046a42c-6fe2-441c-8c8c-71466251a162
2004-10-10fdc fix (Mike Nordell)bellard1-0/+8
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1118 c046a42c-6fe2-441c-8c8c-71466251a162
2004-10-09spelling fixesbellard1-17/+17
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1104 c046a42c-6fe2-441c-8c8c-71466251a162
2004-10-07floppy fixes (initial patch by Mike Nordell)bellard1-23/+32
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1101 c046a42c-6fe2-441c-8c8c-71466251a162
2004-05-12floppy fixbellard1-4/+1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@804 c046a42c-6fe2-441c-8c8c-71466251a162
2004-05-08SPECIFY command fix (Jocelyn Mayer)bellard1-1/+1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@792 c046a42c-6fe2-441c-8c8c-71466251a162
2004-05-08timer for READ_ID (win98 floppy fix) - simpler irq handlingbellard1-36/+44
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@787 c046a42c-6fe2-441c-8c8c-71466251a162
2004-05-04fixed floppy reset (aka win98 floppy probe fix)bellard1-1/+1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@783 c046a42c-6fe2-441c-8c8c-71466251a162