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
@ -1401,6 +1401,17 @@ static void test_reset(void)
|
|||||||
ahci_shutdown(ahci);
|
ahci_shutdown(ahci);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_ncq_simple(void)
|
||||||
|
{
|
||||||
|
AHCIQState *ahci;
|
||||||
|
|
||||||
|
ahci = ahci_boot_and_enable(NULL);
|
||||||
|
ahci_test_io_rw_simple(ahci, 4096, 0,
|
||||||
|
READ_FPDMA_QUEUED,
|
||||||
|
WRITE_FPDMA_QUEUED);
|
||||||
|
ahci_shutdown(ahci);
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* AHCI I/O Test Matrix Definitions */
|
/* AHCI I/O Test Matrix Definitions */
|
||||||
|
|
||||||
@ -1654,6 +1665,8 @@ int main(int argc, char **argv)
|
|||||||
qtest_add_func("/ahci/max", test_max);
|
qtest_add_func("/ahci/max", test_max);
|
||||||
qtest_add_func("/ahci/reset", test_reset);
|
qtest_add_func("/ahci/reset", test_reset);
|
||||||
|
|
||||||
|
qtest_add_func("/ahci/io/ncq/simple", test_ncq_simple);
|
||||||
|
|
||||||
ret = g_test_run();
|
ret = g_test_run();
|
||||||
|
|
||||||
/* Cleanup */
|
/* Cleanup */
|
||||||
|
@ -68,6 +68,10 @@ AHCICommandProp ahci_command_properties[] = {
|
|||||||
.lba48 = true, .write = true },
|
.lba48 = true, .write = true },
|
||||||
{ .cmd = CMD_IDENTIFY, .data = true, .pio = true,
|
{ .cmd = CMD_IDENTIFY, .data = true, .pio = true,
|
||||||
.size = 512, .read = 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, .lba28 = true },
|
||||||
{ .cmd = CMD_READ_MAX_EXT, .lba48 = true },
|
{ .cmd = CMD_READ_MAX_EXT, .lba48 = true },
|
||||||
{ .cmd = CMD_FLUSH_CACHE, .data = false }
|
{ .cmd = CMD_FLUSH_CACHE, .data = false }
|
||||||
|
@ -276,7 +276,10 @@ enum {
|
|||||||
CMD_READ_MAX = 0xF8,
|
CMD_READ_MAX = 0xF8,
|
||||||
CMD_READ_MAX_EXT = 0x27,
|
CMD_READ_MAX_EXT = 0x27,
|
||||||
CMD_FLUSH_CACHE = 0xE7,
|
CMD_FLUSH_CACHE = 0xE7,
|
||||||
CMD_IDENTIFY = 0xEC
|
CMD_IDENTIFY = 0xEC,
|
||||||
|
/* NCQ */
|
||||||
|
READ_FPDMA_QUEUED = 0x60,
|
||||||
|
WRITE_FPDMA_QUEUED = 0x61,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* AHCI Command Header Flags & Masks*/
|
/* AHCI Command Header Flags & Masks*/
|
||||||
|
Loading…
Reference in New Issue
Block a user