mirror of
https://github.com/xcat2/xNBA.git
synced 2025-02-15 01:58:22 +00:00
[hermon] Force link speed to SDR
SDR link comes up much faster than other speeds. Signed-off-by: Itay Gazit <itaygazit@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
1b84a80442
commit
0e878b30fe
@ -1969,17 +1969,20 @@ static int hermon_open ( struct ib_device *ibdev ) {
|
||||
|
||||
/* Set port parameters */
|
||||
memset ( &set_port, 0, sizeof ( set_port ) );
|
||||
MLX_FILL_7 ( &set_port.ib, 0,
|
||||
MLX_FILL_8 ( &set_port.ib, 0,
|
||||
mmc, 1,
|
||||
mvc, 1,
|
||||
mp, 1,
|
||||
mg, 1,
|
||||
mtu_cap, IB_MTU_2048,
|
||||
vl_cap, IB_VL_0,
|
||||
rcm, 1 );
|
||||
rcm, 1,
|
||||
lss, 1 );
|
||||
MLX_FILL_2 ( &set_port.ib, 10,
|
||||
max_pkey, 1,
|
||||
max_gid, 1 );
|
||||
MLX_FILL_1 ( &set_port.ib, 28,
|
||||
link_speed_supported, 1 );
|
||||
if ( ( rc = hermon_cmd_set_port ( hermon, 0, ibdev->port,
|
||||
&set_port ) ) != 0 ) {
|
||||
DBGC ( hermon, "Hermon %p port %d could not set port: %s\n",
|
||||
|
@ -228,7 +228,10 @@ struct hermonprm_set_port_ib_st {
|
||||
pseudo_bit_t mp[0x00001];
|
||||
pseudo_bit_t mvc[0x00001];
|
||||
pseudo_bit_t mmc[0x00001];
|
||||
pseudo_bit_t reserved2[0x00009];
|
||||
pseudo_bit_t reserved2[0x00004];
|
||||
pseudo_bit_t lws[0x00001];
|
||||
pseudo_bit_t lss[0x00001];
|
||||
pseudo_bit_t reserved3[0x00003];
|
||||
/* -------------- */
|
||||
pseudo_bit_t capability_mask[0x00020];
|
||||
/* -------------- */
|
||||
@ -246,14 +249,53 @@ struct hermonprm_set_port_ib_st {
|
||||
/* -------------- */
|
||||
pseudo_bit_t egress_sniff_qpn[0x00018];
|
||||
pseudo_bit_t egress_sniff_mode[0x00002];
|
||||
pseudo_bit_t reserved3[0x00006];
|
||||
pseudo_bit_t reserved4[0x00006];
|
||||
/* -------------- */
|
||||
pseudo_bit_t ingress_sniff_qpn[0x00018];
|
||||
pseudo_bit_t ingress_sniff_mode[0x00002];
|
||||
pseudo_bit_t reserved4[0x00006];
|
||||
pseudo_bit_t reserved5[0x00006];
|
||||
/* -------------- */
|
||||
pseudo_bit_t max_gid[0x00010];
|
||||
pseudo_bit_t max_pkey[0x00010];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved6[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved7[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved8[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved9[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved10[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved11[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved12[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved13[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved14[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved15[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved16[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved17[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved18[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved19[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved20[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved21[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t reserved22[0x00020];
|
||||
/* -------------- */
|
||||
pseudo_bit_t link_width_supported[0x00004];
|
||||
pseudo_bit_t link_speed_supported[0x00004];
|
||||
pseudo_bit_t reserved23[0x00018];
|
||||
/* -------------- */
|
||||
} __attribute__ (( packed ));
|
||||
|
||||
struct hermonprm_query_port_cap_st {
|
||||
|
@ -110,6 +110,10 @@ typedef unsigned char pseudo_bit_t;
|
||||
( MLX_ASSEMBLE_1 ( _structure_st, _index, _field, _value ) | \
|
||||
MLX_ASSEMBLE_6 ( _structure_st, _index, __VA_ARGS__ ) )
|
||||
|
||||
#define MLX_ASSEMBLE_8( _structure_st, _index, _field, _value, ... ) \
|
||||
( MLX_ASSEMBLE_1 ( _structure_st, _index, _field, _value ) | \
|
||||
MLX_ASSEMBLE_7 ( _structure_st, _index, __VA_ARGS__ ) )
|
||||
|
||||
/*
|
||||
* Build native-endian (positive) dword bitmasks from named fields
|
||||
*
|
||||
@ -143,6 +147,10 @@ typedef unsigned char pseudo_bit_t;
|
||||
( MLX_MASK_1 ( _structure_st, _index, _field ) | \
|
||||
MLX_MASK_6 ( _structure_st, _index, __VA_ARGS__ ) )
|
||||
|
||||
#define MLX_MASK_8( _structure_st, _index, _field, ... ) \
|
||||
( MLX_MASK_1 ( _structure_st, _index, _field ) | \
|
||||
MLX_MASK_7 ( _structure_st, _index, __VA_ARGS__ ) )
|
||||
|
||||
/*
|
||||
* Populate big-endian dwords from named fields and values
|
||||
*
|
||||
@ -183,6 +191,10 @@ typedef unsigned char pseudo_bit_t;
|
||||
MLX_FILL ( _ptr, _index, MLX_ASSEMBLE_7 ( MLX_PSEUDO_STRUCT ( _ptr ),\
|
||||
_index, __VA_ARGS__ ) )
|
||||
|
||||
#define MLX_FILL_8( _ptr, _index, ... ) \
|
||||
MLX_FILL ( _ptr, _index, MLX_ASSEMBLE_8 ( MLX_PSEUDO_STRUCT ( _ptr ),\
|
||||
_index, __VA_ARGS__ ) )
|
||||
|
||||
/*
|
||||
* Modify big-endian dword using named field and value
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user