A64-OlinuXino-2Ge16G-IND Ethernet not always available after powerup

Started by TJK, February 08, 2024, 05:45:32 AM

Previous topic - Next topic

TJK

We experienced issues with the Ethernet not always being available after power-up.
Measured the PHY reset signal and found that it basically follows the supply rails and therefor the PHY is not in a reset state during and after power-up.
We removed the resistor R117 and soldered it to R118. The modification moves the PHY reset from EPHY-RST# to RESET_N.
The RESET_N signal provides a 70ms delay from power supplies being stable to reset transitioning from low to high. The PHY require a minimum of 10ms reset.
The modification fixed the Ethernet issue.
Is there a SW fix that resolved the issue of the reset signal EPHY-RST#?




LubOlimex

Thank you for the info, looking at the schematic it is possible. Can you give us more details about the hang and how can we replicate it empirically here. If we can force it and see it here, we can work to fix it. Also how often does the hang happens (like 1 in 10 power ups or what is the rate), does it happen with more than one board, any info that would help us hang the board in same manner as you is welcome,

It is not an problem to change the resistors for future hardware revisions.

I don't think there software fixes since we were not aware of the issue, it is also weird that this gets brought up after so many years of manufacturing the A64 board...
Technical support and documentation manager at Olimex

TJK

We saw the error via the terminal message and it was that the Ethernet was not configured and then SW could not use the Ethernet.

Most of the boards (6 x boards) we were testing were working correctly at room temperature (25⁰C) and high temperature (60⁰C). Some (2 x boards) showed the issue intermittently at 25⁰C. All the boards however showed the issue when we made them cold. We were not able to get Ethernet to work below -10⁰C before we did the Ethernet PHY reset modification. After the modification the Ethernet was working correctly at -20⁰C. We soaked the boards at -20⁰C for 1 hour, powered the boards and then tested the Ethernet functionality .

Below are failed and good Kernel boots, failed and good Ethernet info copied from the terminal.


Failed Kernel booting
Welcome to Debian GNU/Linux 11 (bullseye)!

[  OK  ] Created slice system-getty.slice.
[  OK  ] Created slice system-modprobe.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice User and Session Slice.
[  OK  ] Started Dispatch Password ...ts to Console Directory Watch.
[  OK  ] Started Forward Password R...uests to Wall Directory Watch.
[  OK  ] Set up automount Arbitrary...s File System Automount Point.
[  OK  ] Reached target Local Encrypted Volumes.
[  OK  ] Reached target Paths.
[  OK  ] Reached target Remote File Systems.
[  OK  ] Reached target Slices.
[  OK  ] Reached target Swap.
[  OK  ] Listening on Syslog Socket.
[  OK  ] Listening on fsck to fsckd communication Socket.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on Journal Audit Socket.
[  OK  ] Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket.
[  OK  ] Listening on udev Control Socket.
[  OK  ] Listening on udev Kernel Socket.
        Mounting Huge Pages File System...
        Mounting POSIX Message Queue File System...
        Mounting Kernel Debug File System...
        Mounting Kernel Trace File System...
        Starting Restore / save the current clock...
        Starting Set the console keyboard layout...
        Starting Create list of st...odes for the current kernel...
        Starting Load Kernel Module configfs...
        Starting Load Kernel Module drm...
        Starting Load Kernel Module fuse...
[  OK  ] Started Nameserver information manager.
[  OK  ] Reached target Network (Pre).
        Starting Journal Service...
        Starting Load Kernel Modules...
        Starting Remount Root and Kernel File Systems...
        Starting Coldplug All udev Devices...
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Mounted Kernel Trace File System.
[  OK  ] Finished Restore / save the current clock.
[  OK  ] Finished Create list of st... nodes for the current kernel.
[  OK  ] Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Module fuse.
[  OK  ] Finished Load Kernel Modules.
[  OK  ] Finished Remount Root and Kernel File Systems.
        Mounting FUSE Control File System...
        Mounting Kernel Configuration File System...
        Starting Load/Save Random Seed...
        Starting Apply Kernel Variables...
        Starting Create System Users...
[  OK  ] Finished Set the console keyboard layout.
[  OK  ] Started Journal Service.
[  OK  ] Mounted FUSE Control File System.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Finished Apply Kernel Variables.
[  OK  ] Finished Create System Users.
        Starting Flush Journal to Persistent Storage...
        Starting Create Static Device Nodes in /dev...
