From: Sven Schuchmann <schuchmann@schleissheimer.de>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: AW: assert in phylink.c with lan7801 and dp83tc811 since kernel 6.18
Date: Thu, 7 May 2026 06:52:03 +0000 [thread overview]
Message-ID: <BEZP281MB2245BB0FC7DA18B285BD564CD93C2@BEZP281MB2245.DEUP281.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <24815161-68ff-4f3e-b0e1-286871b9686a@lunn.ch>
Hi Andew,
thanks for the detailed explanation! Indeed adding
.get_features = genphy_c45_pma_read_ext_abilities,
to "dp83tc811.c" makes the network work again:
[ 2.253619] usb 1-1.3: new high-speed USB device number 3 using dwc2
[ 2.342774] usb 1-1.3: New USB device found, idVendor=0424, idProduct=7801, bcdDevice= 3.00
[ 2.342810] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2.342820] usb 1-1.3: Product: LAN7801
[ 2.342828] usb 1-1.3: Manufacturer: Microchip
[ 2.342835] usb 1-1.3: SerialNumber: 00800F780100
[ 2.353766] lan78xx 1-1.3:1.0 (unnamed net_device) (uninitialized): deferred multicast write 0x00007ca0
[ 2.466961] systemd[1]: System time advanced to timestamp on /var/lib/systemd/timesync/clock: Thu 2026-05-07 08:03:39 CEST
[ 2.500632] lan78xx 1-1.3:1.0 (unnamed net_device) (uninitialized): registered mdiobus bus usb-001:003
[ 2.500675] lan78xx 1-1.3:1.0 (unnamed net_device) (uninitialized): int urb period 64
[ 2.500877] lan78xx 1-1.3:1.0 (unnamed net_device) (uninitialized): phydev->irq = 37
[ 2.511949] lan78xx 1-1.3:1.0 (unnamed net_device) (uninitialized): PHY usb-001:003:00 doesn't supply possible interfaces
[ 2.511990] lan78xx 1-1.3:1.0 (unnamed net_device) (uninitialized): PHY [usb-001:003:00] driver [TI DP83TC811] (irq=37)
[ 2.512005] lan78xx 1-1.3:1.0 (unnamed net_device) (uninitialized): phy: rgmii-id setting supported 00000000,00000008,00000000,00006000 advertising 00000000,00000008,00000000,00006000
[...]
[ 10.336369] lan78xx 1-1.3:1.0 broadr1: configuring for phy/rgmii-id link mode
[ 10.336397] lan78xx 1-1.3:1.0 broadr1: major config, requested phy/rgmii-id
[ 10.336422] lan78xx 1-1.3:1.0 broadr1: major config, active phy/none/rgmii-id
[ 10.336432] lan78xx 1-1.3:1.0 broadr1: phylink_mac_config: mode=phy/rgmii-id/none adv=00000000,00000000,00000000,00000000 pause=00
[ 10.337360] lan78xx 1-1.3:1.0 broadr1: PHY INTR: 0x00020000
[ 10.341302] lan78xx 1-1.3:1.0 broadr1: receive multicast hash filter
[ 10.341445] lan78xx 1-1.3:1.0 broadr1: receive multicast hash filter
[ 10.342409] lan78xx 1-1.3:1.0 broadr1: deferred multicast write 0x00007ca2
[ 10.345161] lan78xx 1-1.3:1.0 broadr1: phy link up rgmii-id/100Mbps/Full/none/off/nolpi
[ 10.347681] lan78xx 1-1.3:1.0 broadr1: start tx path
[ 10.348201] lan78xx 1-1.3:1.0 broadr1: start rx path
[ 10.348730] lan78xx 1-1.3:1.0 broadr1: Link is Up - 100Mbps/Full - flow control off
I think it is worth doing a patch on this also?
I am not that experienced in sending kernel patches but I could try...
Regards,
Sven
________________________________________
Von: Andrew Lunn <andrew@lunn.ch>
Gesendet: Mittwoch, 06. Mai 2026 18:40
An: Sven Schuchmann <schuchmann@schleissheimer.de>
Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>; netdev@vger.kernel.org <netdev@vger.kernel.org>
Betreff: Re: assert in phylink.c with lan7801 and dp83tc811 since kernel 6.18
> phylink_dbg(pl, "phy: --3.4 supported 0x%x\n", supported);
supported is a pointer, so you cannot get anything useful from
printing its value.
> [ 2.771616] lan78xx 1-1.4:1.0 (unnamed net_device) (uninitialized): validation of rgmii-id with support 00000000,00000000,00000000,00006280 and advertisement 00000000,00000000,00000000,00006280 failed: -EINVAL
> But I do not get what phylink_is_empty_linkmode() is doing...
The supported value is a combination of a few things. It indicates if
the PHY supports auto negotiation, pause, asym pause, if the link is
using twisted pair, fibre etc. It also lists the speeds the PHY
supports. There is a list here:
https://elixir.bootlin.com/linux/v7.0.1/source/include/uapi/linux/ethtool.h#L1963
Decoding 00006280 we get:
ETHTOOL_LINK_MODE_TP_BIT,
ETHTOOL_LINK_MODE_MII_BIT,
ETHTOOL_LINK_MODE_Pause_BIT,
ETHTOOL_LINK_MODE_Asym_Pause_BIT
So Maxime was correct, it is not listing any link speeds. From what i
understand, it is a 100BaseT1? So you would expect to see:
ETHTOOL_LINK_MODE_100baseT1_Full_BIT
which is bit 67.
phylib asks the PHY what it can do. For BaseT1 that would be
genphy_c45_pma_baset1_read_abilities()
https://elixir.bootlin.com/linux/v7.0.1/source/drivers/net/phy/phy-c45.c#L971
either the PHY has the wrong value in its register, or the function is
not getting called.
The PHY is an dp83tc811?
https://elixir.bootlin.com/linux/v7.0.1/source/drivers/net/phy/dp83tc811.c#L387
It does not set .get_features. However, dp83tg720.c does:
https://elixir.bootlin.com/linux/v7.0.1/source/drivers/net/phy/dp83tg720.c#L654
So try adding:
.get_features = genphy_c45_pma_read_ext_abilities,
Andrew
next prev parent reply other threads:[~2026-05-07 6:52 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-05 9:53 assert in phylink.c with lan7801 and dp83tc811 since kernel 6.18 Sven Schuchmann
2026-05-05 13:13 ` Andrew Lunn
2026-05-06 11:10 ` AW: " Sven Schuchmann
2026-05-06 12:39 ` Andrew Lunn
2026-05-06 13:04 ` Maxime Chevallier
2026-05-06 13:18 ` Andrew Lunn
2026-05-06 16:00 ` AW: " Sven Schuchmann
2026-05-06 16:40 ` Andrew Lunn
2026-05-07 6:52 ` Sven Schuchmann [this message]
2026-05-07 12:49 ` Andrew Lunn
2026-05-06 13:15 ` Andrew Lunn
2026-05-06 14:36 ` AW: " Sven Schuchmann
2026-05-06 12:30 ` Sven Schuchmann
2026-05-06 12:52 ` Andrew Lunn
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=BEZP281MB2245BB0FC7DA18B285BD564CD93C2@BEZP281MB2245.DEUP281.PROD.OUTLOOK.COM \
--to=schuchmann@schleissheimer.de \
--cc=andrew@lunn.ch \
--cc=maxime.chevallier@bootlin.com \
--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