netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Chng, Jack Ping" <jack.ping.chng@linux.intel.com>
To: Jose.Abreu@synopsys.com
Cc: Andrew Lunn <andrew@lunn.ch>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	Joao Pinto <Joao.Pinto@synopsys.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re:[RFC net-next] net: phy: Add basic support for Synopsys XPCS using a PHY driver
Date: Tue, 4 Feb 2020 17:41:35 +0800	[thread overview]
Message-ID: <99652f12-c7b4-756d-d169-4770cf1f0d96@linux.intel.com> (raw)
In-Reply-To: <e942b414-08bd-0305-9128-26666a7a5d5a@linux.intel.com>

Hi Jose,
>
>> So, besides not having a DT based setup to test changes, I also don't 
>> have access to SFP bus neither SERDES ... As you suggested, I would 
>> like to integrate XPCS with PHYLINK in stmmac but I'm not entirely 
>> sure on how to implement the remaining connections as the 
>> connect_phy() callbacks will fail because the only MMD device in the 
>> bus will be XPCS. That's why I suggested the Fixed PHY approach ...
>
> Having access to the SFP or not is not that relevent to the data link.
> Generally, the SFP is not like a PHY, and doesn't take part in the
> link negotiation unless it happens to contain a copper PHY.
>
> Also, please, do not use fixed-phy support with phylink. phylink
> implements a replacement for that, where it supports fixed-links
> without needing the fixed-phy stuff. This is far more flexible
> than fixed-phy which is restricted to the capabilities of clause 22
> PHYs only.
>
> To make fixed-phy support modes beyond clause 22 PHY capabilities
> would need clause 45 register set emulation by swphy and a
> corresponding clause 45 phylib driver; clause 45 annoyingly does
> not define the 1G negotiation registers in the standard register
> set, so every PHY vendor implements that using their own vendor
> specific solution.
>
> This is why phylink implements its own solution without using
> fixed-phy (which I wish could be removed some day).
>
> I would strongly recommend supporting the XPCS natively and not
> via phylib. Consider the case:
>
> Host PC x86 -> PCI -> XGMAC -> XPCS -> SERDES 10G-BASE-R -> PHY -> RJ45
>
> You can only have one phylib PHY attached to a network device via
> connect_phy(); that is a restriction in the higher net layers. If you
> use phylib for the XPCS, how do you attach the PHY to the setup and
> configure it?
>
> Also, using a PHY via connect_phy() negates using fixed-link mode in
> phylink, the two have always been exclusive.

Currently our network SoC has something like this:
XGMAC-> XPCS -> Combo PHY -> PHY

In the xpcs driver probe(), get and calibrate the phy:

priv->phy = devm_phy_get(&pdev->dev, "phy");
if (IS_ERR(priv->phy)) {
     dev_warn(dev, "No phy\n");
     return PTR_ERR(priv->phy);
}

ret = phy_init(priv->phy);
if (ret)
     return ret;

ret = phy_power_on(priv->phy);
if (ret) {
     phy_exit(priv->phy);
     return ret;
}
ret = phy_calibrate(priv->phy);
if (ret) {
     phy_exit(priv->phy);
     return ret;
}

xpcs driver needs to handle phy or phy_device depending on the phy?

Best regards,
Chng Jack Ping


  parent reply	other threads:[~2020-02-04  9:41 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-13 13:11 [RFC net-next] net: phy: Add basic support for Synopsys XPCS using a PHY driver Jose Abreu
2020-01-13 13:38 ` Andrew Lunn
2020-01-13 13:54   ` Jose Abreu
2020-01-13 14:18     ` Russell King - ARM Linux admin
2020-01-13 14:27       ` Jose Abreu
2020-01-13 14:55         ` Vladimir Oltean
2020-01-13 15:05           ` Jose Abreu
2020-01-13 14:50       ` Vladimir Oltean
2020-01-13 15:09         ` Russell King - ARM Linux admin
2020-01-20 10:31       ` Jose Abreu
2020-01-20 10:50         ` Russell King - ARM Linux admin
2020-01-20 11:07           ` Jose Abreu
2020-01-20 11:39             ` Russell King - ARM Linux admin
     [not found]               ` <e942b414-08bd-0305-9128-26666a7a5d5a@linux.intel.com>
2020-02-04  9:41                 ` Chng, Jack Ping [this message]
2020-03-09  9:22                   ` Jose Abreu
2020-01-13 13:42 ` [RFC " Andy Shevchenko
2020-01-13 14:07   ` Jose Abreu

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=99652f12-c7b4-756d-d169-4770cf1f0d96@linux.intel.com \
    --to=jack.ping.chng@linux.intel.com \
    --cc=Joao.Pinto@synopsys.com \
    --cc=Jose.Abreu@synopsys.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /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).