[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 13/19] libqos/ahci: add ahci command verify
From: |
John Snow |
Subject: |
[Qemu-devel] [PATCH v2 13/19] libqos/ahci: add ahci command verify |
Date: |
Tue, 3 Feb 2015 16:46:33 -0500 |
Helps to verify that a command completed successfully.
Signed-off-by: John Snow <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
---
tests/ahci-test.c | 16 ++--------------
tests/libqos/ahci.c | 12 ++++++++++++
tests/libqos/ahci.h | 1 +
3 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/tests/ahci-test.c b/tests/ahci-test.c
index 0834020..6e7b765 100644
--- a/tests/ahci-test.c
+++ b/tests/ahci-test.c
@@ -662,7 +662,6 @@ static void ahci_test_identify(AHCIQState *ahci)
unsigned i;
int rc;
AHCICommand *cmd;
- uint8_t cx;
g_assert(ahci != NULL);
@@ -702,20 +701,9 @@ static void ahci_test_identify(AHCIQState *ahci)
* so we should find that there are no pending interrupts yet. */
g_assert_cmphex(ahci_px_rreg(ahci, i, AHCI_PX_IS), ==, 0);
- /* Issue Command #cx via PxCI */
+ /* Issue command and sanity check response. */
ahci_command_issue(ahci, cmd);
- cx = ahci_command_slot(cmd);
-
- /* Check registers for post-command consistency */
- ahci_port_check_error(ahci, i);
- /* BUG: we expect AHCI_PX_IS_DPS to be set. */
- ahci_port_check_interrupts(ahci, i, AHCI_PX_IS_DHRS | AHCI_PX_IS_PSS);
- ahci_port_check_nonbusy(ahci, i, cx);
- /* Investigate the CMD, assert that we read 512 bytes */
- ahci_port_check_cmd_sanity(ahci, i, cx, 512);
- /* Investigate FIS responses */
- ahci_port_check_d2h_sanity(ahci, i, cx);
- ahci_port_check_pio_sanity(ahci, i, cx, 512);
+ ahci_command_verify(ahci, cmd);
/* Last, but not least: Investigate the IDENTIFY response data. */
memread(data_ptr, &buff, 512);
diff --git a/tests/libqos/ahci.c b/tests/libqos/ahci.c
index 4750680..d1e511a 100644
--- a/tests/libqos/ahci.c
+++ b/tests/libqos/ahci.c
@@ -733,6 +733,18 @@ void ahci_command_issue(AHCIQState *ahci, AHCICommand *cmd)
ahci_command_wait(ahci, cmd);
}
+void ahci_command_verify(AHCIQState *ahci, AHCICommand *cmd)
+{
+ ahci_port_check_error(ahci, cmd->px);
+ ahci_port_check_interrupts(ahci, cmd->px, cmd->interrupts);
+ ahci_port_check_nonbusy(ahci, cmd->px, cmd->cx);
+ ahci_port_check_cmd_sanity(ahci, cmd->px, cmd->cx, cmd->xbytes);
+ ahci_port_check_d2h_sanity(ahci, cmd->px, cmd->cx);
+ if (cmd->props->pio) {
+ ahci_port_check_pio_sanity(ahci, cmd->px, cmd->cx, cmd->xbytes);
+ }
+}
+
uint8_t ahci_command_slot(AHCICommand *cmd)
{
return cmd->cx;
diff --git a/tests/libqos/ahci.h b/tests/libqos/ahci.h
index aba27df..500319a 100644
--- a/tests/libqos/ahci.h
+++ b/tests/libqos/ahci.h
@@ -528,6 +528,7 @@ void ahci_command_commit(AHCIQState *ahci, AHCICommand
*cmd, uint8_t px);
void ahci_command_issue(AHCIQState *ahci, AHCICommand *cmd);
void ahci_command_issue_async(AHCIQState *ahci, AHCICommand *cmd);
void ahci_command_wait(AHCIQState *ahci, AHCICommand *cmd);
+void ahci_command_verify(AHCIQState *ahci, AHCICommand *cmd);
void ahci_command_free(AHCICommand *cmd);
/* Command adjustments */
void ahci_command_set_buffer(AHCICommand *cmd, uint64_t buffer);
--
1.9.3
- [Qemu-devel] [PATCH v2 11/19] libqos/ahci: Add ide cmd properties, (continued)
- [Qemu-devel] [PATCH v2 11/19] libqos/ahci: Add ide cmd properties, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 07/19] libqos/ahci: Add port_check_nonbusy helper, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 14/19] libqos/ahci: add ahci command size setters, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 09/19] qtest/ahci: Demagic ahci tests., John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 08/19] libqos/ahci: Add cmd response sanity check helpers, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 15/19] libqos/ahci: Add ahci_guest_io, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 06/19] libqos/ahci: Add ahci_port_check_interrupts helper, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 13/19] libqos/ahci: add ahci command verify,
John Snow <=
- [Qemu-devel] [PATCH v2 12/19] libqos/ahci: add ahci command functions, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 16/19] libqos/ahci: add ahci_io, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 17/19] libqos/ahci: Add ahci_clean_mem, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 18/19] qtest/ahci: Assert sector size in identify test, John Snow, 2015/02/03
- [Qemu-devel] [PATCH v2 19/19] qtest/ahci: Adding simple dma read-write test, John Snow, 2015/02/03