summaryrefslogtreecommitdiffstats
path: root/src/drivers/infiniband/hermon.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/infiniband/hermon.h')
-rw-r--r--src/drivers/infiniband/hermon.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/drivers/infiniband/hermon.h b/src/drivers/infiniband/hermon.h
index 26940f6fa..e0b028f26 100644
--- a/src/drivers/infiniband/hermon.h
+++ b/src/drivers/infiniband/hermon.h
@@ -13,6 +13,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/uaccess.h>
#include <ipxe/ib_packet.h>
#include <ipxe/bofm.h>
+#include <ipxe/nvsvpd.h>
+#include <ipxe/nvo.h>
#include "mlx_bitops.h"
#include "MT25408_PRM.h"
@@ -135,6 +137,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define HERMON_MOD_STAT_CFG_SET 0x01
#define HERMON_MOD_STAT_CFG_QUERY 0x03
+#define HERMON_VPD_FIELD( port ) \
+ PCI_VPD_FIELD ( PCI_VPD_TAG_RW, 'V', ( '5' + (port) - 1 ) )
+
/*
* Datatypes that seem to be missing from the autogenerated documentation
*
@@ -825,6 +830,8 @@ struct hermon_port {
struct ib_queue_pair *eth_qp;
/** Port type */
struct hermon_port_type *type;
+ /** Non-volatile option storage */
+ struct nvo_block nvo;
};
/** A Hermon device */
@@ -891,6 +898,9 @@ struct hermon {
/** QPN base */
unsigned long qpn_base;
+ /** Non-volatile storage in PCI VPD */
+ struct nvs_vpd_device nvsvpd;
+
/** Ports */
struct hermon_port port[HERMON_MAX_PORTS];