From 52122ff10406e774c08cd01472e6b6138bb5f8f4 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Sun, 3 Jun 2018 21:40:19 +1000 Subject: Fix problems with write commands (CRC incorrect and endian issues) Signed-off-by: Benjamin Herrenschmidt --- cf-fsi-test.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'cf-fsi-test.c') diff --git a/cf-fsi-test.c b/cf-fsi-test.c index e70aad9..73a339d 100644 --- a/cf-fsi-test.c +++ b/cf-fsi-test.c @@ -475,11 +475,13 @@ int test_rw(uint32_t addr, bool is_write, uint32_t *data) struct fsi_gpio_msg cmd; uint32_t op, resp = 0, crc; uint8_t rtag, rcrc, ack; + uint32_t be_data; int rc; - if (is_write) - build_ar_command(&cmd, 0, addr, 4, &data); - else + if (is_write) { + be_data = htonl(*data); + build_ar_command(&cmd, 0, addr, 4, &be_data); + } else build_ar_command(&cmd, 0, addr, 4, NULL); /* Left align message */ @@ -491,7 +493,8 @@ int test_rw(uint32_t addr, bool is_write, uint32_t *data) op = CMD_COMMAND; op |= cmd.bits << CMD_REG_CLEN_SHIFT; - op |= 32 << CMD_REG_RLEN_SHIFT; + if (!is_write) + op |= 32 << CMD_REG_RLEN_SHIFT; rc = do_command(op); if (rc) { -- cgit v1.2.1