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.

AM6548: AM6548 SR 2.x: PRU Ethernet in U-boot

Part Number: AM6548


Hi TI team

we want to use PRU-ICSSG2 ethernet with AM65x SR2.x in u-boot (SDK: TI Linux-RT 07_03_00_08, Board: AM65x SR2.x IDK EVM).
Your Uboot Networking documentation ( https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM65X/07_03_00_08/exports/docs/linux/Foundational_Components/U-Boot/UG-Network.html?highlight=cpsw# ) fits only to AM65x SR1 boards.


I have tried the following u-boot commands, but it fails:

setenv firmware_dir '/lib/firmware/ti-pruss'
setenv ethact pruss2_eth
setenv get_firmware_mmc 'load mmc 1:2 ${loadaddr} ${firmware_dir}/${firmware_file}'
setenv start_icssg2 'rproc start 14; rproc start 15; rproc start 16'
setenv load_icssg2_pru0_fw 'setenv firmware_file am65x-sr2-pru0-prueth-fw.elf; setenv loadaddr 0x89000000; run get_firmware_mmc; rproc load 14 0x89000000 $filesize; rproc start 14'
setenv load_icssg2_rtu0_fw 'setenv firmware_file am65x-sr2-rtu0-prueth-fw.elf; setenv loadaddr 0x8a000000; run get_firmware_mmc; rproc load 15 0x8a000000 $filesize; rproc start 15'
setenv load_icssg2_txpru0_fw 'setenv firmware_file am65x-sr2-txpru0-prueth-fw.elf; setenv loadaddr 0x8b000000; run get_firmware_mmc; rproc load 16 0x8b000000 $filesize; rproc start 16'

setenv init_icssg2 'rproc init; run load_icssg2_pru0_fw; run load_icssg2_rtu0_fw; run load_icssg2_txpru0_fw'

run init_icssg2
run start_icssg2
setenv ipaddr 192.168.0.100
setenv netmask 255.255.255.0
run start_icssg2
ping 192.168.0.10

I get following u-boot outputs:

=> setenv firmware_dir '/lib/firmware/ti-pruss'
=> setenv ethact pruss2_eth
=> setenv get_firmware_mmc 'load mmc 1:2 ${loadaddr} ${firmware_dir}/${firmware_file}'
=> setenv start_icssg2 'rproc start 14; rproc start 15; rproc start 16'
=> setenv load_icssg2_pru0_fw 'setenv firmware_file am65x-sr2-pru0-prueth-fw.elf; setenv loadaddr 0x89000000; run get_firmware_mmc; rproc load 14 0x89000000 $filesize; rproc start 14'
=> setenv load_icssg2_rtu0_fw 'setenv firmware_file am65x-sr2-rtu0-prueth-fw.elf; setenv loadaddr 0x8a000000; run get_firmware_mmc; rproc load 15 0x8a000000 $filesize; rproc start 15'
=> setenv load_icssg2_txpru0_fw 'setenv firmware_file am65x-sr2-txpru0-prueth-fw.elf; setenv loadaddr 0x8b000000; run get_firmware_mmc; rproc load 16 0x8b000000 $filesize; rproc start 16'
=> setenv init_icssg2 'rproc init; run load_icssg2_pru0_fw; run load_icssg2_rtu0_fw; run load_icssg2_txpru0_fw'
=> run init_icssg2
35544 bytes read in 9 ms (3.8 MiB/s)
Load Remote Processor 14 with data@addr=0x89000000 35544 bytes: Success!
29080 bytes read in 8 ms (3.5 MiB/s)
Load Remote Processor 15 with data@addr=0x8a000000 29080 bytes: Success!
32536 bytes read in 9 ms (3.4 MiB/s)
Load Remote Processor 16 with data@addr=0x8b000000 32536 bytes: Success!
=> run start_icssg2
=> setenv ipaddr 192.168.0.100
=> setenv netmask 255.255.255.0
=> run start_icssg2
=> ping 192.168.0.10
Ring Accelerator probed rings:286, gp-rings[96,32] sci-dev-id:195
dma-ring-reset-quirk: enabled
RX dma flow id bad, expected 0, actual 2
link up on port 0, speed 1000, full duplex
Using pruss2_eth device

ARP Retry count exceeded; starting again
ping failed; host 192.168.0.10 is not alive

What does not fit there yet? Can you please give us a short updated description how to use the PRU-ICSS2 with AM65x SR2.x in u-boot.

Regards, Alex