Auto negotiation bug on RasPi 3b+

Open
#4,341 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
c, linux, raspberry-pi

Research direction

Start by reproducing the failure on a Raspberry Pi 3B+ with the LAN7515 and the CM3+ carrier's XR22800 Ethernet chip, using the direct connection described. Compare repeated device swaps with and without an Ethernet switch; done means auto-negotiation continues working across the test sequence.

Written by the indexing model from the issue text.

Description

Describe the bug
There seems to be a bug on raspberry pi 3b+ with lan7515 chips where auto negotiation on the Ethernet fails to work after some random period.

To reproduce
We are using the raspberry pi 3b+ as a test rig for Raspberry pi cm3+ based boards. We plug it in via Ethernet connection. Cm3 carrier has a maxlinear/exar xr22800 Eth chip.

One test rig will test a device, device unplugged, new one plugged in and tested... And then repeat.

This will work for the first 1 or 2 times (sometimes more, it seems random) and then eventually will fail to work anymore.

Putting an Ethernet switch between the two and it works flawlessly.

This is repeatable on 10 test rigs we have set up.

Expected behaviour
Auto negotiation should work at all times

Actual behaviour
Auto negotiation fails

System

  • Which model of Raspberry Pi? e.g. Pi3B+, PiZeroW

Pi3b+

  • Which OS and version (cat /etc/rpi-issue)?

Latest raspios

  • Which firmware version (vcgencmd version)?

Latest

  • Which kernel version (uname -a)?

Latest

Copying in @ryanteck as well as he may know more about the versions and setup.

Dominant language
C
Stars
13.2k
Forks
5.5k
Avg merge
2d 21h
Merged PRs (30d)
21

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from raspberrypi/linux

All issues in raspberrypi/linux

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.