qemu/tests/libqos
Paolo Bonzini ae79c2db15 ahci: fix FIS I bit and PIO Setup FIS interrupt
The "I" bit in PIO Setup and D2H FISes is exclusively a device concept
and the irqstatus register in the controller does not matter.  The SATA
spec says when it should be one; for D2H FISes in practice it is always
set, while the PIO Setup FIS has several subcases that are documented in
the patch.

Also, the PIO Setup FIS interrupt is actually generated _after_ data
has been received.

Someone should probably spend some time reading the SATA specification and
figuring out the more obscure fields in the PIO Setup FIS, but this is enough
to fix SeaBIOS booting from ATAPI CD-ROMs over an AHCI controller.

Fixes: 956556e131
Reported-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Message-id: 20180622165159.19863-1-pbonzini@redhat.com
[Minor edit to avoid ATAPI comment ambiguity. --js]
Signed-off-by: John Snow <jsnow@redhat.com>
2018-06-25 16:50:48 -04:00
..
ahci.c ahci: fix FIS I bit and PIO Setup FIS interrupt 2018-06-25 16:50:48 -04:00
ahci.h ahci: fix FIS I bit and PIO Setup FIS interrupt 2018-06-25 16:50:48 -04:00
fw_cfg.c libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
fw_cfg.h libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
i2c-imx.c libqos: Use explicit QTestState for i2c operations 2018-02-14 11:43:41 +01:00
i2c-omap.c libqos: Use explicit QTestState for i2c operations 2018-02-14 11:43:41 +01:00
i2c.c tests: Clean up includes 2016-02-16 14:29:27 +00:00
i2c.h misc: add pca9552 LED blinker model 2018-06-08 13:15:32 +01:00
libqos-pc.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
libqos-pc.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
libqos-spapr.c libqos: use generic qtest_shutdown() 2016-10-06 16:15:53 +11:00
libqos-spapr.h libqos: define SPAPR libqos functions 2016-09-23 10:29:40 +10:00
libqos.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
libqos.h libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
malloc-generic.c tests: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
malloc-generic.h libqos: Add malloc generic 2015-03-10 14:02:20 +01:00
malloc-pc.c libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
malloc-pc.h libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
malloc-spapr.c libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
malloc-spapr.h libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
malloc.c tests: use g_new() family of functions 2017-10-16 13:29:49 +02:00
malloc.h libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
pci-pc.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
pci-pc.h libqos: Track QTestState with QPCIBus 2018-02-14 11:43:02 +01:00
pci-spapr.c libqos: Use explicit QTestState for rtas operations 2018-02-14 11:43:41 +01:00
pci-spapr.h libqos: Track QTestState with QPCIBus 2018-02-14 11:43:02 +01:00
pci.c tests: Fix broken ivshmem-server-msi/-irq tests 2017-09-15 09:05:18 +02:00
pci.h libqos: Track QTestState with QPCIBus 2018-02-14 11:43:02 +01:00
rtas.c libqos: Use explicit QTestState for rtas operations 2018-02-14 11:43:41 +01:00
rtas.h libqos: Use explicit QTestState for rtas operations 2018-02-14 11:43:41 +01:00
usb.c tests: Introduce generic device hot-plug/hot-unplug functions 2017-09-15 09:05:18 +02:00
usb.h tests: fix usb-test leaks 2017-03-01 11:51:29 +04:00
virtio-mmio.c libqos: Give qvirtio_config_read*() consistent semantics 2016-10-28 09:38:27 +11:00
virtio-mmio.h libqos: Add virtio MMIO support 2015-03-10 14:02:20 +01:00
virtio-pci.c tests/libqos: Check for valid dev pointer when looking for PCI devices 2018-03-05 09:03:17 +00:00
virtio-pci.h tests: add specialized device_find function 2017-03-01 11:57:04 +04:00
virtio.c libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
virtio.h libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00