Re: Ethernet reinit on phyCORE hangs the device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sascha,

On 14. 06. 22 10:27, Sascha Hauer wrote:
On Tue, Jun 14, 2022 at 09:12:23AM +0200, Andrej Picej wrote:
Hi all,

when testing barebox ethernet on i.MX6 (phyCORE) we encountered a bug:
the ethernet re-init on barebox doesn't work! If we do:
$ ifup eth0
$ ifdown eth0
and then:
$ ifup eth0
$ ping HOST_IP
the device hangs and can only be saved by resetting the board manually.

I can confirm the behaviour is the same here.

Great.



We narrowed the problem down to the "fec_tx_task_enable". It seems that
enabling tx task with writing to TDAR reg hangs the device shortly after.

Did you guys maybe encounter something similar on i.MX6 boards or on any
other boards?

I guess this is a really specific problem as people don't normally do
ifup/ifdown with ethernet in bootloader :D.

Nope :)


Do you have any idea what could be the reason or how could this be solved?
Any useful information would be greatly appreciated.

Part of the problem is that fec_halt() tears down the device completely.
The counterpart of that is fec_init(), but that is called from during
probe only. I think fec_init() should be called from fec_open() as well.

Hmm I thought I already tried that, guess not...


A quick test revealed this is really only part of the problem. The next
one is that fec_update_linkspeed() is not called on second open, so the
fec speed registers will not get their correct value.

Ok, I'll check that out.
Thanks for your help so far.

Andrej




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux