No receive interrupt generated by the PRU-ICSS

Hello,

I have an issue with my custom board, based on BeagleBone and Sitara AM3357.
The problem concerns the PRU which is configured as a dual EMAC mode (2 additional Ethernet interfaces).

Til now, my board was working perfectly with this Linux Kernel 5.4:

branch: 5.4

The device tree, for the kernel 5.4, looks as follow:

#include "am33xx.dtsi"

	/* Dual mac ethernet application node on icss */
	pruss_eth {
		compatible = "ti,am3359-prueth";
		prus = <&pru0>, <&pru1>;
		firmware-name = "ti-pruss/am335x-pru0-prueth-fw.elf",
				"ti-pruss/am335x-pru1-prueth-fw.elf";
		sram = <&ocmcram>;
		interrupt-parent = <&pruss_intc>;
		syscon = <&scm_conf>;
		mii-rt = <&pruss_mii_rt>;
		iep = <&pruss_iep>;
		pinctrl-names = "default";
		pinctrl-0 = <&pruss_eth_default>;

		pruss_emac0: mii0 {
			phy-handle = <&pruss_eth0_phy>;
			phy-mode = "mii";
			interrupts = <20>, <22>;
			interrupt-names = "rx", "tx";
			// Filled in by cm macid
			local-mac-address = [00 00 00 00 00 00];
		};
		pruss_emac1: mii1 {
			phy-handle = <&pruss_eth1_phy>;
			phy-mode = "mii";
			interrupts = <21>, <23>;
			interrupt-names = "rx", "tx";
			// Filled in by cm macid
			local-mac-address = [00 00 00 00 00 00];
		};
	};

I have to upgrade the Linux kernel to the branch 5.10
So, I simply upgraded the kernel with the branch 5.10 instead of 5.4.
I also adapted the device tree as follow:

#include "am33xx.dtsi"

	/* Dual mac ethernet application node on icss */
	pruss_eth {
		compatible = "ti,am3359-prueth";
		ti,prus = <&pru0>, <&pru1>;
		sram = <&ocmcram>;
		interrupt-parent = <&pruss_intc>;
		syscon = <&scm_conf>;
		mii-rt = <&pruss_mii_rt>;
		iep = <&pruss_iep>;
		pinctrl-names = "default";
		pinctrl-0 = <&pruss_eth_default>;

		pruss_emac0: mii0 {
			phy-handle = <&pruss_eth0_phy>;
			phy-mode = "mii";
			interrupts = <20 2 2>;
			interrupt-names = "rx";
			// Filled in by cm macid
			local-mac-address = [00 00 00 00 00 00];
		};
		pruss_emac1: mii1 {
			phy-handle = <&pruss_eth1_phy>;
			phy-mode = "mii";
			interrupts = <21 3 3>;
			interrupt-names = "rx";
			// Filled in by cm macid
			local-mac-address = [00 00 00 00 00 00];
		};
	};

The board is now booting with this kernel 5.10 (5.10.109-ti-r45). The PRU seems to be loaded properly:

[    5.423003] remoteproc remoteproc0: 4a334000.pru is available
[    5.430454] remoteproc remoteproc1: 4a338000.pru is available
[    5.495547] davinci_mdio 4a332400.mdio: phy[1]: device 4a332400.mdio:01, driver TI DP83822
[    5.503927] davinci_mdio 4a332400.mdio: phy[3]: device 4a332400.mdio:03, driver TI DP83822
[    5.515831] prueth pruss_eth: could not get ptp tx irq. Skipping PTP support
[    5.522987] prueth pruss_eth: could not get hsr ptp tx irq. Skipping PTP support
[    5.530595] prueth pruss_eth: port 1: CM MAC addr: 0c:1c:57:f6:24:c1
[    5.571619] prueth pruss_eth: could not get ptp tx irq. Skipping PTP support
[    5.578758] prueth pruss_eth: could not get hsr ptp tx irq. Skipping PTP support
[    5.586404] prueth pruss_eth: port 2: CM MAC addr: 0c:1c:57:f6:24:c2
[    5.622686] prueth pruss_eth: TI PRU ethernet driver initialized: dual EMAC mode
[    8.365810] remoteproc remoteproc0: powering up 4a334000.pru
[    8.410743] remoteproc remoteproc0: Booting fw image ti-pruss/am335x-pru0-prueth-fw.elf, size 7432
[    8.480460] remoteproc remoteproc0: unsupported resource 5
[    8.535570] remoteproc remoteproc0: remote processor 4a334000.pru is now up
[    8.624477] net ethernet-mii0: started
[    9.051609] remoteproc remoteproc1: powering up 4a338000.pru
[    9.156561] remoteproc remoteproc1: Booting fw image ti-pruss/am335x-pru1-prueth-fw.elf, size 7344
[    9.221244] remoteproc remoteproc1: unsupported resource 5
[    9.285041] remoteproc remoteproc1: remote processor 4a338000.pru is now up
[    9.381515] net ethernet-mii1: started

When starting a dhcp client on one of these 2 ethernet interfaces, my dhcp server receives a DHCP discover request and send back a DHCP offer. It means that the sending is working as expected.
But I didn’t receive any interrupt from the PRU:
myname@myhost:~$ cat /proc/interrupts
CPU0

 63:          0  pruss-intc  20 Level     mii0
 64:          0  pruss-intc  21 Level     mii1

It means the IP traffic is not catched by the PRU.
The question is:
Does anybody already successfully configured the PRU in ethernet mode with a kernel 5.10 from the beaglebone
repository ?

Many thanks in advance

Fixed with the latest SDK!
PROCESSOR-SDK-LINUX-AM335X
Version: 08.02.00.24 Release date: 19 May 2022