From: Xiaolei Wang <xiaolei.wang@windriver.com>
To: andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Phy with reset-gpio fails to read phy id during kexec -e
Date: Wed, 16 Jul 2025 15:55:30 +0800 [thread overview]
Message-ID: <ab95299d-d986-4e2b-9464-44e3467556e3@windriver.com> (raw)
Hi
During kexec -e, I found that the network card did not work when loading
the kernel.
I found that some phys used reset-gpios. When kexec -e is running,
the network port will do_ifdown, and phy_detach() will be called at
this time, which will call phy_device_reset(phydev, 1); to keep phy in
reset state.
After loading the kernel, since phy is always in reset state, the mdio
controller fails to access phy id. Therefore, if phy uses reset-gpios
during kexec -e, the network port will not work. However, I have not
found a better solution. Can anyone give some suggestions?
kexec -e:
phy is always in reset state
pca953x_gpio_set_value+0x8c/0xf8
gpiochip_set+0x60/0x12c
gpiod_set_raw_value_commit+0xe8/0x1e4
gpiod_set_value_nocheck+0x58/0xe4
gpiod_set_value_cansleep+0x4c/0xa8
mdio_device_reset+0x48/0x158
phy_detach+0x144/0x258
phy_disconnect+0x54/0x74
fec_enet_close+0x58/0x218
After loading kernel, reading phy id will report an error:
mdio_bus 42890000.ethernet-1: MDIO device at address 2 is missing
__of_mdiobus_parse_phys+0x260/0x338
__of_mdiobus_register+0x118/0x28c
fec_probe+0x173c/0x199c
thanks
xiaolei
next reply other threads:[~2025-07-16 8:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-16 7:55 Xiaolei Wang [this message]
2025-07-16 10:51 ` Phy with reset-gpio fails to read phy id during kexec -e Russell King (Oracle)
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=ab95299d-d986-4e2b-9464-44e3467556e3@windriver.com \
--to=xiaolei.wang@windriver.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.