mlxsw: core: Add EMAD string TLV

Add EMAD string TLV, an ASCII string the driver can receive from the
firmware in case of an error.

Signed-off-by: Shalom Toledo <shalomt@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Shalom Toledo 2019-11-12 08:48:26 +02:00 committed by David S. Miller
parent d17eb4030c
commit 664b3dd9ba
2 changed files with 24 additions and 1 deletions

View File

@ -249,6 +249,25 @@ MLXSW_ITEM32(emad, op_tlv, class, 0x04, 0, 8);
*/ */
MLXSW_ITEM64(emad, op_tlv, tid, 0x08, 0, 64); MLXSW_ITEM64(emad, op_tlv, tid, 0x08, 0, 64);
/* emad_string_tlv_type
* Type of the TLV.
* Must be set to 0x2 (string TLV).
*/
MLXSW_ITEM32(emad, string_tlv, type, 0x00, 27, 5);
/* emad_string_tlv_len
* Length of the string TLV in u32.
*/
MLXSW_ITEM32(emad, string_tlv, len, 0x00, 16, 11);
#define MLXSW_EMAD_STRING_TLV_STRING_LEN 128
/* emad_string_tlv_string
* String provided by the device's firmware in case of erroneous register access
*/
MLXSW_ITEM_BUF(emad, string_tlv, string, 0x04,
MLXSW_EMAD_STRING_TLV_STRING_LEN);
/* emad_reg_tlv_type /* emad_reg_tlv_type
* Type of the TLV. * Type of the TLV.
* Must be set to 0x3 (register TLV). * Must be set to 0x3 (register TLV).

View File

@ -19,7 +19,8 @@
enum { enum {
MLXSW_EMAD_TLV_TYPE_END, MLXSW_EMAD_TLV_TYPE_END,
MLXSW_EMAD_TLV_TYPE_OP, MLXSW_EMAD_TLV_TYPE_OP,
MLXSW_EMAD_TLV_TYPE_REG = 0x3, MLXSW_EMAD_TLV_TYPE_STRING,
MLXSW_EMAD_TLV_TYPE_REG,
}; };
/* OP TLV */ /* OP TLV */
@ -86,6 +87,9 @@ enum {
MLXSW_EMAD_OP_TLV_METHOD_EVENT = 5, MLXSW_EMAD_OP_TLV_METHOD_EVENT = 5,
}; };
/* STRING TLV */
#define MLXSW_EMAD_STRING_TLV_LEN 33 /* Length in u32 */
/* END TLV */ /* END TLV */
#define MLXSW_EMAD_END_TLV_LEN 1 /* Length in u32 */ #define MLXSW_EMAD_END_TLV_LEN 1 /* Length in u32 */