Debian 11.9 network / eth0 not starting

Hi,

I have several Beaglebone Black for an industrial project with network issue that I would like some help with.

The units are flashed with (from the download page):
am335x-eMMC-flasher-debian-11.8-iot-armhf-2023-10-07-4gb.img.xz

then:

sudo apt update
sudo apt -y upgrade.
cat /etc/debian_version
11.9
uname -a
Linux BeagleBone 5.10.168-ti-r77 #1bullseye SMP PREEMPT Wed Feb 28 21:05:58 UTC 2024 armv7l GNU/Linux

The network/eth0 works as expected after the first installation for hours.
During this time, I can reboot, power cycles, halt, abrupt power loss by just unplugging the power cable/usb on a running system, wait 10-15 minute without any power to the unit. This works on multiple routers from different brand/models and multiple power supplies, USB keyboards/hdmi connected/disconnected.

However, if the unit is disconnected from power over night then some units do not start up the network interface again. The network/NIC LEDs lights up for about 5-10s and then turns off as soon as the heartbeat on the BBB indicator LED starts. Network do not turn on again. This issue seem to have a hardware dependency of the BBB. I have tried multiple power supplies and routers. Nothing brings up the eth0 but network over usb0 works.

I also found out that if I leave the SD-card with the flash image mentioned above mounted but without pressing S2 button, then the BBB “boot” from the SD but does not reinstall the image. If I now reboot without the SD card, network will work for a few hours but the process repeats it self after few hours.

I have also re-generated (from MachineId - Debian Wiki)
/etc/machine-id
/var/lib/dbus/machine-id

Does anyone have some pointers what the problem seem to be?

Some simple checks:

sudo systemctl status networking.service
[sudo] password for debian:
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2024-03-26 22:31:27 UTC; 10h ago
Docs: man:interfaces(5)
Process: 579 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=0/SUCCESS)
Main PID: 579 (code=exited, status=0/SUCCESS)
CPU: 222ms

Jun 18 14:56:02 BeagleBone systemd[1]: Starting Raise network interfaces…
Mar 26 22:31:27 BeagleBone systemd[1]: Finished Raise network interfaces.

debian@evdc-05:~$ dmesg | grep ether
[ 11.091824] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[ 11.091851] cpsw 4a100000.ethernet: ALE Table size 1024
[ 11.092045] cpsw 4a100000.ethernet: cpts: overflow check period 1250 (jiffies)
[ 11.092128] cpsw 4a100000.ethernet: Detected MACID = f4:b8:98:8b:06:85
[ 29.884415] cpsw 4a100000.ethernet: initializing cpsw version 1.12 (0)
[ 29.896668] cpsw 4a100000.ethernet: phy “/ocp/interconnect@4a000000/segment@0/target-module@100000/ethernet@0/mdio@1000/ethernet-phy@0” not found on slave 0
[ 43.279200] using random self ethernet address
[ 43.279228] using random host ethernet address
[ 43.718445] using random self ethernet address
[ 43.718473] using random host ethernet address

ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether f4:b8:98:8b:06:85 brd ff:ff:ff:ff:ff:ff
3: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10
link/can
4: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f4:b8:98:8b:06:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.7.2/24 brd 192.168.7.255 scope global usb0
valid_lft forever preferred_lft forever
inet6 fe80::f6b8:98ff:fe8b:688/64 scope link
valid_lft forever preferred_lft forever
5: usb1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f4:b8:98:8b:06:8a brd ff:ff:ff:ff:ff:ff
inet 192.168.6.2/24 brd 192.168.6.255 scope global usb1
valid_lft forever preferred_lft forever
inet6 fe80::f6b8:98ff:fe8b:68a/64 scope link
valid_lft forever preferred_lft forever

We have had a driver hack hanging around since 3.8.x to make this work, however in mid v5.x kernel TI pushed a new cpsw driver, so our old hack no longer works… patches/drivers/ti/cpsw/0001-cpsw-search-for-phy.patch · ti-linux-4.19.y · Robert Nelson / ti-linux-kernel-dev · GitLab

Options, stick with the older v4.19.x-ti branch, or remove C24 from your board to make it similar to the RevC3 pcb’s…

Regards,

my state:
4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000

Hi!
I have a similar problem, my eth0 does not detect any connection of the cable (cable checked and tested on 1Gb). I have tried all versions from debian 10 and above, while connecting a separate usb-eth adapter detects and works.
Maybe there is some kind of blocking at the board level?
I have a beagleboard-green.