linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Siddharth Vadapalli <s-vadapalli@ti.com>
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, rogerq@kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, srk@ti.com
Subject: Re: [PATCH net-next 2/4] net: ethernet: ti: am65-cpsw: Add support for SGMII mode
Date: Tue, 21 Mar 2023 11:29:30 +0000	[thread overview]
Message-ID: <ZBmVGu2vf1ADmEuN@shell.armlinux.org.uk> (raw)
In-Reply-To: <20230321111958.2800005-3-s-vadapalli@ti.com>

On Tue, Mar 21, 2023 at 04:49:56PM +0530, Siddharth Vadapalli wrote:
> Add support for configuring the CPSW Ethernet Switch in SGMII mode.
> 
> Depending on the SoC, allow selecting SGMII mode as a supported interface,
> based on the compatible used.
> 
> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
> ---
>  drivers/net/ethernet/ti/am65-cpsw-nuss.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c b/drivers/net/ethernet/ti/am65-cpsw-nuss.c
> index cba8db14e160..d2ca1f2035f4 100644
> --- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
> +++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c
> @@ -76,6 +76,7 @@
>  #define AM65_CPSW_PORTN_REG_TS_CTL_LTYPE2       0x31C
>  
>  #define AM65_CPSW_SGMII_CONTROL_REG		0x010
> +#define AM65_CPSW_SGMII_MR_ADV_ABILITY_REG	0x018
>  #define AM65_CPSW_SGMII_CONTROL_MR_AN_ENABLE	BIT(0)

Isn't this misplaced? Shouldn't AM65_CPSW_SGMII_MR_ADV_ABILITY_REG come
after AM65_CPSW_SGMII_CONTROL_MR_AN_ENABLE, rather than splitting that
from its register offset definition?

If the advertisement register is at 0x18, and the lower 16 bits is the
advertisement, are the link partner advertisement found in the upper
16 bits?

>  #define AM65_CPSW_CTL_VLAN_AWARE		BIT(1)
> @@ -1496,9 +1497,14 @@ static void am65_cpsw_nuss_mac_config(struct phylink_config *config, unsigned in
>  	struct am65_cpsw_port *port = container_of(slave, struct am65_cpsw_port, slave);
>  	struct am65_cpsw_common *common = port->common;
>  
> -	if (common->pdata.extra_modes & BIT(state->interface))
> +	if (common->pdata.extra_modes & BIT(state->interface)) {
> +		if (state->interface == PHY_INTERFACE_MODE_SGMII)
> +			writel(ADVERTISE_SGMII,
> +			       port->sgmii_base + AM65_CPSW_SGMII_MR_ADV_ABILITY_REG);
> +

I think we can do better with this, by implementing proper PCS support.

It seems manufacturers tend to use bought-in IP for this, so have a
look at drivers/net/pcs/ to see whether any of those (or the one in
the Mediatek patch set on netdev that has recently been applied) will
idrive your hardware.

However, given the definition of AM65_CPSW_SGMII_CONTROL_MR_AN_ENABLE,
I suspect you won't find a compatible implementation.

Thanks.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2023-03-21 11:29 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-21 11:19 [PATCH net-next 0/4] Add CPSWxG SGMII support for J7200 and J721E Siddharth Vadapalli
2023-03-21 11:19 ` [PATCH net-next 1/4] net: ethernet: ti: am65-cpsw: Simplify setting supported interface Siddharth Vadapalli
2023-03-21 11:19 ` [PATCH net-next 2/4] net: ethernet: ti: am65-cpsw: Add support for SGMII mode Siddharth Vadapalli
2023-03-21 11:29   ` Russell King (Oracle) [this message]
2023-03-21 13:34     ` Siddharth Vadapalli
2023-03-21 15:38       ` Russell King (Oracle)
2023-03-21 16:16         ` Siddharth Vadapalli
2023-03-22 14:49         ` Paolo Abeni
2023-03-22 15:10           ` Russell King (Oracle)
2023-03-21 11:19 ` [PATCH net-next 3/4] net: ethernet: ti: am65-cpsw: Enable SGMII mode for J7200 Siddharth Vadapalli
2023-03-21 11:19 ` [PATCH net-next 4/4] net: ethernet: ti: am65-cpsw: Enable SGMII mode for J721E Siddharth Vadapalli
2023-03-23  5:20 ` [PATCH net-next 0/4] Add CPSWxG SGMII support for J7200 and J721E patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZBmVGu2vf1ADmEuN@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rogerq@kernel.org \
    --cc=s-vadapalli@ti.com \
    --cc=srk@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).