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.

DRA829V: J721E: cpsw9g: No Phys defined for Ethernet switch board

Part Number: DRA829V

Hello,

As I was looking into another issue reported on E2E about remote IPC firmware not working as expected, I came to realize that main-r5f0_0 remoteproc loads /lib/firmware/app_remoteswitchcfg_server_pdk_mem_map_strip.xer5f provided by cpsw9g-eth-fw recipe. This is the Ethernet switch firmware provided by PSDKLA Release 06.02.00.

One would expect that the corresponding Ethernet interfaces would be available under Linux, but I see that no phys have been defined for main_r5fss_cpsw9g_virt_mac0 node in k3-j721e-common-proc-board.dts. Serial output of this firmware shows the following error:

Enabling clocks for CPSW_9G!
=======================================================
           CPSW Ethernet Firmware Demo             
=======================================================
ETHFW Version: 0. 1. 1
ETHFW Build Date (YYYY/MMM/DD):2020/Feb/10
ETHFW Commit SHA:ETHFW PermissionFlag:0x1ffffff, UART Connected:true,UART Id:2CpswAppBoardUtils_getMacAddrList Failed - GESI/ENET board not present
IPC_echo_test (core : mcu2_0) .....
Assertion @ Line: 691 in V1/cpsw_appboardutils_j721e_evm.c: false : failed !!!

Here's the log from Linux:

root@j7-evm:~# lsmod | grep j721e
j721e_cpsw_virt_mac   262144  0
snd_soc_j721e_evm     262144  0
root@j7-evm:~# 
root@j7-evm:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 78:db:2f:df:b2:b1 brd ff:ff:ff:ff:ff:ff
root@j7-evm:~# 
root@j7-evm:~# ls -l /lib/firmware/j7-*
lrwxrwxrwx    1 root     root            64 Feb 17  2020 /lib/firmware/j7-c66_0-fw -> /lib/firmware/pdk-ipc/ipc_echo_test_c66xdsp_1_release.strip.xe66
lrwxrwxrwx    1 root     root            64 Feb 17  2020 /lib/firmware/j7-c66_1-fw -> /lib/firmware/pdk-ipc/ipc_echo_test_c66xdsp_2_release.strip.xe66
lrwxrwxrwx    1 root     root            60 Feb 17  2020 /lib/firmware/j7-c71_0-fw -> /lib/firmware/pdk-ipc/ipc_echo_test_c7x_1_release.strip.xe71
lrwxrwxrwx    1 root     root            64 Feb 17  2020 /lib/firmware/j7-main-r5f0_0-fw -> /lib/firmware/app_remoteswitchcfg_server_pdk_mem_map_strip.xer5f
lrwxrwxrwx    1 root     root            62 Feb 17  2020 /lib/firmware/j7-main-r5f0_1-fw -> /lib/firmware/pdk-ipc/ipc_echo_test_mcu2_1_release.strip.xer5f
lrwxrwxrwx    1 root     root            62 Feb 17  2020 /lib/firmware/j7-main-r5f1_0-fw -> /lib/firmware/pdk-ipc/ipc_echo_test_mcu3_0_release.strip.xer5f
lrwxrwxrwx    1 root     root            62 Feb 17  2020 /lib/firmware/j7-main-r5f1_1-fw -> /lib/firmware/pdk-ipc/ipc_echo_test_mcu3_1_release.strip.xer5f
lrwxrwxrwx    1 root     root            63 Feb 17  2020 /lib/firmware/j7-mcu-r5f0_0-fw -> /lib/firmware/pdk-ipc/ipc_echo_testb_mcu1_0_release.strip.xer5f
lrwxrwxrwx    1 root     root            62 Feb 17  2020 /lib/firmware/j7-mcu-r5f0_1-fw -> /lib/firmware/pdk-ipc/ipc_echo_test_mcu1_1_release.strip.xer5f
lrwxrwxrwx    1 root     root            49 Feb 17  2020 /lib/firmware/j7-pru0_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out
lrwxrwxrwx    1 root     root            49 Feb 17  2020 /lib/firmware/j7-pru0_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out
lrwxrwxrwx    1 root     root            49 Feb 17  2020 /lib/firmware/j7-pru1_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out
lrwxrwxrwx    1 root     root            49 Feb 17  2020 /lib/firmware/j7-pru1_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out
lrwxrwxrwx    1 root     root            49 Feb 17  2020 /lib/firmware/j7-rtu0_0-fw -> /lib/firmware/pru/RTU_RPMsg_Echo_Interrupt0_0.out
lrwxrwxrwx    1 root     root            49 Feb 17  2020 /lib/firmware/j7-rtu0_1-fw -> /lib/firmware/pru/RTU_RPMsg_Echo_Interrupt0_1.out
lrwxrwxrwx    1 root     root            49 Feb 17  2020 /lib/firmware/j7-rtu1_0-fw -> /lib/firmware/pru/RTU_RPMsg_Echo_Interrupt1_0.out
lrwxrwxrwx    1 root     root            49 Feb 17  2020 /lib/firmware/j7-rtu1_1-fw -> /lib/firmware/pru/RTU_RPMsg_Echo_Interrupt1_1.out
lrwxrwxrwx    1 root     root            35 Feb 17  2020 /lib/firmware/j7-txpru0_0-fw -> /lib/firmware/pru/TX_PRU_Halt_0.out
lrwxrwxrwx    1 root     root            35 Feb 17  2020 /lib/firmware/j7-txpru0_1-fw -> /lib/firmware/pru/TX_PRU_Halt_1.out
lrwxrwxrwx    1 root     root            35 Feb 17  2020 /lib/firmware/j7-txpru1_0-fw -> /lib/firmware/pru/TX_PRU_Halt_0.out
lrwxrwxrwx    1 root     root            35 Feb 17  2020 /lib/firmware/j7-txpru1_1-fw -> /lib/firmware/pru/TX_PRU_Halt_1.out

Is this solution a work in progress, or am I at error in expecting the interfaces to be available under Linux?