From 9f7141a1cedeca6d55b9ce43322f509a4577c883 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 14 Oct 2009 02:09:49 +0100 Subject: [hermon] Reset device during probe() Some systems will retry their boot sequence in the event of a boot failure. On these systems, the second and subsequent boot attempts will fail to initialise the Hermon HCA. Fix by resetting the HCA during probe(). This incurs a one-second cost, but there seems to be no viable alternative. Originally-fixed-by: Itay Gazit --- src/drivers/infiniband/hermon.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/drivers/infiniband/hermon.h') diff --git a/src/drivers/infiniband/hermon.h b/src/drivers/infiniband/hermon.h index f19fd3598..c53f3da5a 100644 --- a/src/drivers/infiniband/hermon.h +++ b/src/drivers/infiniband/hermon.h @@ -29,6 +29,11 @@ FILE_LICENCE ( GPL2_OR_LATER ); #define HERMON_PCI_CONFIG_BAR_SIZE 0x100000 #define HERMON_PCI_UAR_BAR PCI_BASE_ADDRESS_2 +/* Device reset */ +#define HERMON_RESET_OFFSET 0x0f0010 +#define HERMON_RESET_MAGIC 0x01000000UL +#define HERMON_RESET_WAIT_TIME_MS 1000 + /* Work queue entry and completion queue entry opcodes */ #define HERMON_OPCODE_NOP 0x00 #define HERMON_OPCODE_SEND 0x0a -- cgit