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
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
libqos-spapr.c libqos: use generic qtest_shutdown() 2016-10-06 16:15:53 +11:00
libqos-spapr.h
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
malloc-generic.h
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
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