History

net/mlx5: Added MCQI and MCQS registers' description to ifc

Given a fw component index, the MCQI register allows us to query this component's information (e.g. its version and capabilities). Given a fw component index, the MCQS register allows us to query the status of a fw component, including its type and state (e.g. PRESET/IN_USE). It can be used to find the index of a component of a specific type, by sequentially increasing the component index, and querying each time the type of the returned component. If max component index is reached, 'last_index_flag' is set by the HCA. These registers' description was added to query the running and pending fw version of the HCA.

Shay Agroskin committed 7 years ago

Commit a82e0b51 parent 1759d322 files · +58 −2Browse files

Unified · Split

2 files
  1. include/linux/mlx5/driver.h +1 −0
  2. include/linux/mlx5/mlx5_ifc.h +57 −2
include/linux/mlx5/driver.h+1−0
@@ -138,6 +138,7 @@ enum { · 137 unmodified lines
138138 MLX5_REG_MTPPS = 0x9053,
139139 MLX5_REG_MTPPSE = 0x9054,
140140 MLX5_REG_MPEGC = 0x9056,
141+ MLX5_REG_MCQS = 0x9060,
141142 MLX5_REG_MCQI = 0x9061,
142143 MLX5_REG_MCC = 0x9062,
143144 MLX5_REG_MCDA = 0x9063,
include/linux/mlx5/mlx5_ifc.h+57−2
@@ -8542,7 +8542,7 @@ struct mlx5_ifc_mcam_access_reg_bits { · 8541 unmodified lines
85428542 u8 mcda[0x1];
85438543 u8 mcc[0x1];
85448544 u8 mcqi[0x1];
8545− u8 reserved_at_1f[0x1];
8545+ u8 mcqs[0x1];
85468546
85478547 u8 regs_95_to_87[0x9];
85488548 u8 mpegc[0x1];
@@ -9034,6 +9034,24 @@ struct mlx5_ifc_mtppse_reg_bits { · 485 unmodified lines
90349034 u8 reserved_at_40[0x40];
90359035 };
90369036
9037+struct mlx5_ifc_mcqs_reg_bits {
9038+ u8 last_index_flag[0x1];
9039+ u8 reserved_at_1[0x7];
9040+ u8 fw_device[0x8];
9041+ u8 component_index[0x10];
9042+
9043+ u8 reserved_at_20[0x10];
9044+ u8 identifier[0x10];
9045+
9046+ u8 reserved_at_40[0x17];
9047+ u8 component_status[0x5];
9048+ u8 component_update_state[0x4];
9049+
9050+ u8 last_update_state_changer_type[0x4];
9051+ u8 last_update_state_changer_host_id[0x4];
9052+ u8 reserved_at_68[0x18];
9053+};
9054+
90379055 struct mlx5_ifc_mcqi_cap_bits {
90389056 u8 supported_info_bitmask[0x20];
90399057
@@ -9054,6 +9072,43 @@ struct mlx5_ifc_mcqi_cap_bits { · 14 unmodified lines
90549072 u8 reserved_at_86[0x1a];
90559073 };
90569074
9075+struct mlx5_ifc_mcqi_version_bits {
9076+ u8 reserved_at_0[0x2];
9077+ u8 build_time_valid[0x1];
9078+ u8 user_defined_time_valid[0x1];
9079+ u8 reserved_at_4[0x14];
9080+ u8 version_string_length[0x8];
9081+
9082+ u8 version[0x20];
9083+
9084+ u8 build_time[0x40];
9085+
9086+ u8 user_defined_time[0x40];
9087+
9088+ u8 build_tool_version[0x20];
9089+
9090+ u8 reserved_at_e0[0x20];
9091+
9092+ u8 version_string[92][0x8];
9093+};
9094+
9095+struct mlx5_ifc_mcqi_activation_method_bits {
9096+ u8 pending_server_ac_power_cycle[0x1];
9097+ u8 pending_server_dc_power_cycle[0x1];
9098+ u8 pending_server_reboot[0x1];
9099+ u8 pending_fw_reset[0x1];
9100+ u8 auto_activate[0x1];
9101+ u8 all_hosts_sync[0x1];
9102+ u8 device_hw_reset[0x1];
9103+ u8 reserved_at_7[0x19];
9104+};
9105+
9106+union mlx5_ifc_mcqi_reg_data_bits {
9107+ struct mlx5_ifc_mcqi_cap_bits mcqi_caps;
9108+ struct mlx5_ifc_mcqi_version_bits mcqi_version;
9109+ struct mlx5_ifc_mcqi_activation_method_bits mcqi_activation_mathod;
9110+};
9111+
90579112 struct mlx5_ifc_mcqi_reg_bits {
90589113 u8 read_pending_component[0x1];
90599114 u8 reserved_at_1[0xf];
@@ -9071,7 +9126,7 @@ struct mlx5_ifc_mcqi_reg_bits { · 11 unmodified lines
90719126 u8 reserved_at_a0[0x10];
90729127 u8 data_size[0x10];
90739128
9074− u8 data[0][0x20];
9129+ union mlx5_ifc_mcqi_reg_data_bits data[0];
90759130 };
90769131
90779132 struct mlx5_ifc_mcc_reg_bits {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t