sfc: Update MCDI protocol definitions for EF10
EF10 controllers do not have shared memory for communication with the MC; instead it reads requests and writes responses in host memory, which allows for longer messages. It is also responsible for all datapath control operations and hardware resource allocation, which requires a large number of new commands and adds more possible error cases. MCDI v2 extends the message header to support this. Update the MCDI protocol definition header to include v2 lengths, errors and messages, and a few definitions specific to the SFC9100 family (codenames Farmingdale and Huntington) which is the first generation of EF10. Some messages have been extended, so adjust the code accordingly: - The request for MC_CMD_DRV_ATTACH now includes a datapath firmware ID. This is ignored by Siena but we should fill it in anyway, initially always specifying low-latency datapath. - The response for MC_CMD_GET_LOOPBACK_MODES now includes a 40G field. Accept shorter responses that don't include it. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
parent
5bc283e513
commit
f2b0befd1d
|
@ -593,6 +593,7 @@ int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating,
|
|||
MCDI_SET_DWORD(inbuf, DRV_ATTACH_IN_NEW_STATE,
|
||||
driver_operating ? 1 : 0);
|
||||
MCDI_SET_DWORD(inbuf, DRV_ATTACH_IN_UPDATE, 1);
|
||||
MCDI_SET_DWORD(inbuf, DRV_ATTACH_IN_FIRMWARE_ID, MC_CMD_FW_LOW_LATENCY);
|
||||
|
||||
rc = efx_mcdi_rpc(efx, MC_CMD_DRV_ATTACH, inbuf, sizeof(inbuf),
|
||||
outbuf, sizeof(outbuf), &outlen);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -111,7 +111,8 @@ static int efx_mcdi_loopback_modes(struct efx_nic *efx, u64 *loopback_modes)
|
|||
if (rc)
|
||||
goto fail;
|
||||
|
||||
if (outlen < MC_CMD_GET_LOOPBACK_MODES_OUT_LEN) {
|
||||
if (outlen < (MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_OFST +
|
||||
MC_CMD_GET_LOOPBACK_MODES_OUT_SUGGESTED_LEN)) {
|
||||
rc = -EIO;
|
||||
goto fail;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue