aboutsummaryrefslogtreecommitdiff
path: root/hw/ide.c
AgeCommit message (Collapse)Author
2009-03-07Sparse fixes: truncation by castblueswir1
Fix Sparse warnings about constant truncation caused by cast git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6737 c046a42c-6fe2-441c-8c8c-71466251a162
2009-03-04DB-DMA IDE asynchronous I/Oaurel32
Signed-off-by: Laurent Vivier <Laurent@vivier.eu> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6681 c046a42c-6fe2-441c-8c8c-71466251a162
2009-03-03DB-DMA cleanupaurel32
Signed-off-by: Laurent Vivier <Laurent@vivier.eu> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6676 c046a42c-6fe2-441c-8c8c-71466251a162
2009-02-11qemu: record devfn on block driver instance (Marcelo Tosatti)aliguori
Record PCIDev on the BlockDriverState structure to locate for release on hot-removal. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6597 c046a42c-6fe2-441c-8c8c-71466251a162
2009-02-05hw: remove error handling from qemu_malloc() callers (Avi Kivity)aliguori
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-02-05Convert IDE to use new dma helpers (Avi Kivity)aliguori
Use the new dma block helpers to perform dma disk I/O. 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@6525 c046a42c-6fe2-441c-8c8c-71466251a162
2009-02-01Add and use #defines for PCI device classesblueswir1
This patch adds and uses #defines for PCI device classes and subclases, using a new pci_config_set_class() function, similar to the recently added pci_config_set_vendor_id() and pci_config_set_device_id(). Change since v1: fixed compilation of hw/sun4u.c Signed-off-by: Stuart Brady <stuart.brady@gmail.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6491 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-30PowerPC: IDE DB-DMA supportaurel32
This patches allows powermac IDE interface to use DB-DMA. This implementation uses only synchronous I/O. Signed-off-by: Laurent Vivier <Laurent@lvivier.info> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6489 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-26Define PCI vendor and device IDs in pci.h (Stuart Brady)aliguori
This patch defines PCI vendor and device IDs in pci.h (matching those from Linux's pci_ids.h), and uses those definitions where appropriate. Change from v1: Introduces pci_config_set_vendor_id() / pci_config_set_device_id() accessors as suggested by Anthony Liguori. Signed-off-by: Stuart Brady <stuart.brady@gmail.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6442 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-22Fix warning in ide.caliguori
The vm state handler needed updating after the recent vm state change notification refactoring. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6403 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-22Convert IDE to directly access guest memory (Avi Kivity)aliguori
Instead of copying to a temporary buffer, map guest memory for IDE DMA transactions. 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@6398 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21Stop VM on ENOSPC error. (Gleb Natapov)aliguori
This version of the patch adds new option "werror" to -drive flag. Possible values are: report - report errors to a guest as IO errors ignore - continue as if nothing happened stop - stop VM on any error and retry last command on resume enospc - stop vm on ENOSPC error and retry last command on resume all other errors are reported to a guest. Default is "report" to maintain current behaviour. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6388 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-08IDE: Return zero when reading error register with slave selected (Justin ↵aliguori
Chevrier) During hardware detection Openserver issues commands to slaves on both primary and secondary ports. We already return a zero for the status register in this situation but after reading the status register the Openserver installer proceeds to check the value of the error register. Currently we return the existing value in the register. This confuses the installer and it tries to access the slave units later on. When the command that gets issued later gets ignored the installer freezes. The patch below returns zero when reading the error register if a slave unit is selected. Openserver can now successfully be installed using the emulated IDE hard drive. Return zero when reading error register with slave selected Signed-off-by: Justin Chevrier <theburner1@yahoo.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6252 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-08Fix IDE debugblueswir1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6251 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-08cmd646: correctly enable IDE channelsaurel32
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6232 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-07add "serial" parameter to -drive flag (Gleb Natapov)aliguori
Windows calculates HW "uniqueness" based on a hard drive serial number among other things. The patch allows to specify drive serial number from a command line. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6214 c046a42c-6fe2-441c-8c8c-71466251a162
2008-12-30VM load/save support for PPC devicesblueswir1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6142 c046a42c-6fe2-441c-8c8c-71466251a162
2008-12-28Register reset handlersblueswir1
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6136 c046a42c-6fe2-441c-8c8c-71466251a162
2008-12-10IDE: Implement SEEK commandaurel32
Signed-off-by: Justin Chevrier <theburner1@yahoo.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5972 c046a42c-6fe2-441c-8c8c-71466251a162
2008-12-07SH4: kill a few warningsaurel32
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5938 c046a42c-6fe2-441c-8c8c-71466251a162
2008-12-07sh4: mmio based CF support on r2d board (Takashi YOSHII).balrog
This patch adds emulation for a CompactFlash on sh4/r2d board. The device is CF, but wired to be worked as True-IDE mode, and connected directly to SH bus. So, this code is to support generally mmio based IDEs which are supported by "pata_platform" driver in linux kernel. Signed-off-by: Takashi YOSHII <takasi-y@ops.dti.ne.jp> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5924 c046a42c-6fe2-441c-8c8c-71466251a162
2008-11-25Abstract out geometry detection code from IDE for reusealiguori
Virtio will want to use the geometry detection code. It doesn't belong in ide.c anyway. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5797 c046a42c-6fe2-441c-8c8c-71466251a162
2008-11-19Fix media detection on emulated CDROM (Gary Grebus)aliguori
This patch tweaks the ATAPI CDROM emulation to fix an annoyance seen when running a variety of Linux guests: the desktop GUI shows a CDROM device as present, but is unable to automount the media and display its contents. The patch adds the PLAY_AUDIO capability bit to the data returned by MODE_SENSE commands. That convinces the guest kernel to determine what kind of media is present. Arguably Linux could be smarter about this, but it's my guess there are few (if any) hardware CDROM drives that don't set the bit, and there are a large number of Linux distros that exhibit this problem. Signed-off-by: Gary Grebus <ggrebus@virtualiron.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5752 c046a42c-6fe2-441c-8c8c-71466251a162
2008-11-11windows cdrom cache flush (Stefano Stabellini)aliguori
Windows only flushes its cache of a CDROM if it gets a SENSE_UNIT_ATTENTION CHECK_CONDITION response to a REQUEST_SENSE command. Make sure it does so after we change the CD. Tab damage fixed by Anthony Liguori Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Steven Smith <steven.smith@citrix.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5698 c046a42c-6fe2-441c-8c8c-71466251a162
2008-11-07Use the right format string to printf sector num with DEBUG_IDE.balrog
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5647 c046a42c-6fe2-441c-8c8c-71466251a162
2008-10-09Fix IDE DIAGNOSE for packet devices (Vincent Sanders)aliguori
The DIAGNOSE command in the qemu IDE implementation has an error when use dfor packet devices. The status register value is dependant on the drive being a packet device or not, this patch corrects the returned status. From the ATA/PI specification (V6 draft): "If the device implements the PACKET command feature set, the device SHALL clear bits 6,5,4,3,2 and 0 in the Status register to zero." A selection of physical devices have been checked and do conform to the specifications behaviour. Signed-off-by: Vincent Sanders <vince@simtec.co.uk> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5452 c046a42c-6fe2-441c-8c8c-71466251a162
2008-10-01Check that asynchronous (DMA) submission succeeds (Ian Jackson).balrog
If it does not, abort the command immediately rather than dropping it on the floor. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5369 c046a42c-6fe2-441c-8c8c-71466251a162
2008-10-01Actually check read/write errors in IDE (Ian Jackson).balrog
This patch makes the ide emulation actually take notice of error returns from bdrv_write and bdrv_aio_{read,write}. (Cherry picked from qemu-xen e0e7a0afe0e324a1f7d64c240f567b15dbe454cf, first posted to qemu-devel Wed, 20 Feb 2008 15:26:41 +0000) Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5368 c046a42c-6fe2-441c-8c8c-71466251a162
2008-08-21Ignore IDE command if issued while IDE is busy (Gleb Natapov)aliguori
Feature, Sector Count, LBA Low/Mid/High and Device registers should be written only when both BSY and DRQ are cleared to zero. Command register shall only be written when BSY and DRQ are set to zero for all commands except DEVICE RESET. Data Port register shall be accessed for host PIO data transfer only when DRQ is set to one. Signed-off-by: Gleb Natapov <gleb@qumranet.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5060 c046a42c-6fe2-441c-8c8c-71466251a162
2008-08-15Cancel IDE outstanding IO on device reset (Gleb Natapov)aliguori
Cancel AIO in IDE layer on device rest in order to be in deterministic state during next boot. Signed-off-by: Gleb Natapov <gleb@qumranet.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5011 c046a42c-6fe2-441c-8c8c-71466251a162
2008-08-11IDE SEEK_STAT flagaliguori
Add SEEK_STAT in all non-error cases except sleep request, since our seek times are virtually 0. Although this flag is deprecated by newer ATA standards, Linux at least checks it for CD drives, and would timeout in some case if we do not set it. Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4994 c046a42c-6fe2-441c-8c8c-71466251a162
2008-07-18ide: enable single word DMA, by Stefano Stabellini.ths
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4890 c046a42c-6fe2-441c-8c8c-71466251a162
2008-07-03Fix ATAPI read drive structure command, by Alex Williamson.ths
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4831 c046a42c-6fe2-441c-8c8c-71466251a162
2008-07-01Remove duplicate device index calculations.pbrook
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4818 c046a42c-6fe2-441c-8c8c-71466251a162
2008-06-02Fix ATAPI GET_CONFIGURATION function (Alexander Graf, Carlo Marcelo Arenas ↵balrog
Belon). The current implementation of GET_CONFIGURATION in the ATAPI stack of qemu replies a different length depending on the buffer, the data should be written into. On the other hand the SCSI spec defines that length information has to be consistent and independent of return buffer lengths. This patch makes the ATAPI emulation behave according to the spec and fixes the Darwin DVD driver. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Kevin Wolf <kwolf@suse.de> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4649 c046a42c-6fe2-441c-8c8c-71466251a162
2008-05-06ide: Enable byte&word access to DMA address registeraurel32
(Jan Kiszka) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4354 c046a42c-6fe2-441c-8c8c-71466251a162
2008-03-29IDE: Improve DMA transfers by increasing the buffer sizeaurel32
(Ian Jackson) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4132 c046a42c-6fe2-441c-8c8c-71466251a162
2008-02-03Simplify guess_disk_lchs - should fix Windows stack corruption spotted by ↵balrog
TeLeMan (patch by Tristan Gingold). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3953 c046a42c-6fe2-441c-8c8c-71466251a162
2008-01-14Set READY_STAT after a WIN_DIAGNOSE per ATA-3 (Till Straumann).balrog
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3912 c046a42c-6fe2-441c-8c8c-71466251a162
2008-01-14Multi-profile DVD-ROM support (Carlo Marcelo Arenas Belon).balrog
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3910 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-24Add "cache" parameter to "-drive" (Laurent Vivier).balrog
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3848 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-17Fix miscellaneous minor things, by Andre Przywara.ths
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3826 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-17Fix bdrv_get_geometry to return uint64_t, by Andre Przywara.ths
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3825 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-16qemu_put signedness fixes, by Andre Przywara.ths
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3824 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-16Fix wrong signedness, by Andre Przywara.ths
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3815 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-11IDE should send irq after WIN_DIAGNOSE (Tristan Gingold).balrog
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3808 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-09Fix Win98SE MyComputer regression, by Ben Taylor.ths
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3783 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-18Add statics and missing #includes for prototypes.pbrook
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3683 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-17Break up vl.h.pbrook
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3674 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-08Revert "Last AIO Patch" as requested by Fabrice, it is incomplete andths
breaks other (non-Windows) systems. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3552 c046a42c-6fe2-441c-8c8c-71466251a162