Jump to content

no-link on ethernet on initial powerup with rockchip-next + tinkerboard


jmaus

Recommended Posts

Hello,

 

I am using the armbian kernel+uboot patchset of the rockchip-next (4.14.x) part to support Tinkerboard+TinkerboardS in an own home automation environment. U-Boot 2018.05 and kernel 4.14.53 are working fine so far with the current patchset published on GitHub (thanks for this great work!). However, the only issue I am still having is, that the ethernet port always comes up with "no-link" on the intial powerup of the Tinkerboard. As soon as I software reboot it after the initial powerup the ethernet port perfectly comes up with a link and I am able to setup all IP data, etc. But as soon as I completely power down the system and replug the power-cable it again comes up with "no link" and it requires another software reboot to recover with the ethernet reporting a link and being able to setup it accordingly. 

 

Does the same happen with Armbian and rockchip-next and might there be a patch or explanation for the issue or any hint in how I can workaround the issue until the root is identified and fixed?

 

Any help is highly appreciated...

Link to comment
Share on other sites

13 minutes ago, jmaus said:

Does the same happen with Armbian and rockchip-next and might there be a patch or explanation for the issue or any hint in how I can workaround the issue until the root is identified and fixed?


I haven't noticed this problem. Without digging in, I can't tell and I will not be digging in soon due to "out of office". Try to use stock u-boot (or our older ones) if that changes anything otherwise a small and stupid bash startup script can serve as a workaround until we fix this. 

Link to comment
Share on other sites

I actually analysed the issue once more and found out that the issue actually seems to be related to the way I am bringing up network interfaces in the buildroot-based system I am using. Here I have an init.d based startup script (S40network) which first brings up the network interface via `ip link set eth0 up`, then waits 5 seconds and then performs a check if /sys/class/net/eth0/carrier changed to the value 1 or if it is still 0 and then stops initialisation for a certain network device and continues with the other ones (see here for the network startup script I am using). This was actually working perfectly fine for all RaspberryPis I am supporting and was also not a problem with the rockchip-default version of the patches (kernel 4.4.x). However, something must have changed in kernel 4.14.x or rockchip-next because these 5 seconds seem to be not enough anymore if a Tinkerboard is powerup up for the first time. And for every reboot from then it seems to be enough again. Nevertheless I was able to workaround the issue by simply setting the delay to 10 seconds. In fact, for the final version I changed my network startup script to use while loop to check for the carrier in regular intervals (2 seconds) and up to a maximum time of 12 seconds. Still the question remains why the ethernet device takes more than 5 seconds until the network link settled while after a reboot this seem to take under 5 seconds again?!? And why didn't the issue manifest itself with rockchip-default (kernel 4.4.x)?!?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines