aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2021-02-01 01:53:15 +0000
committerMichael Brown <mcb30@ipxe.org>2021-02-01 01:53:15 +0000
commite62c3e3513758a523f0222d3fe7fa44d7fe0d4fb (patch)
tree275435d168e5ed1f0d66352e84e67105f9899ca9
parent2e3d5909ee7ad35889c3bc55f9119ca5d4615a40 (diff)
downloadipxe-e62c3e3513758a523f0222d3fe7fa44d7fe0d4fb.zip
ipxe-e62c3e3513758a523f0222d3fe7fa44d7fe0d4fb.tar.gz
ipxe-e62c3e3513758a523f0222d3fe7fa44d7fe0d4fb.tar.bz2
[hermon] Use reset value suitable for ConnectX-3
The programming documentation states that the reset magic value is "0x00000001 (Big Endian)", and the current code matches this by using the value 0x01000000 for the implicitly little-endian writel(). Inspection of the FlexBoot source code reveals an exciting variety of reset values, some suggestive of confusion around endianness. Experimentation suggests that the value 0x01000001 works reliably across a wide range of hardware. Debugged-by: Christian Iversen <ci@iversenit.dk> Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r--src/drivers/infiniband/hermon.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/drivers/infiniband/hermon.h b/src/drivers/infiniband/hermon.h
index 6d7471d..b4d95d2 100644
--- a/src/drivers/infiniband/hermon.h
+++ b/src/drivers/infiniband/hermon.h
@@ -34,7 +34,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
/* Device reset */
#define HERMON_RESET_OFFSET 0x0f0010
-#define HERMON_RESET_MAGIC 0x01000000UL
+#define HERMON_RESET_MAGIC 0x01000001UL
#define HERMON_RESET_WAIT_TIME_MS 1000
/* Work queue entry and completion queue entry opcodes */