qemu-patch-raspberry4/hw
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
..
9pfs hw/9pfs: Fix memory leak in error path 2013-07-09 13:38:56 -05:00
acpi hw/a*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
alpha cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
arm QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
audio hw/a*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
block hw/block: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
bt sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
char hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
core hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
cpu hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
cris memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
display add a header file for atomic operations 2013-07-04 17:42:49 +02:00
dma hw/d*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
gpio hw/gpio: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
i2c Extend support of SMBUS(module pm_smbus.c) HST_STS register. 2013-07-09 13:38:55 -05:00
i386 cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
ide PPC: dbdma: Support unaligned DMA access 2013-07-11 18:51:25 +02:00
input hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
intc pseries: move interrupt controllers to hw/intc/ 2013-07-11 18:51:23 +02:00
isa cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
lm32 memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
m68k memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
microblaze microblaze: Fix latent bug with default DTB lookup 2013-07-09 13:38:58 -05:00
mips cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
misc PPC: dbdma: Move processing to io 2013-07-11 18:51:25 +02:00
moxie memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
net pci,misc enhancements 2013-07-08 08:00:23 -05:00
nvram hw/n*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
openrisc memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
pci pci,misc enhancements 2013-07-08 08:00:23 -05:00
pci-bridge hw/p*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
pci-host pci,misc enhancements 2013-07-08 08:00:23 -05:00
ppc PPC: dbdma: Wait for DMA until we have data 2013-07-11 18:51:25 +02:00
s390x memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
scsi hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
sd hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
sh4 pci,misc enhancements 2013-07-08 08:00:23 -05:00
sparc cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
sparc64 pci,misc enhancements 2013-07-08 08:00:23 -05:00
ssi hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
timer timer/arm_mptimer: Build arm_mptimer only once 2013-07-09 21:33:02 +02:00
tpm hw/t*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
unicore32 memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
usb hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
virtio add a header file for atomic operations 2013-07-04 17:42:49 +02:00
watchdog hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
xen hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
xtensa hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
Makefile.objs virtio: simplify Makefile conditionals 2013-04-19 16:18:11 +02:00