summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmeer Mahagneh2018-03-20 16:55:04 +0100
committerMichael Brown2018-03-20 16:55:04 +0100
commitd5d4bf8870ccb68b3b897d2ee88079dc06e9dd48 (patch)
tree4f0e6b971f08531209391214ddf1bfae72e586ce
parent[time] Add support for the ACPI power management timer (diff)
downloadipxe-d5d4bf8870ccb68b3b897d2ee88079dc06e9dd48.tar.gz
ipxe-d5d4bf8870ccb68b3b897d2ee88079dc06e9dd48.tar.xz
ipxe-d5d4bf8870ccb68b3b897d2ee88079dc06e9dd48.zip
[golan] Set log_max_qp to 1
This is required to work around a bug in some firmware versions. Signed-off-by: Ameer Mahagneh <ameerm@mellanox.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rwxr-xr-xsrc/drivers/infiniband/CIB_PRM.h5
-rwxr-xr-xsrc/drivers/infiniband/golan.c2
2 files changed, 3 insertions, 4 deletions
diff --git a/src/drivers/infiniband/CIB_PRM.h b/src/drivers/infiniband/CIB_PRM.h
index 6d07c015..d578f9b0 100755
--- a/src/drivers/infiniband/CIB_PRM.h
+++ b/src/drivers/infiniband/CIB_PRM.h
@@ -33,7 +33,7 @@ typedef uint16_t __be16;
#define GOLAN_PCI_CMD_XPORT 7
#define CMD_OWNER_HW 0x1
-
+#define GOLAN_LOG_MAX_QP 0x1
#define IB_NUM_PKEYS 0x20
struct health_buffer {
@@ -229,8 +229,7 @@ struct golan_hca_cap {
u8 rsvd1[16];
u8 log_max_srq_sz;
u8 log_max_qp_sz;
- u8 rsvd2;
- u8 log_max_qp;
+ __be16 log_max_qp;
u8 log_max_strq_sz;
u8 log_max_srqs;
u8 rsvd4[2];
diff --git a/src/drivers/infiniband/golan.c b/src/drivers/infiniband/golan.c
index 1858da7c..18ebfb1e 100755
--- a/src/drivers/infiniband/golan.c
+++ b/src/drivers/infiniband/golan.c
@@ -363,7 +363,7 @@ static inline int golan_set_hca_cap(struct golan *golan)
DBGC( golan , "%s caps.log_pg_sz = %d\n", __FUNCTION__, golan->caps.log_pg_sz);
DBGC( golan , "%s caps.log_uar_sz = %d\n", __FUNCTION__, be32_to_cpu(golan->caps.uar_page_sz));
golan->caps.uar_page_sz = 0;
-
+ golan->caps.log_max_qp = GOLAN_LOG_MAX_QP;
memcpy(((struct golan_hca_cap *)GET_INBOX(golan, GEN_MBOX)),
&(golan->caps),