qemu-e2k/hw
Mark Cave-Ayland 4e78f3bf35 esp: defer command completion interrupt on incoming data transfers
The MacOS toolbox ROM issues a command to the ESP controller as part of its
"FAST" SCSI routines and then proceeds to read the incoming data soon after
receiving the command completion interrupt.

Unfortunately due to SCSI block transfers being asynchronous the incoming data
may not yet be present causing an underflow error. Resolve this by waiting for
the SCSI subsystem transfer_data callback before raising the command completion
interrupt.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20210304221103.6369-34-mark.cave-ayland@ilande.co.uk>
2021-03-07 10:39:05 +00:00
..
9pfs
acpi acpi/core: always set SCI_EN when SMM isn't supported 2021-02-23 10:58:42 -05:00
adc
alpha
arm hw/arm: Add I2C sensors and EEPROM for GSJ machine 2021-02-16 13:50:38 +00:00
audio
avr
block hw/block: m25p80: Add various ISSI flash information 2021-03-04 09:43:29 -05:00
char
core acpi/core: always set SCI_EN when SMM isn't supported 2021-02-23 10:58:42 -05:00
cpu
cris
display virtio-gpu: Do not distinguish the primary console 2021-03-04 09:35:36 +01:00
dma esp: rename existing ESP QOM type to SYSBUS_ESP 2021-03-07 10:39:05 +00:00
gpio
hppa
hyperv
i2c hw/i2c: Implement NPCM7XX SMBus Module FIFO Mode 2021-02-16 14:12:54 +00:00
i386 i386/acpi: restore device paths for pre-5.1 vms 2021-03-02 05:40:35 -05:00
ide hw/ide/ahci: map cmd_fis as DMA_DIRECTION_TO_DEVICE 2021-02-15 15:10:14 +01:00
input
intc hw/intc/loongson_liointc: Fix per core ISR handling 2021-02-21 18:41:46 +01:00
ipack
ipmi
isa acpi/core: always set SCI_EN when SMM isn't supported 2021-02-23 10:58:42 -05:00
lm32
m68k esp: rename existing ESP QOM type to SYSBUS_ESP 2021-03-07 10:39:05 +00:00
mem nvdimm: put it into the 'storage' category 2021-02-20 12:36:19 +01:00
microblaze
mips esp: rename existing ESP QOM type to SYSBUS_ESP 2021-03-07 10:39:05 +00:00
misc hw/misc: sifive_u_otp: Use error_report() when block operation fails 2021-03-04 09:43:29 -05:00
moxie
net virtio-net: handle zero mac for a vdpa peer 2021-03-02 06:09:54 -05:00
nios2
nubus
nvram
openrisc
pci hw/pci: Have safer pcie_bus_realize() by checking error path 2021-03-02 09:16:18 -05:00
pci-bridge
pci-host acpi/gpex: Fix cca attribute check for pxb device 2021-02-23 10:06:55 -05:00
pcmcia
ppc hw/ppc: e500: Fill in correct <clock-frequency> for the serial nodes 2021-02-10 14:50:11 +11:00
rdma
remote multi-process: perform device reset in the remote process 2021-02-10 09:23:28 +00:00
riscv hw/riscv: virt: Map high mmio for PCIe 2021-03-04 09:43:29 -05:00
rtc goldfish_rtc: re-arm the alarm after migration 2021-03-04 09:43:29 -05:00
rx
s390x virtio-ccw: commands on revision-less devices 2021-03-04 11:23:35 +01:00
scsi esp: defer command completion interrupt on incoming data transfers 2021-03-07 10:39:05 +00:00
sd Pull request trivial patches 20210220 2021-02-21 12:12:18 +00:00
semihosting
sh4
smbios
sparc esp: rename existing ESP QOM type to SYSBUS_ESP 2021-03-07 10:39:05 +00:00
sparc64
ssi hw/ssi: Add SiFive SPI controller support 2021-03-04 09:43:29 -05:00
timer arm: Update infocenter.arm.com URLs 2021-02-11 11:50:14 +00:00
tpm tpm: put some tpm devices into the correct category 2021-02-20 12:36:19 +01:00
tricore
unicore32
usb scsi: drop 'result' argument from command_complete callback 2021-02-25 14:14:32 +01:00
vfio vfio-ccw: Do not read region ret_code after write 2021-03-04 11:24:49 +01:00
virtio vhost: simplify vhost_dev_init() fail_busyloop label 2021-03-02 09:16:18 -05:00
watchdog
xen
xenpv
xtensa
Kconfig multi-process: Add config option for multi-process QEMU 2021-02-09 20:53:56 +00:00
meson.build multi-process: setup a machine object for remote device process 2021-02-10 09:23:28 +00:00