Our customer wants to use the PRU_ICSSG Ethernet in U-Boot.
They are using the Processor SDK Linux 08.00.00.04 and have loaded the firmware using RemoteProc with the following documents, the PRU_ICSSG Ethernet in U-Boot works via port 0 of ICSSG2 on EVM with SR1.0, but not on EVM with SR2.0.
software-dl.ti.com/.../UG-Network.html
software-dl.ti.com/.../UG-RemoteProc.html
=> rproc init
=> rproc list
0 - Name:'r5f@41000000' type:'internal memory mapped' supports: load start stop reset
1 - Name:'r5f@41400000' type:'internal memory mapped' supports: load start stop reset
2 - Name:'pru0_0' type:'internal memory mapped' supports: load start stop
3 - Name:'rtu0_0' type:'internal memory mapped' supports: load start stop
4 - Name:'tx_pru0_0' type:'internal memory mapped' supports: load start stop
5 - Name:'pru0_1' type:'internal memory mapped' supports: load start stop
6 - Name:'rtu0_1' type:'internal memory mapped' supports: load start stop
7 - Name:'tx_pru0_1' type:'internal memory mapped' supports: load start stop
8 - Name:'pru1_0' type:'internal memory mapped' supports: load start stop
9 - Name:'rtu1_0' type:'internal memory mapped' supports: load start stop
10 - Name:'tx_pru1_0' type:'internal memory mapped' supports: load start stop
11 - Name:'pru1_1' type:'internal memory mapped' supports: load start stop
12 - Name:'rtu1_1' type:'internal memory mapped' supports: load start stop
13 - Name:'tx_pru1_1' type:'internal memory mapped' supports: load start stop
14 - Name:'pru2_0' type:'internal memory mapped' supports: load start stop
15 - Name:'rtu2_0' type:'internal memory mapped' supports: load start stop
16 - Name:'tx_pru2_0' type:'internal memory mapped' supports: load start stop
17 - Name:'pru2_1' type:'internal memory mapped' supports: load start stop
18 - Name:'rtu2_1' type:'internal memory mapped' supports: load start stop
19 - Name:'tx_pru2_1' type:'internal memory mapped' supports: load start stop
=>
=> fatload mmc 1:1 0x80000000 ti-pruss/am65x-sr2-pru0-prueth-fw.elf
36316 bytes read in 3 ms (11.5 MiB/s)
=> rproc load 14 0x80000000 8ddc
Load Remote Processor 14 with data@addr=0x80000000 36316 bytes: Success!
=> fatload mmc 1:1 0x80000000 ti-pruss/am65x-sr2-rtu0-prueth-fw.elf
29944 bytes read in 4 ms (7.1 MiB/s)
=> rproc load 15 0x80000000 74f8
Load Remote Processor 15 with data@addr=0x80000000 29944 bytes: Success!
=> fatload mmc 1:1 0x80000000 ti-pruss/am65x-sr2-txpru0-prueth-fw.elf
35916 bytes read in 4 ms (8.6 MiB/s)
=> rproc load 16 0x80000000 8c4c
Load Remote Processor 16 with data@addr=0x80000000 35916 bytes: Success!
=> rproc start 14
=> rproc start 15
=> rproc start 16
=> env set ethact icssg2-eth
=> ping 192.168.10.50
prueth icssg2-eth: RX dma flow id bad, expected 0, actual 2
link up on port 0, speed 1000, full duplex
Using icssg2-eth device
ARP Retry count exceeded; starting again
ping failed; host 192.168.10.50 is not alive
=>
The documentation for network boot seems to support only SR1.0.
As enumerated by the "rproc list" the remotecore for port 0 of ICSSG2 should be 14, 15, 16.
For SR2.0 the firmware should use the following.
For Port 0:
"ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
"ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
"ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
For Port 1:
"ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
"ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
"ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
What is the address to which each firmware is loaded?
What are the other differences between SR2.0 and SR1.0 for PRU_ICSSG Ethernet in U-Boot?
In other thread, the PRU_ICSSG Ethernet in U-Boot has been reported to fail, but has not been resolved.
e2e.ti.com/.../am6548-am6548-sr-2-x-pru-ethernet-in-u-boot-with-ti-sdk-8-0
Best regards,
Daisuke