summaryrefslogtreecommitdiffstats
path: root/src/drivers/infiniband/hermon.h
diff options
context:
space:
mode:
authorMichael Brown2011-02-10 17:40:56 +0100
committerMichael Brown2011-03-03 03:40:12 +0100
commite809985ca90425af37fbbae0e60f6f76bc029cf9 (patch)
tree14d3198d65ee891a40824fe38aac394ea6d3f266 /src/drivers/infiniband/hermon.h
parent[bofm] Allow garbage collection of BOFM code in non-BOFM builds (diff)
downloadipxe-e809985ca90425af37fbbae0e60f6f76bc029cf9.tar.gz
ipxe-e809985ca90425af37fbbae0e60f6f76bc029cf9.tar.xz
ipxe-e809985ca90425af37fbbae0e60f6f76bc029cf9.zip
[hermon] Add BOFM support
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/infiniband/hermon.h')
-rw-r--r--src/drivers/infiniband/hermon.h25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/drivers/infiniband/hermon.h b/src/drivers/infiniband/hermon.h
index ca343f7aa..1c8623035 100644
--- a/src/drivers/infiniband/hermon.h
+++ b/src/drivers/infiniband/hermon.h
@@ -12,6 +12,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <stdint.h>
#include <ipxe/uaccess.h>
#include <ipxe/ib_packet.h>
+#include <ipxe/bofm.h>
#include "mlx_bitops.h"
#include "MT25408_PRM.h"
@@ -131,6 +132,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define HERMON_RETRY_MAX 0x07
+#define HERMON_MOD_STAT_CFG_SET 0x01
+#define HERMON_MOD_STAT_CFG_QUERY 0x03
+
/*
* Datatypes that seem to be missing from the autogenerated documentation
*
@@ -417,13 +421,14 @@ struct hermonprm_set_port_vlan_st {
/* -------------- */
} __attribute__ (( packed ));
-struct hermonprm_mod_stat_cfg_pf_net_boot_st {
- pseudo_bit_t reserved1[0x0001c];
- pseudo_bit_t pf_net_boot[0x00001];
- pseudo_bit_t reserved2[0x00002];
- pseudo_bit_t pf_net_boot_m[0x00001];
-/* -------------- */
- pseudo_bit_t reserved0[0x00020];
+struct hermonprm_mod_stat_cfg_input_mod_st {
+ pseudo_bit_t offset[0x00008];
+ pseudo_bit_t portnum[0x00008];
+ pseudo_bit_t xnum[0x00004];
+ pseudo_bit_t linkspeed[0x00003];
+ pseudo_bit_t autoneg[0x00001];
+ pseudo_bit_t reserved[0x00004];
+ pseudo_bit_t setup_mode[0x00004];
} __attribute__ (( packed ));
/*
@@ -444,7 +449,8 @@ struct MLX_DECLARE_STRUCT ( hermonprm_init_hca );
struct MLX_DECLARE_STRUCT ( hermonprm_mad_ifc );
struct MLX_DECLARE_STRUCT ( hermonprm_mcg_entry );
struct MLX_DECLARE_STRUCT ( hermonprm_mgm_hash );
-struct MLX_DECLARE_STRUCT ( hermonprm_mod_stat_cfg_pf_net_boot );
+struct MLX_DECLARE_STRUCT ( hermonprm_mod_stat_cfg );
+struct MLX_DECLARE_STRUCT ( hermonprm_mod_stat_cfg_input_mod );
struct MLX_DECLARE_STRUCT ( hermonprm_mpt );
struct MLX_DECLARE_STRUCT ( hermonprm_mtt );
struct MLX_DECLARE_STRUCT ( hermonprm_port_state_change_event );
@@ -866,6 +872,9 @@ struct hermon {
/** Ports */
struct hermon_port port[HERMON_MAX_PORTS];
+
+ /** BOFM device */
+ struct bofm_device bofm;
};
/** Global protection domain */