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
next prev 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).