This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMDS64GPEVM: Yocto Firmware for PRU Ethernet

Part Number: TMDS64GPEVM

Hello

I have TMDS64GPEVM board. Revision PRC101B. Since couple of days I'm struggling with applying k3-am642-evm-icssg1-dualemac.dts overlay to enable RPU support on my board but I have issue during kernel booting:

[    2.262438] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000002
[    2.263850] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
[    2.264265] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
[    2.264275] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    2.272484] pps pps0: new PPS source ptp0
[    2.280630] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
[    2.309580] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    2.351939] TI DP83869 300b2400.mdio:0f: attached PHY driver [TI DP83869] (mii_bus:phy_addr=300b2400.mdio:0f, irq=POLL)
[    2.352713] icssg-prueth icssg1-eth: couldn't connect to phy ethernet-phy@3
[    2.352734] Unable to handle kernel NULL pointer dereference at virtual address 00000000000003a8
[    2.385676] Mem abort info:
[    2.385690] printk: console [ttyS2]: printing thread stopped
[    2.388470]   ESR = 0x96000004
[    2.397174]   EC = 0x25: DABT (current EL), IL = 32 bits
[    2.402498]   SET = 0, FnV = 0
[    2.405570]   EA = 0, S1PTW = 0
[    2.408709] Data abort info:
[    2.411578]   ISV = 0, ISS = 0x00000004
[    2.415416]   CM = 0, WnR = 0
[    2.418392] [00000000000003a8] user address but active_mm is swapper
[    2.424757] Internal error: Oops: 96000004 [#1] PREEMPT_RT SMP
[    2.430577] Modules linked in:
[    2.433627] CPU: 0 PID: 26 Comm: kworker/0:1 Not tainted 5.10.120-rt70+ #1
[    2.440488] Hardware name: Texas Instruments AM642 EVM (DT)
[    2.446050] Workqueue: events deferred_probe_work_func
[    2.451194] pstate: 60000005 (nZCv daif -PAN -UAO -TCO BTYPE=--)
[    2.457188] pc : phy_attached_print+0x2c/0x1a4
[    2.461630] lr : phy_attached_info+0x14/0x20
[    2.465891] sp : ffff8000114f3a10
[    2.469193] x29: ffff8000114f3a10 x28: ffff0000015604c8
[    2.474494] x27: 0000000000030000 x26: 0000000000000000
[    2.479793] x25: ffff00000033a800 x24: ffff00000033a810
[    2.485093] x23: ffff000001560680 x22: ffff00007fc31190
[    2.490393] x21: ffff00007fc30e88 x20: 0000000000000000
[    2.495693] x19: 0000000000000000 x18: fffffffffffe4948
[    2.500993] x17: 0000000000000001 x16: 0000462ca03b9cfc
[    2.506293] x15: 0000000000000050 x14: a6665999a6665999
[    2.511592] x13: 0000000100000000 x12: fffffffffffc4947
[    2.516893] x11: ffff800011171e50 x10: ffff8000111779d0
[    2.522193] x9 : ffff8000114f3a20 x8 : ffff0000002a0ec0
[    2.527492] x7 : 000000000000000e x6 : 000000000000000c
[    2.532793] x5 : 00000000fffff10a x4 : ffff8000114f3840
[    2.538094] x3 : 0000000000000000 x2 : 0000000000000000
[    2.543394] x1 : 0000000000000000 x0 : 0000000000000000
[    2.548696] Call trace:
[    2.551133]  phy_attached_print+0x2c/0x1a4
[    2.555222]  phy_attached_info+0x14/0x20
[    2.559137]  prueth_probe+0x3e0/0xa60
[    2.562793]  platform_drv_probe+0x54/0xb0
[    2.566794]  really_probe+0xf0/0x500
[    2.570359]  driver_probe_device+0xf4/0x160
[    2.574531]  __device_attach_driver+0x8c/0x114
[    2.578963]  bus_for_each_drv+0x78/0xd0
[    2.582791]  __device_attach+0xdc/0x1b0
[    2.586616]  device_initial_probe+0x14/0x20
[    2.590789]  bus_probe_device+0x98/0xa0
[    2.594616]  deferred_probe_work_func+0xa4/0xf4
[    2.599138]  process_one_work+0x1cc/0x350
[    2.603143]  worker_thread+0x2b0/0x460
[    2.606884]  kthread+0x18c/0x1a0
[    2.610105]  ret_from_fork+0x10/0x30
[    2.613678] Code: a9025bf5 a9080fe2 a90917e4 a90a1fe6 (f941d400)
[    2.619758] ---[ end trace 0000000000000002 ]---
[  227.024502] random: crng init done

I'm using Yocto an in my image recipe I'm installing firmware:

IMAGE_INSTALL:append = " prueth-fw-am65x-sr2"

from meta-ti layer.

I have no idea why this overlay isn't working. I was wandering if the issue can be caused by installing wrong PRU firmware. Am I installing correct firmware?

I'm asking for a advice what should I do to make things work... Maybe this official dt overlay need some adjustments to apply to TMDS64GPEVM (Revision PRC101B) device tree?

BR

Jakub