Hi Marcel,

This regression is also found with mtk_eth driver and I've sent a patch
to fix it:


https://patchwork.ozlabs.org/project/uboot/patch/20250429020424.48795-1-weijie....@mediatek.com/

This patch should also fix the regression on rtl8169 driver

BRs

Weijie

On Tue, 2025-04-29 at 23:52 +0200, Marcel Ziswiler wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> Hi Jerome
> 
> On Fri, 2025-04-04 at 15:50 +0200, Jerome Forissier wrote:
> > This series replaces the dynamic initcalls (with function pointers)
> > with
> > static calls, and gets rid of initcall_run_list(), init_sequence_f,
> > init_sequence_f_r and init_sequence_r. This makes the code simpler
> > and the
> > binary slighlty smaller: -2281 bytes/-0.21 % with LTO enabled and
> > -510
> > bytes/-0.05 % with LTO disabled (xilinx_zynqmp_kria_defconfig).
> > 
> > Execution time doesn't seem to change noticeably. There is no
> > impact on
> > the SPL.
> > 
> > The inline assembly fixes, although they look unrelated, are
> > triggered
> > on some platforms with LTO enabled. For example:
> > kirkwood_defconfig.
> > 
> > CI: 
> > https://urldefense.com/v3/__https://source.denx.de/u-boot/custodians/u-boot-net/-/pipelines/25514__;!!CTRNKA9wMg0ARbw!h0Wu3dmAIj7GcAAl7DMcs-OyDvxKbcP6QQh7EuYYFMB-6OkCPTOUSbqHhuFZWzgImuvWUmPQMzSAwU-I9YiHvwbrcTzq_ymldg$
> 
> This series seems to cause a regression on rock5b. E.g. on today's
> master:
> 
> => pci enum
> => setenv ipaddr 192.168.10.2
> => ping 192.168.10.1
> failed to initialize card: -12
> failed to initialize card: -12
> failed to initialize card: -12
> failed to initialize card: -12
> failed to initialize card: -12
> failed to initialize card: -12
> failed to initialize card: -12
> failed to initialize card: -12
> No ethernet found.
> failed to initialize card: -12
> failed to initialize card: -12
> ping failed; host 192.168.10.1 is not alive
> 
> Seems the rtl8169 driver runs out of memory trying to allocate
> descriptors?
> 
> If I revert this series on top of today's master:
> 
> => pci enum
> => setenv ipaddr 192.168.10.2
> => ping 192.168.10.1
> 
> Warning: eth_rtl8169 MAC addresses don't match:
> Address in DT is                00:e0:4c:68:01:5a
> Address in environment is       fe:b1:db:60:25:69
> Using eth_rtl8169 device
> host 192.168.10.1 is alive
> 
> I just completed the bisection and will now look into what exactly
> could be going on.
> 
> Any insights are much appreciated.
> 
> Thanks!
> 
> > Changes in v6:
> > - Rebase on next branch
> > 
> > Changes in v5:
> > - Fix mistake in initcall_run_r():
> > CONFIG_IS_ENABLED(SYS_EARLY_PCI_INIT)
> > should have been !CONFIG_IS_ENABLED(...). As a result, several CI
> > tests
> > were failing. (Tom R.)
> > - Restore fixes in test/py/tests/test_trace.py and
> > arch/sh/lib/board.c
> > which had unexpectedly disappeared from v4 and caused CI errors.
> > - Fix CI error caused by wrong conditionals on the fix_fdt() call:
> >   tools/buildman/buildman -o /tmp -seP powerpc
> >   [...]
> >   common/board_f.c:752:12: error: 'fix_fdt' defined but not used [-
> > Werror=unused-function]
> > - Add "arm: asm/system.h: mrc and mcr need .arm if __thumb2__ is
> > not set"
> > to fix a build error with LTO detecting mcr/mrc instructions
> > emitted in
> > Thumb mode on a CPU that doesn't support it:
> >   make sheevaplug_defconfig
> >   make -j$(nproc) CROSS_COMPILE="ccache arm-linux-gnueabi-"
> >   [...]
> >     LTO     u-boot
> >   {standard input}: Assembler messages:
> >   {standard input}:9241: Error: selected processor does not support
> > `mcr p15,1,r0,c15,c11,0' in Thumb mode
> >   {standard input}:19196: Error: selected processor does not
> > support `mrc p15,1,r3,c15,c1,0' in Thumb mode
> >   {standard input}:19223: Error: selected processor does not
> > support `mcr p15,1,r3,c15,c1,0' in Thumb mode
> >   {standard input}:19241: Error: selected processor does not
> > support `mrc p15,1,r3,c15,c1,0' in Thumb mode
> >   {standard input}:19268: Error: selected processor does not
> > support `mcr p15,1,r3,c15,c1,0' in Thumb mode
> >   {standard input}:19286: Error: selected processor does not
> > support `mrc p15,1,r3,c15,c1,0' in Thumb mode
> >   {standard input}:19321: Error: selected processor does not
> > support `mcr p15,1,r3,c15,c1,0' in Thumb mode
> >   {standard input}:19341: Error: selected processor does not
> > support `mrc p15,0,r3,c1,c0,0' in Thumb mode
> >   {standard input}:19372: Error: selected processor does not
> > support `mcr p15,0,r3,c1,c0,0' in Thumb mode
> >   make[1]: *** [/tmp/ccu1wZWX.mk:11:
> > /tmp/ccIab81n.ltrans3.ltrans.o] Error 1
> > 
> > Changes in v4:
> > - Fold all changes to board_init_*() into a single patch
> > - Use '#if CONFIG_IS_ENABLED(FOO) INITCALL(init_foo) #endif'
> > instead of
> > 'CONFIG_IS_ENABLED(FOO, (INITCALL(init_foo);));' (Caleb C., Simon
> > G.).
> > As a consequence, drop Michal's patch ("common: board: Simplify
> > array
> > with function pointers with CONFIG_IS_ENABLED").
> > - Rebase on next
> > 
> > Changes in v3:
> > - Use printf() rather than debug() to report initcall failures
> > (Quentin S.)
> > - initcall_run_f(): replace one erroneous call to WATCHDOG_INIT()
> > with
> > WATCHDOG_RESET() (Ilias A.)
> > - Fix relocate_code() in arch/sh/lib/board.c to address CI failures
> > with
> > r2dplus (
> > https://urldefense.com/v3/__https://lists.denx.de/pipermail/u-boot/2025-January/576213.html__;!!CTRNKA9wMg0ARbw!h0Wu3dmAIj7GcAAl7DMcs-OyDvxKbcP6QQh7EuYYFMB-6OkCPTOUSbqHhuFZWzgImuvWUmPQMzSAwU-I9YiHvwbrcTyRLPlZiw$
> >  )
> > (Tom R.)
> > - Add comments to initcall_run_f() and initcall_run_r() (Simon G.)
> > 
> > Changes in v2:
> > - INTICALL() and INITCALL_EVT() now call hang() immediately on
> > error
> > - Fixed typo: s/intcall_run_f_r/initcall_run_f_r/
> > 
> > 
> > Jerome Forissier (3):
> >   arm: asm/system.h: mrc and mcr need .arm if __thumb2__ is not set
> >   common: board: make initcalls static
> >   initcall: remove initcall_run_list()
> > 
> >  arch/arm/include/asm/system.h             |  22 +-
> >  arch/arm/lib/cache.c                      |   5 +-
> >  arch/arm/mach-kirkwood/include/mach/cpu.h |   9 +-
> >  arch/sh/lib/board.c                       |   9 +-
> >  common/board_f.c                          | 223 +++++++++---------
> > -
> >  common/board_r.c                          | 247 +++++++++++-------
> > ----
> >  include/initcall.h                        |  45 ++--
> >  lib/Makefile                              |   1 -
> >  lib/initcall.c                            | 102 ---------
> >  test/py/tests/test_trace.py               |   8 +-
> >  10 files changed, 295 insertions(+), 376 deletions(-)
> >  delete mode 100644 lib/initcall.c
> 
> Cheers
> 
> Marcel

Reply via email to