Skip to content

Commit a918b03

Browse files
Merge branch 'master_devel'
Conflicts: kernel/mstflint_kernel.spec mlxconfig/mlxcfg_tlv.cpp mstflint.spec.in small_utils/mstfwreset.py
2 parents 59e7f1c + 40d9d3a commit a918b03

File tree

211 files changed

+26435
-15497
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

211 files changed

+26435
-15497
lines changed

cmdif/cmdif.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
# SOFTWARE.
3131
#--
3232

33+
from __future__ import print_function
3334
import os
3435
import sys
3536
import platform
@@ -59,7 +60,7 @@ class CmdIfException(Exception):
5960
CMDIF = CDLL("ccmdif.so")
6061
except:
6162
CMDIF = CDLL(os.path.join(os.path.dirname(os.path.realpath(__file__)), "ccmdif.so"))
62-
except Exception, exp:
63+
except Exception as exp:
6364
raise CmdIfException("Failed to load shared library ccmdif.so/libcmdif-1.dll: %s" % exp)
6465

6566
if CMDIF:
@@ -71,6 +72,7 @@ def __init__(self, dev):
7172
self.getLastErrFunc.restype = c_char_p
7273
self.errStrFunc = CMDIF.gcif_err_str
7374
self.errStrFunc.restype = c_char_p
75+
self.setItraceFunc = CMDIF.gcif_set_itrace
7476
self.getFwInfoFunc = CMDIF.gcif_get_fw_info
7577
self.multiHostSyncFunc = CMDIF.gcif_mh_sync
7678
self.multiHostSyncStatusFunc = CMDIF.gcif_mh_sync_status
@@ -88,6 +90,16 @@ def __del__(self):
8890
##########################
8991
def sendCmd(self, opcode, data, skipWrite):
9092
self.mstDev.icmdSendCmd(opcode, data, skipWrite)
93+
94+
##########################
95+
def setItrace(self, mask, level):
96+
class ITRACE_ST(Structure):
97+
_fields_ = [("unit_mask", c_uint32), ("log_level", c_uint8)]
98+
99+
setItraceStruct = pointer(ITRACE_ST(mask, level))
100+
rc = self.setItraceFunc(self.mstDev.mf, setItraceStruct)
101+
if rc:
102+
raise CmdIfException("Failed to set itrace mask: %s (%d)" % (self.errStrFunc(rc), rc))
91103

92104
##########################
93105
def getFwInfo(self):
@@ -139,7 +151,12 @@ def multiHostSyncStatus(self):
139151

