0
jmaus

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

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...

Share this post


Link to post
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. 

Share this post


Link to post
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)?!?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
0