[U-Boot] [PATCH v2 03/10] tiny-printf: Reorder code to support %p

Simon Glass sjg at chromium.org
Fri Jan 31 03:27:59 CET 2020


Hi Faiz,

On Thu, 30 Jan 2020 at 08:22, Faiz Abbas <faiz_abbas at ti.com> wrote:
>
> Hi Simon,
>
> On 22/10/19 4:56 am, Simon Glass wrote:
> > With a bit of code reordering we can support %p using the existing code
> > for ulong.
> >
> > Move the %p code up and adjust the logic accordingly.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
>
> This patch seems to have broken Ethernet boot in am335x-evm for me. It
> seems to be caused by SPL not being able to set ethaddr variable but its
> not obvious to me why this would cause it to happen. Here's a log:
>
> Trying to boot from USB eth
> ## Error: flags type check failure for "ethaddr" <= "40309f20M" (type: m)
> ## Error inserting "ethaddr" variable, errno=1
>
> Warning: eth_cpsw using MAC address from ROM
> eth0: eth_cpsw## Error: flags type check failure for "eth1addr" <=
> "81f01098M" (type: m)
> ## Error inserting "eth1addr" variable, errno=1
>
> Warning: usb_ether using MAC address from ROM
> , eth1: usb_ether
> eth_cpsw Waiting for PHY auto negotiation to complete...... done
> link up on port 0, speed 1000, full duplex
> BOOTP broadcast 1
> BOOTP broadcast 2
> BOOTP broadcast 3
> BOOTP broadcast 4
> BOOTP broadcast 5
> BOOTP broadcast 6
> BOOTP broadcast 7
> BOOTP broadcast 8
> BOOTP broadcast 9
> BOOTP broadcast 10
> BOOTP broadcast 11
> BOOTP broadcast 12
> BOOTP broadcast 13
> BOOTP broadcast 14
> BOOTP broadcast 15
> BOOTP broadcast 16
> BOOTP broadcast 17
>
> Retry time exceeded; starting again
> Problem booting with BOOTP
> SPL: failed to boot from all boot devices
> ### ERROR ### Please RESET the board ###
>
> Reverting this patch on the latest U-boot master fixes the issue for me.
>
> I'll look into this more deeply tomorrow. Let me know if you see
> something obviously wrong with the patch.

Well one thing is that eth_env_set_enetaddr() called from the board's
board.c has this:

sprintf(buf, "%pM", enetaddr);

which is not supported with tiny-printf.

Before my patch it would probably produce an empty string, but now it
will produce garbage. Perhaps need an SPL check there.

Regards,
Simon


More information about the U-Boot mailing list