]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
net: stmmac: dwmac-motorcomm: fix eFUSE MAC address read failure
authorJohan Alvarado <contact@c127.dev>
Mon, 6 Apr 2026 07:44:25 +0000 (07:44 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 8 Apr 2026 01:21:00 +0000 (18:21 -0700)
commitf2777d5cb5c094e20f2323d953b1740baee5f8e8
tree102f61b82a9c5eb9144a422693bd8c8bf0f28fc6
parent95aca8602ef70ffd3d971675751c81826e124f90
net: stmmac: dwmac-motorcomm: fix eFUSE MAC address read failure

This patch fixes an issue where reading the MAC address from the eFUSE
fails due to a race condition.

The root cause was identified by comparing the driver's behavior with a
custom U-Boot port. In U-Boot, the MAC address was read successfully
every time because the driver was loaded later in the boot process, giving
the hardware ample time to initialize. In Linux, reading the eFUSE
immediately returns all zeros, resulting in a fallback to a random MAC address.

Hardware cold-boot testing revealed that the eFUSE controller requires a
short settling time to load its internal data. Adding a 2000-5000us
delay after the reset ensures the hardware is fully ready, allowing the
native MAC address to be read consistently.

Fixes: 02ff155ea281 ("net: stmmac: Add glue driver for Motorcomm YT6801 ethernet controller")
Reported-by: Georg Gottleuber <ggo@tuxedocomputers.com>
Closes: https://lore.kernel.org/24cfefff-1233-4745-8c47-812b502d5d19@tuxedocomputers.com
Signed-off-by: Johan Alvarado <contact@c127.dev>
Reviewed-by: Yao Zi <me@ziyao.cc>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/fc5992a4-9532-49c3-8ec1-c2f8c5b84ca1@smtp-relay.sendinblue.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-motorcomm.c