netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: John Linn <john.linn@xilinx.com>,
	Michal Simek <michals@xilinx.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: Srikanth Thokala <srikanth.thokala@xilinx.com>,
	Soren Brinkmann <sorenb@xilinx.com>,
	"monstr@monstr.eu" <monstr@monstr.eu>,
	Anirudha Sarangi <anirudh@xilinx.com>
Subject: Re: [PATCH 01/12] net: axienet: Support for RGMII
Date: Tue, 05 May 2015 21:32:29 -0700	[thread overview]
Message-ID: <5549995D.2070407@gmail.com> (raw)
In-Reply-To: <8C367E791021814DA6CAFCCCD4EFC2297C97A227@XSJ-PSEXMBX01.xlnx.xilinx.com>

Le 05/05/15 05:54, John Linn a écrit :
> Hi Michal,
> 
> I removed the mailing lists.
> 
> One of the issues we see in the field is that the value of PHY_INTERFACE_MODE_RGMII_ID causes a delay on the RX and TX side in the PHY to align the clock and the data. Yet this does not work on every board such that         PHY_INTERFACE_MODE_RGMII_RXID or        PHY_INTERFACE_MODE_RGMII_TXID must be used.
> 
> I realize that's a pain.  Sometimes the PHY driver allows register values (like Marvell) to be setup on the PHY node which helps, but not always.  It seems that the information in the device tree is not adequate to describe the hardware. I've not looked to see what others do as maybe this is a common problem, just thought I should pass on the problem.

There is a standard Device Tree node property described in
Documentation/devicetree/bindings/net/ethernet.txt: phy-mode which
allows you to specify exactly this: whether you should have your TX data
and clocks aligned or shifted.

See include/linux/phy.h in the kernel for how the string translates into
a given PHY_INTERFACE_MODE_* value.

If your concern is more about whether the fact that given PHY driver
should support RGMII_ID, RGMII_TXID and RGMII_RXID, all of this is
typically extremely specific to the board (PCB), Ethernet MAC and
Ethernet PHY, so unless there is the need to configure that, it may just
be that people use the default values that happen to work for them
without much research on the subject.

> 
> Thanks
> John
> 
> -----Original Message-----
> From: Michal Simek [mailto:monstr@monstr.eu] On Behalf Of Michal Simek
> Sent: Tuesday, May 05, 2015 4:26 AM
> To: netdev@vger.kernel.org
> Cc: Srikanth Thokala; Soren Brinkmann; monstr@monstr.eu; John Linn; Anirudha Sarangi; linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org
> Subject: [PATCH 01/12] net: axienet: Support for RGMII
> 
> From: Srikanth Thokala <srikanth.thokala@xilinx.com>
> 
> This patch adds support for the RGMII. The h/w configuration parameter C_PHY_TYPE, which represents the interface configured in the design, is used to differentiate various interfaces supported by AXI Ethernet.
> 
> Signed-off-by: Srikanth Thokala <sthokal@xilinx.com>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> ---
> 
>  drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> index 28b7e7d9c272..0ab607732bb4 100644
> --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> @@ -925,9 +925,16 @@ static int axienet_open(struct net_device *ndev)
>                 return ret;
> 
>         if (lp->phy_node) {
> -               lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node,
> +               if (lp->phy_type == XAE_PHY_TYPE_GMII) {
> +                       lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node,
>                                              axienet_adjust_link, 0,
>                                              PHY_INTERFACE_MODE_GMII);
> +               } else if (lp->phy_type == XAE_PHY_TYPE_RGMII_2_0) {
> +                       lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node,
> +                                            axienet_adjust_link, 0,
> +                                            PHY_INTERFACE_MODE_RGMII_ID);
> +               }
> +
>                 if (!lp->phy_dev) {
>                         dev_err(lp->dev, "of_phy_connect() failed\n");
>                         return -ENODEV;
> --
> 2.3.5
> 
> 
> 
> This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
Florian

  parent reply	other threads:[~2015-05-06  4:32 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-05  9:25 [PATCH 01/12] net: axienet: Support for RGMII Michal Simek
2015-05-05  9:25 ` [PATCH 02/12] net: axienet: Handle 0 packet receive gracefully Michal Simek
2015-05-05  9:58   ` Shubhrajyoti Datta
2015-05-05 13:57   ` Joe Perches
2015-05-05 18:49     ` Michal Simek
2015-05-05 18:53       ` Joe Perches
2015-05-05  9:25 ` [PATCH 03/12] net: axienet: Service completion interrupts ASAP Michal Simek
2015-05-05  9:25 ` [PATCH 04/12] net: axienet: Handle jumbo frames for lesser frame sizes Michal Simek
2015-05-05  9:25 ` [PATCH 05/12] net: axienet: Support phy-less mode of operation Michal Simek
2015-05-05  9:25 ` [PATCH 06/12] net: axienet: Removed coding style errors and warnings Michal Simek
2015-05-05  9:26 ` [PATCH 07/12] net: axienet: Fix comments blocks Michal Simek
2015-05-05  9:26 ` [PATCH 08/12] net: axienet: Use pdev instead of op Michal Simek
2015-05-05  9:26 ` [PATCH 09/12] net: axienet: Use devm_* calls Michal Simek
2015-05-05  9:26 ` [PATCH 10/12] net: axienet: Use of_property_* calls Michal Simek
2015-05-05  9:26 ` [PATCH 11/12] net: axienet: Removed _of_ prefix in probe and remove functions Michal Simek
2015-05-05  9:26 ` [PATCH 12/12] net: axienet: Fix kernel-doc warnings Michal Simek
2015-05-05 12:54 ` [PATCH 01/12] net: axienet: Support for RGMII John Linn
2015-05-05 14:59   ` David Miller
2015-05-06  4:32   ` Florian Fainelli [this message]
2015-05-05 23:35 ` David Miller
2015-05-06  5:29   ` Michal Simek

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=5549995D.2070407@gmail.com \
    --to=f.fainelli@gmail.com \
    --cc=anirudh@xilinx.com \
    --cc=john.linn@xilinx.com \
    --cc=michals@xilinx.com \
    --cc=monstr@monstr.eu \
    --cc=netdev@vger.kernel.org \
    --cc=sorenb@xilinx.com \
    --cc=srikanth.thokala@xilinx.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).