I'm trying to use the PRU-ICSS as the ethernet interface for an EtherCAT master application.
The HW is the PCM-953 carrier board for phyCORE-AM335x of Phytec.
The Linux kernel PRU driver is coming from this repository:
git://git.phytec.de/linux-ti branch origin/v4.4.15-phy
Note that if I use the PRU-ICSS ethernet interface with some standard protocols (IP, TCP, DHCP, ...), it works without any failure.
In the case I use this interface for an EtherCAT master application (an EtherCAT frame is sent every 10ms), it doesn't work as expected. If I connect directly the PRU-ICSS to an EtherCAT slave through an Ethernet cable (crossed or not crossed), it doesn't work!!! There isn't any interrupt generated by the PRU firmware (checked with "cat /proc/interrupts"). It seems that the PRU firmware is frozen because there won't be anymore interrupt generated, even if I connect this interface to my computer to get an IP address though my DHCP server (what it works very well if I reboot my target!).
In the case I use the CPSW ethernet interface instead of the PRU-ICSS interface, it works very well. My EtherCAT master application runs without any failure.
In the case the EtherCAT master and the slave are connected trough a LAN switch, it also works very well (even with the PRU-ICSS)! 100 interrupts per seconds are generated.
I cannot find any explanation! According ethtool the interface is correctly configured (100 Mbit/s, full duplex). Note that the EtherCAT frame is sent and received back almost simultaneously (~1 microsecond delay).
Thanks for your help

