qemu/hw
Alexander Graf a94b36ddd6 roms: Flush icache when writing roms to guest memory
We use the rom infrastructure to write firmware and/or initial kernel
blobs into guest address space. So we're basically emulating the cache
off phase on very early system bootup.

That phase is usually responsible for clearing the instruction cache for
anything it writes into cachable memory, to ensure that after reboot we
don't happen to execute stale bits from the instruction cache.

So we need to invalidate the icache every time we write a rom into guest
address space. We do not need to do this for every DMA since the guest
expects it has to flush the icache manually in that case.

This fixes random reboot issues on e5500 (booke ppc) for me.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2013-12-13 13:38:50 +01:00
..
9pfs hw/9pfs: Fix errno value for xattr functions 2013-10-05 13:05:28 +04:00
acpi bswap.h: Remove le16_to_cpupu() 2013-11-05 19:57:46 -08:00
alpha hw/alpha: Fix compiler warning (integer constant is too large) 2013-10-02 22:55:28 +04:00
arm hw/arm/virt: Support -cpu host 2013-12-10 13:28:49 +00:00
audio intel-hda: fix position buffer 2013-12-09 09:19:26 +01:00
block bswap.h: Remove cpu_to_be32wu() 2013-11-05 19:57:47 -08:00
bt Preparation for usb-bt-dongle conditional build 2013-09-10 11:14:41 +02:00
char misc: Replace 'struct QEMUTimer' by 'QEMUTimer' 2013-12-02 21:03:39 +04:00
core roms: Flush icache when writing roms to guest memory 2013-12-13 13:38:50 +01:00
cpu cpu/a9mpcore: Add Global Timer 2013-12-10 13:28:25 +00:00
cris axis_dev88: Don't enforce use of kernel for qtest 2013-11-05 17:47:29 +01:00
display qxl: Add missing trace.h (fix broken build) 2013-12-07 22:26:07 +04:00
dma qom: Pass available size to object_initialize() 2013-08-30 21:15:44 +02:00
gpio gpio/zaurus: QOM cast cleanup 2013-07-29 21:06:57 +02:00
i2c exynos4210_i2c: QOM cast cleanup 2013-07-29 21:07:02 +02:00
i386 Update seabios to master snapshot (pre-1.7.4). 2013-12-07 07:35:16 -08:00
ide bswap.h: Remove cpu_to_be16wu() 2013-11-05 19:57:47 -08:00
input aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
intc realview_gic: Prepare for QOM embedding 2013-11-05 17:47:30 +01:00
isa ich9: APIs for pc guest info 2013-10-14 17:48:52 +03:00
lm32 milkymist: Suppress -kernel/-bios/-drive error for qtest 2013-11-05 17:47:29 +01:00
m68k an5206: Don't enforce use of kernel for qtest 2013-11-05 17:47:29 +01:00
microblaze hw/microblaze: Add support for loading initrd images 2013-10-24 22:56:48 +02:00
mips mips jazz: do not raise data bus exception when accessing invalid addresses 2013-11-21 17:39:22 +01:00
misc vfio-pci: Release all MSI-X vectors when disabled 2013-12-06 11:16:40 -07:00
moxie memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
net Merge remote-tracking branch 'stefanha/net-next' into staging 2013-12-10 16:14:20 -08:00
nvram eeprom93xx: fix coding style 2013-12-06 22:56:51 +04:00
openrisc openrisc-timer: Reduce overhead, Separate clock update functions 2013-11-20 21:46:45 +08:00
pci pci: unregister vmstate_pcibus on unplug 2013-11-21 16:25:08 +02:00
pci-bridge hw/pci-bridge: set PCI_INTERRUPT_PIN register before shpc init 2013-10-14 17:11:45 +03:00
pci-host Fix pc migration from qemu <= 1.5 2013-11-10 12:08:37 +02:00
pcmcia pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState 2013-11-05 18:06:52 +01:00
ppc hw/ppc/mac.h: remove unused BIOS_FILENAME definition 2013-12-02 21:18:18 +04:00
s390x s390x: fix flat file load on 32 bit systems 2013-11-21 07:55:10 -08:00
scsi Merge remote-tracking branch 'stefanha/block' into staging 2013-12-07 07:35:31 -08:00
sd sd: Avoid access to NULL BlockDriverState 2013-10-17 10:15:18 +02:00
sh4 shix: Don't require firmware presence for qtest 2013-11-05 17:47:29 +01:00
sparc sun4m: Add FCode ROM for TCX framebuffer 2013-11-21 17:38:52 +01:00
sparc64 pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
ssi xilinx_spi: QOM cast cleanup 2013-07-29 21:07:01 +02:00
timer hw/timer: Introduce ARM A9 Global Timer. 2013-12-10 13:24:51 +00:00
tpm aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
unicore32 puv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel 2013-11-05 17:47:28 +01:00
usb Improvements for usb3 bulk stream (usb core, xhci). 2013-12-06 12:54:36 -08:00
virtio virtio-rng: add check of period 2013-11-21 07:55:26 -08:00
watchdog aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
xen xen-pvdevice: make device-id property compulsory 2013-12-01 18:25:48 +00:00
xtensa pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
Makefile.objs pcmcia: QOM'ify PCMCIACardState and MicroDriveState 2013-11-05 18:06:52 +01:00