#
80e33a28 |
| 28-Mar-2023 |
Ivan Malov <ivan.malov@arknetworks.am> |
common/sfc_efx/base: support link status change v2 events
FW should send link status change events in either v1 or v2 format depending on the preference which the driver can express during CMD_DRV_A
common/sfc_efx/base: support link status change v2 events
FW should send link status change events in either v1 or v2 format depending on the preference which the driver can express during CMD_DRV_ATTACH stage. At the moment, libefx does not request v2, so v1 events must arrive. However, FW does not honour this choice and always sends v2 events.
So teach libefx to parse such and add v2 request to CMD_DRV_ATTACH, correspondingly.
Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
78b82063 |
| 26-May-2022 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
common/sfc_efx/base: manage VNIC MAC address by MCDI handle
The board admin may need to assign a MAC address to a guest VNIC identified by its MCDI handle. Provide an API for that.
In the case when
common/sfc_efx/base: manage VNIC MAC address by MCDI handle
The board admin may need to assign a MAC address to a guest VNIC identified by its MCDI handle. Provide an API for that.
In the case when a libefx-based driver is used at the guest, it will need to check its MAC address using the symmetrical API if the admin has tweaked it by means of its representor.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Acked-by: Ray Kinsella <mdr@ashroe.eu>
show more ...
|
#
b85f5048 |
| 26-May-2022 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
common/sfc_efx/base: convert EFX PCIe INTF to MCDI value
When the driver queries its PCIe interface type via MCDI, the value from the response is translated to an EFX enum.
When the driver passes t
common/sfc_efx/base: convert EFX PCIe INTF to MCDI value
When the driver queries its PCIe interface type via MCDI, the value from the response is translated to an EFX enum.
When the driver passes this enum value back to any other MCDI helper, the inverse translation has to be conducted.
Fixes: 1bf9ff57ccb3 ("common/sfc_efx/base: allow getting VNIC MCDI client handles") Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
60fb370c |
| 17-Nov-2021 |
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> |
common/sfc_efx/base: support NIC DMA memory regions API
NIC DMA memory regions API allows to establish mapping of DMA addresses used by NIC to host IOVA understood by the host when IOMMU is absent a
common/sfc_efx/base: support NIC DMA memory regions API
NIC DMA memory regions API allows to establish mapping of DMA addresses used by NIC to host IOVA understood by the host when IOMMU is absent and NIC cannot address entire host IOVA space because of too small DMA mask.
The API does not allow to address entire host IOVA space, but allows arbitrary regions of the space really used for the NIC DMA.
A DMA region needs to be mapped in order to perform MCDI initialization. Since the NIC has not been probed at that point, its configuration cannot be accessed and there an UNKNOWN mapping type is assumed.
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
1bf9ff57 |
| 11-Oct-2021 |
Viacheslav Galaktionov <viacheslav.galaktionov@oktetlabs.ru> |
common/sfc_efx/base: allow getting VNIC MCDI client handles
Equality checks between VNICs should be done by comparing their client handles. This means that clients should be able to retrieve client
common/sfc_efx/base: allow getting VNIC MCDI client handles
Equality checks between VNICs should be done by comparing their client handles. This means that clients should be able to retrieve client handles for arbitrary functions and themselves.
Signed-off-by: Viacheslav Galaktionov <viacheslav.galaktionov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
7d104a8d |
| 11-Oct-2021 |
Viacheslav Galaktionov <viacheslav.galaktionov@oktetlabs.ru> |
common/sfc_efx/base: retrieve function interfaces for VNICs
This information is required to be able to fully identify the function. Add this information to the NIC configuration structure for easy a
common/sfc_efx/base: retrieve function interfaces for VNICs
This information is required to be able to fully identify the function. Add this information to the NIC configuration structure for easy access.
Signed-off-by: Viacheslav Galaktionov <viacheslav.galaktionov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
3dee345a |
| 02-Jul-2021 |
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> |
common/sfc_efx/base: separate target EvQ and IRQ config
Target EvQ and IRQ number are specified in the same location in MCDI request. The value is treated as IRQ number if the event queue is interru
common/sfc_efx/base: separate target EvQ and IRQ config
Target EvQ and IRQ number are specified in the same location in MCDI request. The value is treated as IRQ number if the event queue is interrupting (corresponding flag is set) and as target event queue otherwise.
However it is better to separate it on helper API level to make it more clear.
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
e27950a0 |
| 18-May-2021 |
Andy Moreton <amoreton@xilinx.com> |
common/sfc_efx/base: add missing MCDI response length checks
Fixes: 6f619653b9b1 ("net/sfc/base: import MCDI implementation") Fixes: e7cd430c864f ("net/sfc/base: import SFN7xxx family support") Fixe
common/sfc_efx/base: add missing MCDI response length checks
Fixes: 6f619653b9b1 ("net/sfc/base: import MCDI implementation") Fixes: e7cd430c864f ("net/sfc/base: import SFN7xxx family support") Fixes: 94190e3543bf ("net/sfc/base: import SFN8xxx family support") Fixes: 34285fd0891d ("common/sfc_efx/base: add match spec validate API") Fixes: e61baa82e64b ("common/sfc_efx/base: add MAE action set provisioning APIs") Fixes: b4fac34715f2 ("common/sfc_efx/base: add MAE action rule provisioning APIs") Fixes: ed15d7f8e064 ("common/sfc_efx/base: validate and compare outer match specs") Fixes: 7a673e1a4a05 ("common/sfc_efx/base: support outer rule provisioning") Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@xilinx.com> Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
e1c9fcab |
| 18-May-2021 |
Andy Moreton <amoreton@xilinx.com> |
common/sfc_efx/base: limit reported MCDI response length
MCDI helper routines in libefx include length checks for response messages, to ensure that short replies and optional fields are handled corr
common/sfc_efx/base: limit reported MCDI response length
MCDI helper routines in libefx include length checks for response messages, to ensure that short replies and optional fields are handled correctly.
If the MCDI response message from the firmware is larger than the caller's buffer then the response length reported to the caller should be limited to the buffer size. Otherwise length checks in the caller may allow reading past the end of the buffer.
Fixes: 6f619653b9b1 ("net/sfc/base: import MCDI implementation") Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@xilinx.com> Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
672386c1 |
| 11-Mar-2021 |
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> |
common/sfc_efx: update copyright year
Bump copyright year to 2021.
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
|
#
df78fe71 |
| 09-Nov-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
common/sfc_efx/base: improve MCDI version/boot clarity
Improve the clarity of the code.
Fixes: 833cfcd590e2 ("common/sfc_efx/base: add API for querying board info") Fixes: 312191e86eb0 ("common/sfc
common/sfc_efx/base: improve MCDI version/boot clarity
Improve the clarity of the code.
Fixes: 833cfcd590e2 ("common/sfc_efx/base: add API for querying board info") Fixes: 312191e86eb0 ("common/sfc_efx/base: refactor version / boot info get helper")
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
833cfcd5 |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
common/sfc_efx/base: add API for querying board info
Riverhead boards can provide extended version information. Implement facilities necessary to obtain it. Add an API for querying board information
common/sfc_efx/base: add API for querying board info
Riverhead boards can provide extended version information. Implement facilities necessary to obtain it. Add an API for querying board information.
A client driver may use this to discover which of its instances relate to which physical boards, based on board serial number persistence for a given physical board.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
312191e8 |
| 20-Oct-2020 |
Ivan Malov <ivan.malov@oktetlabs.ru> |
common/sfc_efx/base: refactor version / boot info get helper
Refactor MCDI helper for version information and boot status retrieval; it should comprise two dedicated helper functions.
A later patch
common/sfc_efx/base: refactor version / boot info get helper
Refactor MCDI helper for version information and boot status retrieval; it should comprise two dedicated helper functions.
A later patch will extend and reuse version retrieval helper.
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
f8a60f76 |
| 24-Sep-2020 |
Andy Moreton <amoreton@xilinx.com> |
common/sfc_efx/base: support creation of extended width EvQ
Add a flag to request an extended width event queue, and check that the supplied buffer is large enough to hold the event queue descriptor
common/sfc_efx/base: support creation of extended width EvQ
Add a flag to request an extended width event queue, and check that the supplied buffer is large enough to hold the event queue descriptors.
Signed-off-by: Andy Moreton <amoreton@xilinx.com> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
c1f02189 |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: choose smallest Rx prefix on Riverhead
Riverhead supports many Rx prefixes. The Rx prefix may be chosen based on which information is required.
To have better performance choos
common/sfc_efx/base: choose smallest Rx prefix on Riverhead
Riverhead supports many Rx prefixes. The Rx prefix may be chosen based on which information is required.
To have better performance choose the smallest Rx prefix which meets our requirements.
Right now there is no way to specify requirements on Rx queue creation, but it could be added in the future.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
7640543f |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: group RxQ parameters into a structure
Make number of efx_mcdi_init_rxq() arguments reasonable before addition of one more argument. Non essential parameters not supported in som
common/sfc_efx/base: group RxQ parameters into a structure
Make number of efx_mcdi_init_rxq() arguments reasonable before addition of one more argument. Non essential parameters not supported in some cases are moved into helper structure.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
4fd0181f |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: implement Tx control path for Riverhead
Tx control path on Riverhead is very similar to EF10, but datapath differs a lot since Tx descriptor size is 16 bytes (vs 8 bytes on EF10
common/sfc_efx/base: implement Tx control path for Riverhead
Tx control path on Riverhead is very similar to EF10, but datapath differs a lot since Tx descriptor size is 16 bytes (vs 8 bytes on EF10).
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
b6b29352 |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: implement Rx control path for Riverhead
Reuse EF10 RSS-related functions since current version of the RSS interface is compatible with EF10.
Implement own functions to create a
common/sfc_efx/base: implement Rx control path for Riverhead
Reuse EF10 RSS-related functions since current version of the RSS interface is compatible with EF10.
Implement own functions to create and destroy Rx queues which reuse MCDI wrappers which are shared with EF10.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
4664935a |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: switch TxQ init to extended version
Extended version of MCDI allows up to 64 DMA addresses which are required for Riverhead.
Signed-off-by: Andrew Rybchenko <arybchenko@solarfl
common/sfc_efx/base: switch TxQ init to extended version
Extended version of MCDI allows up to 64 DMA addresses which are required for Riverhead.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
70dc9c54 |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: move TxQ init/fini wrappers to generic
TxQ init/fini MCDI is similar on Riverhead and these functions should be reused to implement TxQ creation and destruction on Riverhead.
S
common/sfc_efx/base: move TxQ init/fini wrappers to generic
TxQ init/fini MCDI is similar on Riverhead and these functions should be reused to implement TxQ creation and destruction on Riverhead.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Reviewed-by: Vijay Kumar Srivastava <vsrivast@xilinx.com>
show more ...
|
#
09b59c7d |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: move RxQ init/fini wrappers to generic
RxQ init/fini MCDI is similar on Riverhead and these functions should be reused to implement RxQ creation and destruction on Riverhead.
S
common/sfc_efx/base: move RxQ init/fini wrappers to generic
RxQ init/fini MCDI is similar on Riverhead and these functions should be reused to implement RxQ creation and destruction on Riverhead.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
b97bf1ca |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: add event queue module for Riverhead
Events are significantly reworked on Riverhead, so it is better to implement own set of callbacks to simplify future development and avoid i
common/sfc_efx/base: add event queue module for Riverhead
Events are significantly reworked on Riverhead, so it is better to implement own set of callbacks to simplify future development and avoid inheritance of legacy code.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
8aad1149 |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: merge versions of init EvQ wrappers
The decision on which version of the INIT_EVQ command to use may be done inside the function itself. Caller should just provide enough inform
common/sfc_efx/base: merge versions of init EvQ wrappers
The decision on which version of the INIT_EVQ command to use may be done inside the function itself. Caller should just provide enough information sufficient in both cases. It avoids code duplication and simplifies maintenance.
If v2 is not supported, keep decision about low-latency hint outside the MCDI helper function since it will differ on Riverhead (there is no EVB yet, but still want merging for better throughput).
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
13a300a5 |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: prepare to merge EvQ init functions
v1 and v2 defines are the same except output length.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <
common/sfc_efx/base: prepare to merge EvQ init functions
v1 and v2 defines are the same except output length.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com>
show more ...
|
#
85270581 |
| 24-Sep-2020 |
Andrew Rybchenko <arybchenko@solarflare.com> |
common/sfc_efx/base: move EvQ init/fini wrappers to generic
EvQ init/fini MCDI is similar on Riverhead and these functions should be reused to implement EvQ creation and destruction on Riverhead.
S
common/sfc_efx/base: move EvQ init/fini wrappers to generic
EvQ init/fini MCDI is similar on Riverhead and these functions should be reused to implement EvQ creation and destruction on Riverhead.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Andy Moreton <amoreton@xilinx.com> Reviewed-by: Vijay Kumar Srivastava <vsrivast@xilinx.com>
show more ...
|