On Fri, Aug 07, 2026 at 01:25:45PM +0200, Mehmet Fide wrote: > From: Mehmet Fide <[email protected]> > > The Toradex config block is read by settings_r(), which is reachable > only as an event spy: > > EVENT_SPY_SIMPLE(EVT_SETTINGS_R, settings_r); > > board_r.c does call INITCALL_EVT(EVT_SETTINGS_R) unconditionally, but > with CONFIG_EVENT disabled event_notify_null() is an empty inline, so > the spy is never reached and settings_r() never runs. Nothing else > selects EVENT for colibri_vf, and CONFIG_EVENT has no prompt, so a > defconfig cannot turn it on by itself. > > The effect is that serial#, ethaddr and eth1addr are never populated > from the config block. serial# in turn is what fdt_root() copies into > the device tree as "serial-number", so Linux loses > /proc/device-tree/serial-number along with anything deriving a MAC > address or a device identity from it. The failure is quiet: a module > whose saved environment predates the conversion to the event framework > keeps the old values and looks healthy until the environment is > rewritten. > > Verified on a Colibri VF50. Before the change "printenv serial#" > reports "not defined" and no "MISSING TORADEX CONFIG BLOCK" is > printed, which is the signature of the spy never running. After it the > banner shows > > Model: Toradex 0013 Colibri VF50 128MB IT V1.2B > Serial#: 03135809 > > and Linux finds /proc/device-tree/serial-number again. > > TDX_CFG_BLOCK cannot work without the spy, so select what it needs. > > Signed-off-by: Mehmet Fide <[email protected]>
Fixes: 118b17b84fc7 ("toradex: common: Use SETTINGS_R event to read toradex
config block")
Reviewed-by: Tom Rini <[email protected]>
--
Tom
signature.asc
Description: PGP signature
