History

qed: Add API for configuring NVM attributes.

The patch adds API for configuring the NVM config attributes using Management FW (MFW) interfaces.

Sudarsana Reddy Kalluru committed 7 years ago

Commit 38eabdf1 parent 87146523 files · +69 −0Browse files

Unified · Split

3 files
  1. drivers/net/ethernet/qlogic/qed/qed_hsi.h +17 −0
  2. drivers/net/ethernet/qlogic/qed/qed_mcp.c +32 −0
  3. drivers/net/ethernet/qlogic/qed/qed_mcp.h +20 −0
drivers/net/ethernet/qlogic/qed/qed_hsi.h+17−0
@@ -12580,6 +12580,8 @@ struct public_drv_mb { · 12579 unmodified lines
1258012580 #define DRV_MSG_CODE_BW_UPDATE_ACK 0x32000000
1258112581 #define DRV_MSG_CODE_NIG_DRAIN 0x30000000
1258212582 #define DRV_MSG_CODE_S_TAG_UPDATE_ACK 0x3b000000
12583+#define DRV_MSG_CODE_GET_NVM_CFG_OPTION 0x003e0000
12584+#define DRV_MSG_CODE_SET_NVM_CFG_OPTION 0x003f0000
1258312585 #define DRV_MSG_CODE_INITIATE_PF_FLR 0x02010000
1258412586 #define DRV_MSG_CODE_VF_DISABLED_DONE 0xc0000000
1258512587 #define DRV_MSG_CODE_CFG_VF_MSIX 0xc0010000
@@ -12748,6 +12750,21 @@ struct public_drv_mb { · 162 unmodified lines
1274812750 #define DRV_MB_PARAM_FEATURE_SUPPORT_PORT_EEE 0x00000002
1274912751 #define DRV_MB_PARAM_FEATURE_SUPPORT_FUNC_VLINK 0x00010000
1275012752
12753+#define DRV_MB_PARAM_NVM_CFG_OPTION_ID_SHIFT 0
12754+#define DRV_MB_PARAM_NVM_CFG_OPTION_ID_MASK 0x0000FFFF
12755+#define DRV_MB_PARAM_NVM_CFG_OPTION_ALL_SHIFT 16
12756+#define DRV_MB_PARAM_NVM_CFG_OPTION_ALL_MASK 0x00010000
12757+#define DRV_MB_PARAM_NVM_CFG_OPTION_INIT_SHIFT 17
12758+#define DRV_MB_PARAM_NVM_CFG_OPTION_INIT_MASK 0x00020000
12759+#define DRV_MB_PARAM_NVM_CFG_OPTION_COMMIT_SHIFT 18
12760+#define DRV_MB_PARAM_NVM_CFG_OPTION_COMMIT_MASK 0x00040000
12761+#define DRV_MB_PARAM_NVM_CFG_OPTION_FREE_SHIFT 19
12762+#define DRV_MB_PARAM_NVM_CFG_OPTION_FREE_MASK 0x00080000
12763+#define DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_SEL_SHIFT 20
12764+#define DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_SEL_MASK 0x00100000
12765+#define DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_ID_SHIFT 24
12766+#define DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_ID_MASK 0x0f000000
12767+
1275112768 u32 fw_mb_header;
1275212769 #define FW_MSG_CODE_MASK 0xffff0000
1275312770 #define FW_MSG_CODE_UNSUPPORTED 0x00000000
drivers/net/ethernet/qlogic/qed/qed_mcp.c+32−0
@@ -3750,3 +3750,35 @@ int qed_mcp_get_ppfid_bitmap(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) · 3749 unmodified lines
37503750
37513751 return 0;
37523752 }
3753+
3754+int qed_mcp_nvm_set_cfg(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
3755+ u16 option_id, u8 entity_id, u16 flags, u8 *p_buf,
3756+ u32 len)
3757+{
3758+ u32 mb_param = 0, resp, param;
3759+
3760+ QED_MFW_SET_FIELD(mb_param, DRV_MB_PARAM_NVM_CFG_OPTION_ID, option_id);
3761+ if (flags & QED_NVM_CFG_OPTION_ALL)
3762+ QED_MFW_SET_FIELD(mb_param,
3763+ DRV_MB_PARAM_NVM_CFG_OPTION_ALL, 1);
3764+ if (flags & QED_NVM_CFG_OPTION_INIT)
3765+ QED_MFW_SET_FIELD(mb_param,
3766+ DRV_MB_PARAM_NVM_CFG_OPTION_INIT, 1);
3767+ if (flags & QED_NVM_CFG_OPTION_COMMIT)
3768+ QED_MFW_SET_FIELD(mb_param,
3769+ DRV_MB_PARAM_NVM_CFG_OPTION_COMMIT, 1);
3770+ if (flags & QED_NVM_CFG_OPTION_FREE)
3771+ QED_MFW_SET_FIELD(mb_param,
3772+ DRV_MB_PARAM_NVM_CFG_OPTION_FREE, 1);
3773+ if (flags & QED_NVM_CFG_OPTION_ENTITY_SEL) {
3774+ QED_MFW_SET_FIELD(mb_param,
3775+ DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_SEL, 1);
3776+ QED_MFW_SET_FIELD(mb_param,
3777+ DRV_MB_PARAM_NVM_CFG_OPTION_ENTITY_ID,
3778+ entity_id);
3779+ }
3780+
3781+ return qed_mcp_nvm_wr_cmd(p_hwfn, p_ptt,
3782+ DRV_MSG_CODE_SET_NVM_CFG_OPTION,
3783+ mb_param, &resp, &param, len, (u32 *)p_buf);
3784+}
drivers/net/ethernet/qlogic/qed/qed_mcp.h+20−0
@@ -251,6 +251,12 @@ union qed_mfw_tlv_data { · 250 unmodified lines
251251 struct qed_mfw_tlv_iscsi iscsi;
252252 };
253253
254+#define QED_NVM_CFG_OPTION_ALL BIT(0)
255+#define QED_NVM_CFG_OPTION_INIT BIT(1)
256+#define QED_NVM_CFG_OPTION_COMMIT BIT(2)
257+#define QED_NVM_CFG_OPTION_FREE BIT(3)
258+#define QED_NVM_CFG_OPTION_ENTITY_SEL BIT(4)
259+
254260 /**
255261 * @brief - returns the link params of the hw function
256262 *
@@ -1202,4 +1208,18 @@ int qed_mcp_get_engine_config(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); · 945 unmodified lines
12021208 */
12031209 int qed_mcp_get_ppfid_bitmap(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
12041210
1211+/**
1212+ * @brief Set NVM config attribute value.
1213+ *
1214+ * @param p_hwfn
1215+ * @param p_ptt
1216+ * @param option_id
1217+ * @param entity_id
1218+ * @param flags
1219+ * @param p_buf
1220+ * @param len
1221+ */
1222+int qed_mcp_nvm_set_cfg(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
1223+ u16 option_id, u8 entity_id, u16 flags, u8 *p_buf,
1224+ u32 len);
12051225 #endif

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