From: "Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>
To: Stefan Eichenberger <eichest@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Dimitri Fedrau <dima.fedrau@gmail.com>,
Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org
Subject: Re: [net-next 3/3] net: phy: marvell-88q2xxx: Enable auto negotiation for mv88q2110
Date: Sat, 5 Oct 2024 13:08:34 +0200 [thread overview]
Message-ID: <20241005110834.GC3563898@ragnatech.se> (raw)
In-Reply-To: <ZvQKU02iGgcq5Mzp@eichest-laptop>
Hello Stefan,
On 2024-09-25 15:04:19 +0200, Stefan Eichenberger wrote:
> Hi Niklas,
>
> On Sat, Sep 14, 2024 at 04:21:36PM +0200, Niklas Söderlund wrote:
> > Hello,
> >
> > On 2024-09-14 16:00:01 +0200, Stefan Eichenberger wrote:
> > > Hi Niklas and Andrew,
> > >
> > > I was able to do a first basic test on my setup. I'm using the MV88Q2110
> > > and connecting it to a Göpel media converter that I use as a reference.
> >
> > Thanks for testing this work.
> >
> > > However, with your patch applied, I can't get a link. When I set a fixed
> > > link speed of 1GBit/s and the media converter is configured as the
> > > master, I can normally do:
> > > ethtool -s end1 speed 1000 master-slave forced-slave
> > > After that, the link came up. However, with the changes made, I can't do
> > > this anymore. Can you reproduce this in your setup?
> >
> > Without this patch I can't bring up a 1GBit/s link at all, I can only
> > setup a 100 MBit/s link with,
> >
> > ethtool -s eth1 speed 100 master-slave forced-slave
> >
> > If I do the same with speed set to a 1000 I never get a link. That's why
> > autoneg is a such a boon for me, as with that I do get a 1 Gbit/s link.
> >
> > As you have the MV88Q2110 datasheets, can you check the register writes
> > in mv88q2110_init_seq0 and mv88q2110_init_seq1 for sanity? Maybe
> > something is not quiet right there, I have only been able to reveres
> > engineer support for autoneg so it's quiet likely.
>
> Unfortunately this registers are not documented in the datasheet.
> However, from the software initialization guide the following values
> would be correct for A1 and A2 devices (A0 does not need one write):
> static const struct mmd_val mv88q2110_init_seq1[] = {
> { MDIO_MMD_PCS, 0xffde, 0x402f },
> { MDIO_MMD_PCS, 0xfe2a, 0x3c3d},
> { MDIO_MMD_PCS, 0xfe34, 0x4040 },
> { MDIO_MMD_PCS, 0xfe4b, 0x9337},
> { MDIO_MMD_PCS, 0xfe2a, 0x3c1d },
> { MDIO_MMD_PCS, 0xfe34, 0x0040 },
> { MDIO_MMD_AN, 0x8032, 0x0064 },
> { MDIO_MMD_AN, 0x8031, 0x0a01 },
> { MDIO_MMD_AN, 0x8031, 0x0c01 },
> { MDIO_MMD_PCS, 0xFE0F, 0x0000 },
> { MDIO_MMD_PCS, 0x800C, 0x0000 },
> { MDIO_MMD_PCS, 0x801D, 0x0800 },
> { MDIO_MMD_PCS, 0xfc00, 0x01c0 },
> { MDIO_MMD_PCS, 0xfc17, 0x0425},
> { MDIO_MMD_PCS, 0xfc94, 0x5470},
> { MDIO_MMD_PCS, 0xfc95, 0x0055},
> { MDIO_MMD_PCS, 0xfc19, 0x08d8},
> { MDIO_MMD_PCS, 0xfc1a, 0x0110},
> { MDIO_MMD_PCS, 0xfc1b, 0x0a10},
> { MDIO_MMD_PCS, 0xfc3a, 0x2725},
> { MDIO_MMD_PCS, 0xfc61, 0x2627},
> { MDIO_MMD_PCS, 0xfc3b, 0x1612},
> { MDIO_MMD_PCS, 0xfc62, 0x1c12},
> { MDIO_MMD_PCS, 0xfc9d, 0x6367},
> { MDIO_MMD_PCS, 0xfc9e, 0x8060},
> { MDIO_MMD_PCS, 0xfc00, 0x01c8},
> { MDIO_MMD_PCS, 0x8000, 0x0000},
> { MDIO_MMD_PCS, 0x8016, 0x0011},
> { MDIO_MMD_PCS, 0xfda3, 0x1800}, /* According to datahsheet not for Rev A0 */
> { MDIO_MMD_PCS, 0xfe02, 0x00c0},
> { MDIO_MMD_PCS, 0xffdb, 0x0010},
> { MDIO_MMD_PCS, 0xfff3, 0x0020},
> { MDIO_MMD_PCS, 0xfe40, 0x00a6},
> { MDIO_MMD_PCS, 0xfe60, 0x0000},
> { MDIO_MMD_PCS, 0xfe04, 0x0008},
> { MDIO_MMD_PCS, 0xfe2a, 0x3c3d},
> { MDIO_MMD_PCS, 0xfe4b, 0x9334},
> { MDIO_MMD_PCS, 0xfc10, 0xf600},
> { MDIO_MMD_PCS, 0xfc11, 0x073d},
> { MDIO_MMD_PCS, 0xfc12, 0x000d},
> { MDIO_MMD_PCS, 0xfc13, 0x0010},
> };
>
> On my side, your values and the ones above are working.
Thanks for checking.
>
> By the way, do you know why you only get between 800 and 850 Mbps? On my
> setup I see up to 930 Mbps in bidir mode. Just asking because maybe this
> is the reason why fixed speed doesn't work in your setup (would be weird
> though)?
>
> [ ID][Role] Interval Transfer Bitrate Retr
> [ 5][TX-C] 0.00-10.01 sec 1.09 GBytes 935 Mbits/sec 0 sender
> [ 5][TX-C] 0.00-10.01 sec 1.09 GBytes 932 Mbits/sec receiver
> [ 7][RX-C] 0.00-10.01 sec 1.09 GBytes 933 Mbits/sec 154 sender
> [ 7][RX-C] 0.00-10.01 sec 1.08 GBytes 931 Mbits/sec receiver
I suspect it's due to me hair pining mv88q2110 together on the same SoC.
Unfortunately that is the only test setup I have for this device.
--
Kind Regards,
Niklas Söderlund
next prev parent reply other threads:[~2024-10-05 11:08 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-06 13:39 [net-next 0/3] net: phy: marvell-88q2xxx: Enable auto negotiation for mv88q2110 Niklas Söderlund
2024-09-06 13:39 ` [net-next 1/3] net: phy: marvell-88q2xxx: Align soft reset for mv88q2110 and mv88q2220 Niklas Söderlund
2024-09-10 20:21 ` Andrew Lunn
2024-09-12 16:51 ` Dimitri Fedrau
2024-09-25 12:22 ` Stefan Eichenberger
2024-09-06 13:39 ` [net-next 2/3] net: phy: marvell-88q2xxx: Make register writer function generic Niklas Söderlund
2024-09-06 20:18 ` Andrew Lunn
2024-09-10 20:21 ` Andrew Lunn
2024-09-12 16:52 ` Dimitri Fedrau
2024-09-25 12:23 ` Stefan Eichenberger
2024-09-06 13:39 ` [net-next 3/3] net: phy: marvell-88q2xxx: Enable auto negotiation for mv88q2110 Niklas Söderlund
2024-09-06 20:36 ` Andrew Lunn
2024-09-06 21:39 ` Niklas Söderlund
2024-09-10 16:32 ` Andrew Lunn
2024-09-10 18:02 ` Stefan Eichenberger
2024-09-10 20:18 ` Andrew Lunn
2024-09-10 20:23 ` Andrew Lunn
2024-09-14 14:00 ` Stefan Eichenberger
2024-09-14 14:21 ` Niklas Söderlund
2024-09-14 14:43 ` Andrew Lunn
2024-09-25 13:04 ` Stefan Eichenberger
2024-10-05 11:08 ` Niklas Söderlund [this message]
2024-09-14 14:50 ` Andrew Lunn
2024-09-25 11:56 ` Stefan Eichenberger
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=20241005110834.GC3563898@ragnatech.se \
--to=niklas.soderlund+renesas@ragnatech.se \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=dima.fedrau@gmail.com \
--cc=edumazet@google.com \
--cc=eichest@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=yoshihiro.shimoda.uh@renesas.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).