mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 17:53:56 -06:00
qtest/ahci: simple ncq data test
Test the NCQ pathways for a simple IO RW test. Also, test that libqos doesn't explode when running NCQ commands :) Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1435016308-6150-16-git-send-email-jsnow@redhat.com
This commit is contained in:
parent
e38cc93aca
commit
26ad004585
3 changed files with 53 additions and 33 deletions
|
@ -50,27 +50,31 @@ typedef struct AHCICommandProp {
|
|||
} AHCICommandProp;
|
||||
|
||||
AHCICommandProp ahci_command_properties[] = {
|
||||
{ .cmd = CMD_READ_PIO, .data = true, .pio = true,
|
||||
.lba28 = true, .read = true },
|
||||
{ .cmd = CMD_WRITE_PIO, .data = true, .pio = true,
|
||||
.lba28 = true, .write = true },
|
||||
{ .cmd = CMD_READ_PIO_EXT, .data = true, .pio = true,
|
||||
.lba48 = true, .read = true },
|
||||
{ .cmd = CMD_WRITE_PIO_EXT, .data = true, .pio = true,
|
||||
.lba48 = true, .write = true },
|
||||
{ .cmd = CMD_READ_DMA, .data = true, .dma = true,
|
||||
.lba28 = true, .read = true },
|
||||
{ .cmd = CMD_WRITE_DMA, .data = true, .dma = true,
|
||||
.lba28 = true, .write = true },
|
||||
{ .cmd = CMD_READ_DMA_EXT, .data = true, .dma = true,
|
||||
.lba48 = true, .read = true },
|
||||
{ .cmd = CMD_WRITE_DMA_EXT, .data = true, .dma = true,
|
||||
.lba48 = true, .write = true },
|
||||
{ .cmd = CMD_IDENTIFY, .data = true, .pio = true,
|
||||
.size = 512, .read = true },
|
||||
{ .cmd = CMD_READ_MAX, .lba28 = true },
|
||||
{ .cmd = CMD_READ_MAX_EXT, .lba48 = true },
|
||||
{ .cmd = CMD_FLUSH_CACHE, .data = false }
|
||||
{ .cmd = CMD_READ_PIO, .data = true, .pio = true,
|
||||
.lba28 = true, .read = true },
|
||||
{ .cmd = CMD_WRITE_PIO, .data = true, .pio = true,
|
||||
.lba28 = true, .write = true },
|
||||
{ .cmd = CMD_READ_PIO_EXT, .data = true, .pio = true,
|
||||
.lba48 = true, .read = true },
|
||||
{ .cmd = CMD_WRITE_PIO_EXT, .data = true, .pio = true,
|
||||
.lba48 = true, .write = true },
|
||||
{ .cmd = CMD_READ_DMA, .data = true, .dma = true,
|
||||
.lba28 = true, .read = true },
|
||||
{ .cmd = CMD_WRITE_DMA, .data = true, .dma = true,
|
||||
.lba28 = true, .write = true },
|
||||
{ .cmd = CMD_READ_DMA_EXT, .data = true, .dma = true,
|
||||
.lba48 = true, .read = true },
|
||||
{ .cmd = CMD_WRITE_DMA_EXT, .data = true, .dma = true,
|
||||
.lba48 = true, .write = true },
|
||||
{ .cmd = CMD_IDENTIFY, .data = true, .pio = true,
|
||||
.size = 512, .read = true },
|
||||
{ .cmd = READ_FPDMA_QUEUED, .data = true, .dma = true,
|
||||
.lba48 = true, .read = true, .ncq = true },
|
||||
{ .cmd = WRITE_FPDMA_QUEUED, .data = true, .dma = true,
|
||||
.lba48 = true, .write = true, .ncq = true },
|
||||
{ .cmd = CMD_READ_MAX, .lba28 = true },
|
||||
{ .cmd = CMD_READ_MAX_EXT, .lba48 = true },
|
||||
{ .cmd = CMD_FLUSH_CACHE, .data = false }
|
||||
};
|
||||
|
||||
struct AHCICommand {
|
||||
|
|
|
@ -263,20 +263,23 @@ enum {
|
|||
/* ATA Commands */
|
||||
enum {
|
||||
/* DMA */
|
||||
CMD_READ_DMA = 0xC8,
|
||||
CMD_READ_DMA_EXT = 0x25,
|
||||
CMD_WRITE_DMA = 0xCA,
|
||||
CMD_WRITE_DMA_EXT = 0x35,
|
||||
CMD_READ_DMA = 0xC8,
|
||||
CMD_READ_DMA_EXT = 0x25,
|
||||
CMD_WRITE_DMA = 0xCA,
|
||||
CMD_WRITE_DMA_EXT = 0x35,
|
||||
/* PIO */
|
||||
CMD_READ_PIO = 0x20,
|
||||
CMD_READ_PIO_EXT = 0x24,
|
||||
CMD_WRITE_PIO = 0x30,
|
||||
CMD_WRITE_PIO_EXT = 0x34,
|
||||
CMD_READ_PIO = 0x20,
|
||||
CMD_READ_PIO_EXT = 0x24,
|
||||
CMD_WRITE_PIO = 0x30,
|
||||
CMD_WRITE_PIO_EXT = 0x34,
|
||||
/* Misc */
|
||||
CMD_READ_MAX = 0xF8,
|
||||
CMD_READ_MAX_EXT = 0x27,
|
||||
CMD_FLUSH_CACHE = 0xE7,
|
||||
CMD_IDENTIFY = 0xEC
|
||||
CMD_READ_MAX = 0xF8,
|
||||
CMD_READ_MAX_EXT = 0x27,
|
||||
CMD_FLUSH_CACHE = 0xE7,
|
||||
CMD_IDENTIFY = 0xEC,
|
||||
/* NCQ */
|
||||
READ_FPDMA_QUEUED = 0x60,
|
||||
WRITE_FPDMA_QUEUED = 0x61,
|
||||
};
|
||||
|
||||
/* AHCI Command Header Flags & Masks*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue