qemu/tests/libqos
John Snow 956556e131 ahci: move PIO Setup FIS before transfer, fix it for ATAPI commands
The PIO Setup FIS is written in the PIO:Entry state, which comes before
the ATA and ATAPI data transfer states.  As a result, the PIO Setup FIS
interrupt is now raised before DMA ends for ATAPI commands, and tests have
to be adjusted.

This is also hinted by the description of the command header in the AHCI
specification, where the "A" bit is described as

    When ‘1’, indicates that a PIO setup FIS shall be sent by the device
    indicating a transfer for the ATAPI command.

and also by the description of the ACMD (ATAPI command region):

    The ATAPI command must be either 12 or 16 bytes in length. The length
    transmitted by the HBA is determined by the PIO setup FIS that is sent
    by the device requesting the ATAPI command.

QEMU, which conflates the "generator" and the "receiver" of the FIS into
one device, always uses ATAPI_PACKET_SIZE, aka 12, for the length.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20180606190955.20845-3-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
2018-06-08 13:36:11 -04:00
..
ahci.c ahci: move PIO Setup FIS before transfer, fix it for ATAPI commands 2018-06-08 13:36:11 -04:00
ahci.h ahci: move PIO Setup FIS before transfer, fix it for ATAPI commands 2018-06-08 13:36:11 -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