[dpdk-dev] [PATCH v2 1/1] net/ixgbe: Add access and locking APIs for MDIO
Lu, Wenzhuo
wenzhuo.lu at intel.com
Wed Apr 4 04:15:58 CEST 2018
Hi Shweta,
> -----Original Message-----
> From: Shweta Choudaha [mailto:shweta.choudaha at gmail.com]
> Sent: Thursday, March 22, 2018 1:36 AM
> To: dev at dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu at intel.com>; Ananyev, Konstantin
> <konstantin.ananyev at intel.com>; Zhang, Helin <helin.zhang at intel.com>;
> Yigit, Ferruh <ferruh.yigit at intel.com>; shweta.choudaha at att.com
> Subject: [PATCH v2 1/1] net/ixgbe: Add access and locking APIs for MDIO
>
> From: Shweta Choudaha <shweta.choudaha at att.com>
>
> Add ixgbe MDIO lock/unlock and access APIs to read and write registers using
> specific device address. This provides MDIO access to any devices that are
> not associated with the autoprobed PHY.Export these APIs via the map file
>
> Signed-off-by: Shweta Choudaha <shweta.choudaha at att.com>
> Reviewed-by: Chas Williams <chas3 at att.com>
> Reviewed-by: Luca Boccassi <bluca at debian.org>
> ---
> drivers/net/ixgbe/rte_pmd_ixgbe.c | 203
> ++++++++++++++++++++++++++++
> drivers/net/ixgbe/rte_pmd_ixgbe.h | 71 ++++++++++
> drivers/net/ixgbe/rte_pmd_ixgbe_version.map | 9 ++
> 3 files changed, 283 insertions(+)
>
> diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c
> b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> index d8ca8ca31..1846af89b 100644
> --- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> @@ -5,6 +5,8 @@
> #include <rte_ethdev_driver.h>
>
> #include "base/ixgbe_api.h"
> +#include "base/ixgbe_x540.h"
> +#include "base/ixgbe_x550.h"
> #include "ixgbe_ethdev.h"
> #include "rte_pmd_ixgbe.h"
>
> @@ -1012,3 +1014,204 @@ rte_pmd_ixgbe_bypass_wd_reset(uint16_t
> port_id)
> return ixgbe_bypass_wd_reset(dev);
> }
> #endif
> +
> +/**
> + * rte_pmd_ixgbe_acquire_swfw - Acquire SWFW semaphore
> + * @hw: pointer to hardware structure
> + * @mask: Mask to specify which semaphore to acquire
> + *
> + * Acquires the SWFW semaphore and get the shared phy token as needed
> +*/ STATIC s32 rte_pmd_ixgbe_acquire_swfw(struct ixgbe_hw *hw, u32 mask)
> +{
> + int retries = FW_PHY_TOKEN_RETRIES;
> + s32 status = IXGBE_SUCCESS;
> +
> + while (--retries) {
> + status = ixgbe_acquire_swfw_sync_X540(hw, mask);
" ixgbe_acquire_swfw_sync_X540" is only for x540. Why not using " ixgbe_acquire_swfw_semaphore" which is common.
The same for " ixgbe_release_swfw_sync_X540".
> a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
> b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
> index bf776742c..88a91627a 100644
> --- a/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe_version.map
> @@ -52,3 +52,12 @@ DPDK_17.08 {
> rte_pmd_ixgbe_bypass_wd_timeout_show;
> rte_pmd_ixgbe_bypass_wd_timeout_store;
> } DPDK_17.05;
> +
> +EXPERIMENTAL {
> + global:
> +
> + rte_pmd_ixgbe_lock_mdio;
> + rte_pmd_ixgbe_unlock_mdio;
> + rte_pmd_ixgbe_mdio_read_unlocked;
> + rte_pmd_ixgbe_mdio_write_unlocked;
> +} DPDK_17.08;
17.08 is old. Should add a 18.05 here.
> --
> 2.11.0
More information about the dev
mailing list