qemu/hw/ide
Alexander Graf 80fc95d8bd PPC: dbdma: Support unaligned DMA access
The DBDMA engine really just reads bytes from a producing device (IDE
in our case) and shoves these bytes into memory. It doesn't care whether
any alignment takes place or not.

Our code today however assumes that block accesses always happen on
sector (512 byte) boundaries. This is a fair assumption for most cases.

However, Mac OS X really likes to do unaligned, incomplete accesses
that it finishes with the next DMA request.

So we need to read / write the unaligned bits independent of the actual
asynchronous request, because that one can only handle 512-byte-aligned
data. We also need to cache these unaligned sectors until the next DMA
request, at which point the data might be successfully flushed from the
pipe.

Signed-off-by: Alexander Graf <agraf@suse.de>
2013-07-11 18:51:25 +02:00
..
Makefile.objs hw: make all of hw/ide/ configurable via default-configs/ 2013-04-08 18:13:12 +02:00
ahci.c hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
ahci.h dma: eliminate DMAContext 2013-06-20 16:39:52 +02:00
atapi.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
cmd646.c hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
core.c ide: Clean up ide_exec_cmd() 2013-06-24 10:25:16 +02:00
ich.c dma: eliminate DMAContext 2013-06-20 16:39:52 +02:00
internal.h ahci: Don't allow creating slave drives 2013-05-08 15:28:49 +02:00
isa.c isa: Use realizefn for ISADevice 2013-06-07 12:14:45 +02:00
macio.c PPC: dbdma: Support unaligned DMA access 2013-07-11 18:51:25 +02:00
microdrive.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
mmio.c hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
pci.c ide: Reset BMIDEA bit when the bus master is stopped 2013-05-08 15:28:49 +02:00
pci.h ide: convert to memory API 2011-08-08 10:15:54 -05:00
piix.c hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
qdev.c ahci: Don't allow creating slave drives 2013-05-08 15:28:49 +02:00
via.c hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00