[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Local File Systems (Pre).
[  OK  ] Reached target Local File Systems.
        Starting Set console font and keymap...
        Starting Create Volatile Files and Directories...
        Starting Rule-based Manage...for Device Events and Files...
[  OK  ] Finished Set console font and keymap.
[  OK  ] Finished Create Volatile Files and Directories.
        Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Finished Update UTMP about System Boot/Shutdown.
[  OK  ] Finished Coldplug All udev Devices.
        Starting Helper to synchronize boot up for ifupdown...
[  OK  ] Started Rule-based Manager for Device Events and Files.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily apt download activities.
[  OK  ] Started Daily apt upgrade and clean activities.
[  OK  ] Started Periodic ext4 Onli...ata Check for All Filesystems.
[  OK  ] Started Discard unused blocks once a week.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily man-db regeneration.
[  OK  ] Started Run system activit...ounting tool every 10 minutes.
[  OK  ] Started Generate summary o...esterday's process accounting.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started Regular background program processing daemon.
[  OK  ] Started D-Bus System Message Bus.
        Starting Network Manager...
        Starting Remove Stale Onli...t4 Metadata Check Snapshots...
        Starting LSB: Load kernel ...d to enable cpufreq scaling...
[  OK  ] Started Realtek H5 bluetooth support.
        Starting LCD-OLinuXino RTP calibrabion...
        Starting Authorization Manager...
[  OK  ] Started Provides the RWS an interface to the radar.
        Starting System Logging Service...
        Starting Resets System Activity Logs...
        Starting User Login Management...
        Starting WPA supplicant...
[  OK  ] Found device /dev/ttyGS0.
[  OK  ] Finished Resets System Activity Logs.
[  OK  ] Found device /dev/ttyS2.
[  OK  ] Started System Logging Service.
[  OK  ] Finished LCD-OLinuXino RTP calibrabion.
[  OK  ] Finished Load/Save Random Seed.
[  OK  ] Started User Login Management.
[  OK  ] Started WPA supplicant.
[  OK  ] Finished Remove Stale Onli...ext4 Metadata Check Snapshots.
[  OK  ] Started LSB: Load kernel m...ded to enable cpufreq scaling.
[  OK  ] Started Authorization Manager.
[  OK  ] Started Network Manager.
[  OK  ] Finished Helper to synchronize boot up for ifupdown.
[  OK  ] Reached target Hardware activated USB gadget.
        Starting Modem Manager...
        Starting Save/Restore Sound Card State...
        Starting LSB: set CPUFreq kernel parameters...
        Starting Raise network interfaces...
        Starting Hostname Service...
[  OK  ] Finished Save/Restore Sound Card State.
[  OK  ] Reached target Sound Card.
[  OK  ] Stopped Provides the RWS an interface to the radar.
[  OK  ] Started Provides the RWS an interface to the radar.
[  OK  ] Started LSB: set CPUFreq kernel parameters.
        Starting LSB: Set sysfs variables from /etc/sysfs.conf...
[  OK  ] Started LSB: Set sysfs variables from /etc/sysfs.conf.
[  OK  ] Started Hostname Service.
[  OK  ] Listening on Load/Save RF ...itch Status /dev/rfkill Watch.
[  OK  ] Started Modem Manager.
[FAILED] Failed to start Raise network interfaces.
See 'systemctl status networking.service' for details.
[  OK  ] Reached target Network.
        Starting Network Manager Script Dispatcher Service...
        Starting Network Time Service...
        Starting OpenBSD Secure Shell server...
        Starting Permit User Sessions...
[  OK  ] Started Network Manager Script Dispatcher Service.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyGS0.
[  OK  ] Started Serial Getty on ttyS2.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started Network Time Service.
[  OK  ] Started OpenBSD Secure Shell server.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
        Starting Update UTMP about System Runlevel Changes...
[  OK  ] Finished Update UTMP about System Runlevel Changes.


Failed Ethernet info
olimex(rw)$ sudo ifconfig -a
[sudo] password for olimex:
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 192  bytes 15552 (15.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 192  bytes 15552 (15.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


Good Kernel booting
Welcome to Debian GNU/Linux 11 (bullseye)!

[  OK  ] Created slice system-getty.slice.
[  OK  ] Created slice system-modprobe.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice User and Session Slice.
[  OK  ] Started Dispatch Password ...ts to Console Directory Watch.
[  OK  ] Started Forward Password R...uests to Wall Directory Watch.
[  OK  ] Set up automount Arbitrary...s File System Automount Point.
[  OK  ] Reached target Local Encrypted Volumes.
[  OK  ] Reached target Paths.
[  OK  ] Reached target Remote File Systems.
[  OK  ] Reached target Slices.
[  OK  ] Reached target Swap.
[  OK  ] Listening on Syslog Socket.
[  OK  ] Listening on fsck to fsckd communication Socket.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on Journal Audit Socket.
[  OK  ] Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket.
[  OK  ] Listening on udev Control Socket.
[  OK  ] Listening on udev Kernel Socket.
        Mounting Huge Pages File System...
        Mounting POSIX Message Queue File System...
        Mounting Kernel Debug File System...
        Mounting Kernel Trace File System...
        Starting Restore / save the current clock...
        Starting Set the console keyboard layout...
        Starting Create list of st...odes for the current kernel...
        Starting Load Kernel Module configfs...
        Starting Load Kernel Module drm...
        Starting Load Kernel Module fuse...
[  OK  ] Started Nameserver information manager.
[  OK  ] Reached target Network (Pre).
        Starting Journal Service...
        Starting Load Kernel Modules...
        Starting Remount Root and Kernel File Systems...
        Starting Coldplug All udev Devices...
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Mounted Kernel Trace File System.
[  OK  ] Finished Restore / save the current clock.
[  OK  ] Finished Create list of st... nodes for the current kernel.
[  OK  ] Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Module fuse.
[  OK  ] Finished Load Kernel Modules.
[  OK  ] Finished Remount Root and Kernel File Systems.
        Mounting FUSE Control File System...
        Mounting Kernel Configuration File System...
        Starting Load/Save Random Seed...
        Starting Apply Kernel Variables...
        Starting Create System Users...
[  OK  ] Started Journal Service.
[  OK  ] Finished Set the console keyboard layout.
[  OK  ] Mounted FUSE Control File System.
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Finished Apply Kernel Variables.
[  OK  ] Finished Create System Users.
        Starting Flush Journal to Persistent Storage...
        Starting Create Static Device Nodes in /dev...
[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Local File Systems (Pre).
[  OK  ] Reached target Local File Systems.
        Starting Set console font and keymap...
        Starting Create Volatile Files and Directories...
        Starting Rule-based Manage...for Device Events and Files...
[  OK  ] Finished Set console font and keymap.
[  OK  ] Finished Create Volatile Files and Directories.
        Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Finished Update UTMP about System Boot/Shutdown.
[  OK  ] Finished Coldplug All udev Devices.
        Starting Helper to synchronize boot up for ifupdown...
[  OK  ] Started Rule-based Manager for Device Events and Files.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily apt download activities.
[  OK  ] Started Daily apt upgrade and clean activities.
[  OK  ] Started Periodic ext4 Onli...ata Check for All Filesystems.
[  OK  ] Started Discard unused blocks once a week.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily man-db regeneration.
[  OK  ] Started Run system activit...ounting tool every 10 minutes.
[  OK  ] Started Generate summary o...esterday's process accounting.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started Regular background program processing daemon.
[  OK  ] Started D-Bus System Message Bus.
        Starting Network Manager...
        Starting Remove Stale Onli...t4 Metadata Check Snapshots...
        Starting LSB: Load kernel ...d to enable cpufreq scaling...
[  OK  ] Started Realtek H5 bluetooth support.
        Starting LCD-OLinuXino RTP calibrabion...
        Starting Authorization Manager...
[  OK  ] Started Provides the RWS an interface to the radar.
        Starting System Logging Service...
        Starting Resets System Activity Logs...
        Starting User Login Management...
        Starting WPA supplicant...
[  OK  ] Found device /dev/ttyGS0.
[  OK  ] Found device /dev/ttyS2.
[  OK  ] Finished Resets System Activity Logs.
[  OK  ] Started System Logging Service.
[  OK  ] Finished LCD-OLinuXino RTP calibrabion.
[  OK  ] Finished Load/Save Random Seed.
[  OK  ] Started WPA supplicant.
[  OK  ] Started Authorization Manager.
[  OK  ] Finished Remove Stale Onli...ext4 Metadata Check Snapshots.
[  OK  ] Started LSB: Load kernel m...ded to enable cpufreq scaling.
[  OK  ] Finished Helper to synchronize boot up for ifupdown.
[  OK  ] Started User Login Management.
[  OK  ] Started Network Manager.
[  OK  ] Reached target Hardware activated USB gadget.
        Starting Modem Manager...
        Starting Save/Restore Sound Card State...
        Starting LSB: set CPUFreq kernel parameters...
        Starting Raise network interfaces...
        Starting Hostname Service...
[  OK  ] Finished Save/Restore Sound Card State.
[  OK  ] Reached target Sound Card.
[  OK  ] Stopped Provides the RWS an interface to the radar.
[  OK  ] Started Provides the RWS an interface to the radar.
[  OK  ] Started LSB: set CPUFreq kernel parameters.
        Starting LSB: Set sysfs variables from /etc/sysfs.conf...
[  OK  ] Started LSB: Set sysfs variables from /etc/sysfs.conf.
[  OK  ] Started Hostname Service.
[  OK  ] Started Modem Manager.
[  OK  ] Listening on Load/Save RF ...itch Status /dev/rfkill Watch.
        Starting Network Manager Script Dispatcher Service...
[  OK  ] Finished Raise network interfaces.
[  OK  ] Reached target Network.
        Starting Network Time Service...
        Starting OpenBSD Secure Shell server...
        Starting Permit User Sessions...
[  OK  ] Started Network Manager Script Dispatcher Service.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyGS0.
[  OK  ] Started Serial Getty on ttyS2.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started Network Time Service.
[  OK  ] Started OpenBSD Secure Shell server.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
        Starting Update UTMP about System Runlevel Changes...
[  OK  ] Finished Update UTMP about System Runlevel Changes.

Debian GNU/Linux 11 a64-olinuxino ttyS2


Good Ethernet info
olimex(rw)$ sudo ifconfig -a
[sudo] password for olimex:
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 169.254.1.25  netmask 255.255.0.0  broadcast 169.254.255.255
        ether 02:ba:7a:a0:43:bd  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 43

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 106  bytes 8880 (8.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 106  bytes 8880 (8.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0