140152
##########################
141153
class QUERY_CAP_ST(Structure):
142-
_fields_ = [("fw_ctrl_update_icmd", c_uint8),
154+
_fields_ = [("virtual_link_down", c_uint8),
155+
("icmd_exmb", c_uint8),
156+
("capi", c_uint8),
157+
("qcam_reg", c_uint8),
158+
("mcam_reg", c_uint8),
159+
("pcam_reg", c_uint8),
143160
("mh_sync", c_uint8),
144161
("allow_icmd_access_reg_on_all_registers", c_uint8),
145162
("fw_info_psid", c_uint8),

cmdif/icmd_cif_common.c

Lines changed: 87 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -36,101 +36,141 @@
3636
/*
3737
* get_last_err
3838
*/
39-
char* gcif_get_last_err(){
39+
char* gcif_get_last_err()
40+
{
4041
return "Deprecated: General Error";
4142
}
4243

4344
/*
4445
* gcif_err_str
4546
*/
46-
char* gcif_err_str(int rc) {
47-
48-
switch(rc) {
49-
case GCIF_STATUS_SUCCESS :
50-
return "OK";
51-
case GCIF_STATUS_INVALID_OPCODE :
52-
return "Invalid opcode";
53-
case GCIF_STATUS_INVALID_CMD :
54-
return "Invalid cmd";
55-
case GCIF_STATUS_OPERATIONAL_ERROR :
56-
return "Operational error";
57-
case GCIF_STATUS_CR_FAIL :
58-
return "cr-space access failure";
59-
case GCIF_STATUS_BAD_OPCODE :
60-
return "unsupported opcode was used";
61-
case GCIF_STATUS_SEMAPHORE_TO :
62-
return "timed out while trying to take semaphore";
63-
case GCIF_STATUS_EXECUTE_TO :
64-
return "timed out while waiting for command to execute";
65-
case GCIF_STATUS_IFC_BUSY :
66-
return "command-interface is busy executing another command";
67-
case GCIF_STATUS_BAD_PARAMETERS :
68-
return "bad parameter";
69-
case GCIF_STATUS_ICMD_NOT_READY:
70-
return "command interface not ready";
71-
case GCIF_STATUS_BAD_PARAM:
72-
return "command interface bad param";
73-
case GCIF_STATUS_UNSUPPORTED_ICMD_VERSION:
74-
return "Unsupported icmd version";
75-
case GCIF_STATUS_UNKNOWN_STATUS:
76-
return "Unknown ICMD Status.";
77-
case GCIF_STATUS_GENERAL_ERROR :
78-
return "General error";
79-
case GCIF_SIZE_EXCEEDS_LIMIT:
80-
return "Size exceeds limit";
81-
case GCIF_ICMD_NOT_SUPPORTED:
82-
return "icmd not supported";
83-
case GCIF_ICMD_INIT_FAILED:
84-
return "icmd initialization failed";
85-
case GCIF_ICMD_BUSY:
86-
return "icmd busy";
87-
case GCIF_STATUS_ICM_NOT_AVAIL:
88-
return "ICM not available";
89-
default:
90-
return "Unknown error";
47+
char* gcif_err_str(int rc)
48+
{
49+
50+
switch (rc) {
51+
case GCIF_STATUS_SUCCESS:
52+
return "OK";
53+
54+
case GCIF_STATUS_INVALID_OPCODE:
55+
return "Invalid opcode";
56+
57+
case GCIF_STATUS_INVALID_CMD:
58+
return "Invalid cmd";
59+
60+
case GCIF_STATUS_OPERATIONAL_ERROR:
61+
return "Operational error";
62+
63+
case GCIF_STATUS_CR_FAIL:
64+
return "cr-space access failure";
65+
66+
case GCIF_STATUS_BAD_OPCODE:
67+
return "unsupported opcode was used";
68+
69+
case GCIF_STATUS_SEMAPHORE_TO:
70+
return "timed out while trying to take semaphore";
71+
72+
case GCIF_STATUS_EXECUTE_TO:
73+
return "timed out while waiting for command to execute";
74+
75+
case GCIF_STATUS_IFC_BUSY:
76+
return "command-interface is busy executing another command";
77+
78+
case GCIF_STATUS_BAD_PARAMETERS:
79+
return "bad parameter";
80+
81+
case GCIF_STATUS_ICMD_NOT_READY:
82+
return "command interface not ready";
83+
84+
case GCIF_STATUS_BAD_PARAM:
85+
return "command interface bad param";
86+
87+
case GCIF_STATUS_UNSUPPORTED_ICMD_VERSION:
88+
return "Unsupported icmd version";
89+
90+
case GCIF_STATUS_UNKNOWN_STATUS:
91+
return "Unknown ICMD Status.";
92+
93+
case GCIF_STATUS_GENERAL_ERROR:
94+
return "General error";
95+
96+
case GCIF_SIZE_EXCEEDS_LIMIT:
97+
return "Size exceeds limit";
98+
99+
case GCIF_ICMD_NOT_SUPPORTED:
100+
return "icmd not supported";
101+
102+
case GCIF_ICMD_INIT_FAILED:
103+
return "icmd initialization failed";
104+
105+
case GCIF_ICMD_BUSY:
106+
return "icmd busy";
107+
108+
case GCIF_STATUS_ICM_NOT_AVAIL:
109+
return "ICM not available";
110+
111+
default:
112+
return "Unknown error";
91113
}
92114
}
93115

94116
/*
95117
* convert_rc
96118
*/
97119

98-
int convert_rc(int rc) {
120+
int convert_rc(int rc)
121+
{
99122
switch (rc) {
100123
case ME_ICMD_STATUS_CR_FAIL:
101124
return GCIF_STATUS_CR_FAIL;
125+
102126
case ME_ICMD_STATUS_SEMAPHORE_TO:
103127
return GCIF_STATUS_SEMAPHORE_TO;
128+
104129
case ME_ICMD_STATUS_EXECUTE_TO:
105130
return GCIF_STATUS_EXECUTE_TO;
131+
106132
case ME_ICMD_STATUS_IFC_BUSY:
107133
return GCIF_STATUS_IFC_BUSY;
134+
108135
case ME_ICMD_STATUS_ICMD_NOT_READY:
109136
return GCIF_STATUS_ICMD_NOT_READY;
137+
110138
case ME_ICMD_UNSUPPORTED_ICMD_VERSION:
111139
return GCIF_STATUS_UNSUPPORTED_ICMD_VERSION;
140+
112141
case ME_ICMD_INVALID_OPCODE:
113142
return GCIF_STATUS_INVALID_OPCODE;
143+
114144
case ME_ICMD_INVALID_CMD:
115145
return GCIF_STATUS_INVALID_CMD;
146+
116147
case ME_ICMD_OPERATIONAL_ERROR:
117148
return GCIF_STATUS_OPERATIONAL_ERROR;
149+
118150
case ME_ICMD_BAD_PARAM:
119151
return GCIF_STATUS_BAD_PARAM;
152+
120153
case ME_ICMD_ICM_NOT_AVAIL:
121154
return GCIF_STATUS_ICM_NOT_AVAIL;
155+
122156
case ME_ICMD_WRITE_PROTECT:
123157
return GCIF_STATUS_WRITE_PROTECT;
158+
124159
case ME_ICMD_UNKNOWN_STATUS:
125160
return GCIF_STATUS_UNKNOWN_STATUS;
161+
126162
case ME_ICMD_SIZE_EXCEEDS_LIMIT:
127163
return GCIF_SIZE_EXCEEDS_LIMIT;
164+
128165
case ME_ICMD_NOT_SUPPORTED:
129166
return GCIF_ICMD_NOT_SUPPORTED;
167+
130168
case ME_ICMD_INIT_FAILED:
131169
return GCIF_ICMD_INIT_FAILED;
170+
132171
case ME_ICMD_BUSY:
133172
return GCIF_ICMD_BUSY;
173+
134174
default:
135175
break;
136176
}

cmdif/icmd_cif_common.h

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@
3737
extern "C" {
3838
#endif
3939

40+
#ifndef IN
41+
#define IN
42+
#endif
43+
44+
#ifndef OUT
45+
#define OUT
46+
#endif
47+
48+
#ifndef INOUT
49+
#define INOUT
50+
#endif
51+
52+
4053
/* --------- Typedefs & Constants ---------------------------------- */
4154

4255
/**
@@ -47,11 +60,11 @@ extern "C" {
4760
**/
4861
enum {
4962
GCIF_STATUS_SUCCESS = 0,
50-
GCIF_STATUS_INVALID_OPCODE ,
63+
GCIF_STATUS_INVALID_OPCODE,
5164
GCIF_STATUS_INVALID_CMD,
5265
GCIF_STATUS_OPERATIONAL_ERROR,
5366
GCIF_STATUS_BAD_PARAM,
54-
GCIF_STATUS_CR_FAIL , // cr-space access failure
67+
GCIF_STATUS_CR_FAIL, // cr-space access failure
5568
GCIF_STATUS_BAD_OPCODE, // unsupported opcode was used
5669
GCIF_STATUS_SEMAPHORE_TO, // timed out while trying to take semaphore
5770
GCIF_STATUS_EXECUTE_TO, // timed out while waiting for command to execute
@@ -78,13 +91,13 @@ enum {
7891
/* --------- Functional API ---------------------------------------- */
7992

8093
/**
81-
* Returns the last error message recorded by the library
82-
**/
94+
* Returns the last error message recorded by the library
95+
**/
8396
char* gcif_get_last_err();
8497

8598
/**
86-
* Returns the error message associated with the provided return code
87-
**/
99+
* Returns the error message associated with the provided return code
100+
**/
88101
char* gcif_err_str(int rc);
89102

90103
#ifdef __cplusplus

cmdif/icmd_cif_macros.h

Lines changed: 37 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@
3636

3737
int convert_rc(int rc);
3838

39-
#define IN
40-
#define OUT
41-
#define INOUT
42-
4339
#ifdef _DEBUG_MODE
4440
#define DBG_PRINTF(...) fprintf(stderr, __VA_ARGS__)
4541
#else
@@ -53,47 +49,47 @@ int convert_rc(int rc);
5349
* TODO: Adrianc- if needed separate struct_name to prefix+name in case we need to separate between different
5450
* 5th gen icmd structures i.e connectib/switchib/connectx4 (use ## to paste them together in the macro)
5551
*/
56-
#define SEND_ICMD_FLOW_GENERIC(mf, op, struct_name, cmd_struct, should_pack, skip_write, pack_func, unpack_func)\
57-
int _rc;\
58-
int _cmd_size = struct_name##_size();\
59-
u_int8_t *_data = (u_int8_t *)malloc(sizeof(u_int8_t) * _cmd_size);\
60-
if (!_data) {\
61-
return GCIF_STATUS_NO_MEM;\
62-
}\
63-
memset(_data, 0, sizeof(u_int8_t) * _cmd_size);\
64-
if (should_pack) {\
65-
pack_func(cmd_struct, _data);\
66-
}\
67-
_rc = icmd_send_command(mf, op, _data, _cmd_size, skip_write);\
68-
if (_rc) {\
69-
free(_data);\
70-
return convert_rc(_rc);\
71-
}\
72-
unpack_func(cmd_struct, _data);\
73-
free(_data);\
52+
#define SEND_ICMD_FLOW_GENERIC(mf, op, struct_name, cmd_struct, should_pack, skip_write, pack_func, unpack_func) \
53+
int _rc; \
54+
int _cmd_size = struct_name##_size(); \
55+
u_int8_t *_data = (u_int8_t*)malloc(sizeof(u_int8_t) * _cmd_size); \
56+
if (!_data) { \
57+
return GCIF_STATUS_NO_MEM; \
58+
} \
59+
memset(_data, 0, sizeof(u_int8_t) * _cmd_size); \
60+
if (should_pack) { \
61+
pack_func(cmd_struct, _data); \
62+
} \
63+
_rc = icmd_send_command(mf, op, _data, _cmd_size, skip_write); \
64+
if (_rc) { \
65+
free(_data); \
66+
return convert_rc(_rc); \
67+
} \
68+
unpack_func(cmd_struct, _data); \
69+
free(_data); \
7470
return GCIF_STATUS_SUCCESS
7571

76-
#define SEND_ICMD_FLOW(mf, op, struct_name, cmd_struct, should_pack, skip_write)\
72+
#define SEND_ICMD_FLOW(mf, op, struct_name, cmd_struct, should_pack, skip_write) \
7773
SEND_ICMD_FLOW_GENERIC(mf, op, struct_name, cmd_struct, should_pack, skip_write, struct_name##_pack, struct_name##_unpack)
7874

79-
#define SEND_UNION_ICMD_FLOW(mf, op, struct_name, cmd_struct, should_pack, skip_write)\
80-
int _rc;\
81-
int _cmd_size = struct_name##_size();\
82-
u_int8_t *_data = (u_int8_t *)malloc(sizeof(u_int8_t) * _cmd_size);\
83-
if (!_data) {\
84-
return GCIF_STATUS_NO_MEM;\
85-
}\
86-
memset(_data, 0, sizeof(u_int8_t) * _cmd_size);\
87-
if (should_pack) {\
88-
struct_name##_in_pack(&(cmd_struct->in), _data);\
89-
}\
90-
_rc = icmd_send_command(mf, op, _data, _cmd_size, skip_write);\
91-
if (_rc) {\
92-
free(_data);\
93-
return convert_rc(_rc);\
94-
}\
95-
struct_name##_unpack(cmd_struct, _data);\
96-
free(_data);\
75+
#define SEND_UNION_ICMD_FLOW(mf, op, struct_name, cmd_struct, should_pack, skip_write) \
76+
int _rc; \
77+
int _cmd_size = struct_name##_size(); \
78+
u_int8_t *_data = (u_int8_t*)malloc(sizeof(u_int8_t) * _cmd_size); \
79+
if (!_data) { \
80+
return GCIF_STATUS_NO_MEM; \
81+
} \
82+
memset(_data, 0, sizeof(u_int8_t) * _cmd_size); \
83+
if (should_pack) { \
84+
struct_name##_in_pack(&(cmd_struct->in), _data); \
85+
} \
86+
_rc = icmd_send_command(mf, op, _data, _cmd_size, skip_write); \
87+
if (_rc) { \
88+
free(_data); \
89+
return convert_rc(_rc); \
90+
} \
91+
struct_name##_unpack(cmd_struct, _data); \
92+
free(_data); \
9793
return GCIF_STATUS_SUCCESS
9894

9995

0 commit comments

Comments
 (0)