
Hi Faiz,
On Thu, 30 Jan 2020 at 08:22, Faiz Abbas faiz_abbas@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@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