Commit e0a8f9de authored by Michal Kalderon's avatar Michal Kalderon Committed by David S. Miller

qed: Add iWARP enablement support

This patch is the last of the initial iWARP patch series. It
adds the possiblity to actually detect iWARP from the device and enable
it in the critical locations which basically make iWARP available.

It wasn't submitted until now as iWARP hadn't been accepted into
the rdma tree.
Signed-off-by: default avatarMichal Kalderon <Michal.Kalderon@cavium.com>
Signed-off-by: default avatarAriel Elior <Ariel.Elior@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2091c227
...@@ -2069,6 +2069,12 @@ static void qed_rdma_set_pf_params(struct qed_hwfn *p_hwfn, ...@@ -2069,6 +2069,12 @@ static void qed_rdma_set_pf_params(struct qed_hwfn *p_hwfn,
num_srqs = min_t(u32, 32 * 1024, p_params->num_srqs); num_srqs = min_t(u32, 32 * 1024, p_params->num_srqs);
if (p_hwfn->mcp_info->func_info.protocol == QED_PCI_ETH_RDMA) {
DP_NOTICE(p_hwfn,
"Current day drivers don't support RoCE & iWARP simultaneously on the same PF. Default to RoCE-only\n");
p_hwfn->hw_info.personality = QED_PCI_ETH_ROCE;
}
switch (p_hwfn->hw_info.personality) { switch (p_hwfn->hw_info.personality) {
case QED_PCI_ETH_IWARP: case QED_PCI_ETH_IWARP:
/* Each QP requires one connection */ /* Each QP requires one connection */
......
...@@ -1691,12 +1691,12 @@ qed_mcp_get_shmem_proto_mfw(struct qed_hwfn *p_hwfn, ...@@ -1691,12 +1691,12 @@ qed_mcp_get_shmem_proto_mfw(struct qed_hwfn *p_hwfn,
case FW_MB_PARAM_GET_PF_RDMA_ROCE: case FW_MB_PARAM_GET_PF_RDMA_ROCE:
*p_proto = QED_PCI_ETH_ROCE; *p_proto = QED_PCI_ETH_ROCE;
break; break;
case FW_MB_PARAM_GET_PF_RDMA_IWARP:
*p_proto = QED_PCI_ETH_IWARP;
break;
case FW_MB_PARAM_GET_PF_RDMA_BOTH: case FW_MB_PARAM_GET_PF_RDMA_BOTH:
DP_NOTICE(p_hwfn, *p_proto = QED_PCI_ETH_RDMA;
"Current day drivers don't support RoCE & iWARP. Default to RoCE-only\n");
*p_proto = QED_PCI_ETH_ROCE;
break; break;
case FW_MB_PARAM_GET_PF_RDMA_IWARP:
default: default:
DP_NOTICE(p_hwfn, DP_NOTICE(p_hwfn,
"MFW answers GET_PF_RDMA_PROTOCOL but param is %08x\n", "MFW answers GET_PF_RDMA_PROTOCOL but param is %08x\n",
......
...@@ -156,7 +156,10 @@ static int qed_rdma_alloc(struct qed_hwfn *p_hwfn, ...@@ -156,7 +156,10 @@ static int qed_rdma_alloc(struct qed_hwfn *p_hwfn,
return rc; return rc;
p_hwfn->p_rdma_info = p_rdma_info; p_hwfn->p_rdma_info = p_rdma_info;
p_rdma_info->proto = PROTOCOLID_ROCE; if (QED_IS_IWARP_PERSONALITY(p_hwfn))
p_rdma_info->proto = PROTOCOLID_IWARP;
else
p_rdma_info->proto = PROTOCOLID_ROCE;
num_cons = qed_cxt_get_proto_cid_count(p_hwfn, p_rdma_info->proto, num_cons = qed_cxt_get_proto_cid_count(p_hwfn, p_rdma_info->proto,
NULL); NULL);
......
...@@ -377,6 +377,7 @@ int qed_sp_pf_start(struct qed_hwfn *p_hwfn, ...@@ -377,6 +377,7 @@ int qed_sp_pf_start(struct qed_hwfn *p_hwfn,
p_ramrod->personality = PERSONALITY_ISCSI; p_ramrod->personality = PERSONALITY_ISCSI;
break; break;
case QED_PCI_ETH_ROCE: case QED_PCI_ETH_ROCE:
case QED_PCI_ETH_IWARP:
p_ramrod->personality = PERSONALITY_RDMA_AND_ETH; p_ramrod->personality = PERSONALITY_RDMA_AND_ETH;
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment