All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] U-Boot causes ethernet packet loss under Linux
@ 2017-08-20 20:20 Urs Schulz
  2017-08-21  8:10 ` Mark Kettenis
  0 siblings, 1 reply; 3+ messages in thread
From: Urs Schulz @ 2017-08-20 20:20 UTC (permalink / raw)
  To: u-boot

Hey there,

I have several issues with the newer U-Boot versions on my Banana Pi.

I recently decided to upgrade some of my Banana Pis to the latest
U-Boot, the last version I had there was 2015.04. Unfortunately the
upgrade to 2017.05 caused weird packet-losses on the ethernet interface
in Linux (took me several days to find out, that it's actually u-boot
causing the problems). When downgrading to my old 2015.04, everythings
works fine.

The packet loss only occurs in low-load situations, for example with
ping or ssh. I have successfully transfered some large files over the
network with netcat without any issues. So maybe it's some
powersaving-issue with Linux. But obviously, keeping the network
interface under full load at all times can't be the right solution to
the problem. About 10-20% of all packets get lost with ping.

So I had hoped, it is some kind of "temporary issue" fixed in the next
version and today decided to try again with a newer version.
Unfortunately 2017.07 has even more issues:

First, the packet-loss issue hasn't disappeared. Sad.

Second, this version is no longer able to turn on the hdmi interface on
the pi but seems to boot the system (after a minute or so it is
"reachable" via network).

The same applies to 2017.09-rc2.


So I thought, the problem is probably caused, because the newer U-Boot
versions turn on the network interface and configure it (and then linux
fails to reconfigure it correctly, or something).

I therefore tried to compile U-Boot 2017.05 without network support:

I disabled CONFIG_CMD_NET in order to disable CONFIG_NET:

> make CROSS_COMPILE=armv7l-linux-gnueabihf- Bananapi_defconfig
> sed -re 's/^CONFIG_NET=y$/CONFIG_NET=n/' \
>     -e 's/^CONFIG_CMD_NET=y$/CONFIG_CMD_NET=n/' -i .config
> make CROSS_COMPILE=armv7l-linux-gnueabihf- oldconfig
> make CROSS_COMPILE=armv7l-linux-gnueabihf- -j6

This caused linker errors:

[...]
  LD      u-boot
board/sunxi/built-in.o: In function `setup_environment':
/tmp/u-boot-2017.05/board/sunxi/board.c:700: undefined reference to `eth_setenv_enetaddr'
armv7l-linux-gnueabihf-ld.bfd: BFD (GNU Binutils) 2.29 assertion fail ../../binutils-2.29/bfd/elf32-arm.c:9509
make: *** [Makefile:1211: u-boot] Error 1


So, some kind of dependency issue. I checked the .config file and found
several more network-related options and disabled all of them:

CONFIG_CMD_DHCP
CONFIG_CMD_PXE
CONFIG_CMD_NFS
CONFIG_CMD_MII
CONFIG_CMD_PING

In order to make this work, I also had to set:
CONFIG_DISTRO_DEFAULTS=n

Then I ran oldconfig again, double checked the .config and tried
compilation again:

[...]
  CC      common/env_common.o
In file included from include/configs/sunxi-common.h:461:0,
                 from include/configs/sun7i.h:28,
                 from include/config.h:5,
                 from include/common.h:21,
                 from common/env_common.c:11:
include/config_distro_bootcmd.h:305:2: error: expected '}' before 'BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE'
  BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE
  ^
include/config_distro_bootcmd.h:305:2: note: in definition of macro 'BOOTENV_DEV_NAME_PXE'
  BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/configs/sunxi-common.h:442:2: note: in expansion of macro 'BOOTENV_DEV_NAME'
  func(PXE, pxe, na) \
  ^~~~
include/config_distro_bootcmd.h:311:18: note: in expansion of macro 'BOOT_TARGET_DEVICES'
  "boot_targets=" BOOT_TARGET_DEVICES(BOOTENV_DEV_NAME) "\0"
                  ^~~~~~~~~~~~~~~~~~~
include/config_distro_bootcmd.h:328:2: note: in expansion of macro 'BOOTENV_BOOT_TARGETS'
  BOOTENV_BOOT_TARGETS \
  ^~~~~~~~~~~~~~~~~~~~
include/configs/sunxi-common.h:515:2: note: in expansion of macro 'BOOTENV'
  BOOTENV
  ^~~~~~~
include/env_default.h:108:2: note: in expansion of macro 'CONFIG_EXTRA_ENV_SETTINGS'
  CONFIG_EXTRA_ENV_SETTINGS
  ^~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [scripts/Makefile.build:281: common/env_common.o] Error 1
make: *** [Makefile:1234: common] Error 2


Now I'm out of ideas. Looks like disabling CONFIG_DISTRO_DEFAULTS was a
step in the wrong direction.

So my questions are:

1. Is there a way to compile U-Boot without networking support?

2. Or is there a way to fix my package-loss problems in Linux (maybe the
problem lies within the kernel, not U-Boot and U-Boot is just triggering
it).

3. How can I enable the HDMI in the latest U-Boot versions (2017.07 and
2017.09-rc2) on the Banana Pi?


Kind regards
    Urs

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] U-Boot causes ethernet packet loss under Linux
  2017-08-20 20:20 [U-Boot] U-Boot causes ethernet packet loss under Linux Urs Schulz
@ 2017-08-21  8:10 ` Mark Kettenis
  2017-08-22  8:17   ` Peter Robinson
  0 siblings, 1 reply; 3+ messages in thread
From: Mark Kettenis @ 2017-08-21  8:10 UTC (permalink / raw)
  To: u-boot

> Date: Sun, 20 Aug 2017 22:20:13 +0200
> From: Urs Schulz <uboot@ursschulz.de>
> 
> Hey there,
> 
> I have several issues with the newer U-Boot versions on my Banana Pi.
> 
> I recently decided to upgrade some of my Banana Pis to the latest
> U-Boot, the last version I had there was 2015.04. Unfortunately the
> upgrade to 2017.05 caused weird packet-losses on the ethernet interface
> in Linux (took me several days to find out, that it's actually u-boot
> causing the problems). When downgrading to my old 2015.04, everythings
> works fine.
> 
> The packet loss only occurs in low-load situations, for example with
> ping or ssh. I have successfully transfered some large files over the
> network with netcat without any issues. So maybe it's some
> powersaving-issue with Linux. But obviously, keeping the network
> interface under full load at all times can't be the right solution to
> the problem. About 10-20% of all packets get lost with ping.
> 
> So I had hoped, it is some kind of "temporary issue" fixed in the next
> version and today decided to try again with a newer version.
> Unfortunately 2017.07 has even more issues:
> 
> First, the packet-loss issue hasn't disappeared. Sad.
> 
> Second, this version is no longer able to turn on the hdmi interface on
> the pi but seems to boot the system (after a minute or so it is
> "reachable" via network).
> 
> The same applies to 2017.09-rc2.

The GMAC initialization on the Banana Pi has been borked for a while.
It needs:

  https://lists.denx.de/pipermail/u-boot/2017-July/299703.html

But it seems that didn't make it onto master yet.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] U-Boot causes ethernet packet loss under Linux
  2017-08-21  8:10 ` Mark Kettenis
@ 2017-08-22  8:17   ` Peter Robinson
  0 siblings, 0 replies; 3+ messages in thread
From: Peter Robinson @ 2017-08-22  8:17 UTC (permalink / raw)
  To: u-boot

On Mon, Aug 21, 2017 at 9:10 AM, Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
>> Date: Sun, 20 Aug 2017 22:20:13 +0200
>> From: Urs Schulz <uboot@ursschulz.de>
>>
>> Hey there,
>>
>> I have several issues with the newer U-Boot versions on my Banana Pi.
>>
>> I recently decided to upgrade some of my Banana Pis to the latest
>> U-Boot, the last version I had there was 2015.04. Unfortunately the
>> upgrade to 2017.05 caused weird packet-losses on the ethernet interface
>> in Linux (took me several days to find out, that it's actually u-boot
>> causing the problems). When downgrading to my old 2015.04, everythings
>> works fine.
>>
>> The packet loss only occurs in low-load situations, for example with
>> ping or ssh. I have successfully transfered some large files over the
>> network with netcat without any issues. So maybe it's some
>> powersaving-issue with Linux. But obviously, keeping the network
>> interface under full load at all times can't be the right solution to
>> the problem. About 10-20% of all packets get lost with ping.
>>
>> So I had hoped, it is some kind of "temporary issue" fixed in the next
>> version and today decided to try again with a newer version.
>> Unfortunately 2017.07 has even more issues:
>>
>> First, the packet-loss issue hasn't disappeared. Sad.
>>
>> Second, this version is no longer able to turn on the hdmi interface on
>> the pi but seems to boot the system (after a minute or so it is
>> "reachable" via network).
>>
>> The same applies to 2017.09-rc2.
>
> The GMAC initialization on the Banana Pi has been borked for a while.
> It needs:
>
>   https://lists.denx.de/pipermail/u-boot/2017-July/299703.html
>
> But it seems that didn't make it onto master yet.

Looking at patchwork [1] there was one minor fix needed, it also
doesn't apply against master so probably needs a v2 to fix those bits
up, Dave what were your plans for the patch?

We've been seeing something similar in Fedora too which sounds like it
could be this so it would be good to get this in for 2017.09.

[1] http://patchwork.ozlabs.org/patch/793903/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-08-22  8:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-20 20:20 [U-Boot] U-Boot causes ethernet packet loss under Linux Urs Schulz
2017-08-21  8:10 ` Mark Kettenis
2017-08-22  8:17   ` Peter Robinson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.