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: ICSSG PRU Ethernet driver

Part Number: AM6548

Hello,

We need build the PRU ethernet driver into kernel, but I found that sometimes the PRU ethernet does not work. I configure these macro to Y in file 'ti-processor-sdk-linux-am65xx-evm-06.01.00.08/board-support/linux-4.19.59+gitAUTOINC+5f8c1c6121-g5f8c1c6121/arch/arm64/configs/tisdk_am65xx-evm_defconfig':

CONFIG_TI_PRUETH=y
CONFIG_TI_ICSSG_PRUETH=y
CONFIG_REMOTEPROC=y
CONFIG_PRU_REMOTEPROC=y
CONFIG_TI_PRUSS=y

The attachment is the log 

pru-eth-log.txt
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
U-Boot SPL 2019.01-g078a3b8701 (Nov 26 2019 - 02:40:43 +0000)
SYSFW ABI: 2.7 (firmware rev 0x0013 '19.9.0-v2019.09 (Terrific Llama')
Trying to boot from MMC2
Starting ATF on ARM64 core...
NOTICE: BL31: v2.2(release):ti2019.05-rc1
NOTICE: BL31: Built : 03:12:47, Nov 24 2019
I/TC:
I/TC: OP-TEE version: ti2019.05-rc1-dev (gcc version 8.3.0 (GNU Toolchain for the A-profile Archit ecture 8.3-2019.03 (arm-rel-8.36))) #1 Sun Nov 24 03:11:59 UTC 2019 aarch64
I/TC: Initialized
U-Boot SPL 2019.01-g078a3b8701 (Nov 26 2019 - 02:40:52 +0000)
Detected: AM6-IDKAPPEVM rev E3
Trying to boot from MMC2
U-Boot 2019.01-g078a3b8701 (Nov 26 2019 - 02:40:52 +0000)
SoC: AM654 PG 1.0
Model: Texas Instruments AM654 Base Board
Board: AM6-COMPROCEVM rev E3
DRAM: 4 GiB
MMC: sdhci@4f80000: 0, sdhci@04FA0000: 1
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Detected: AM6-IDKAPPEVM rev E3
Net: eth2: pruss0_eth
Warning: cpsw_nuss@046000000 using MAC address from ROM
, eth0: cpsw_nuss@046000000, eth1: pruss2_eth
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
SD/MMC found on device 1
** Unable to read file boot.scr **
1490 bytes read in 2 ms (727.5 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc1 ...
Running uenvcmd ...
1 bytes read in 3 ms (0 Bytes/s)
Already setup.
13338632 bytes read in 1103 ms (11.5 MiB/s)
73168 bytes read in 9 ms (7.8 MiB/s)
11325 bytes read in 2 ms (5.4 MiB/s)
## Flattened Device Tree blob at 82000000
Booting using the fdt blob at 0x82000000
Loading Device Tree to 00000000fddb4000, end 00000000fdec8fff ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 4.19.59-g5f8c1c6121 (gaonian@gaonian-SIMATIC-IPC3000-SMART) (gcc vers ion 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 SMP PREEMP T Sat Jan 11 19:52:58 CST 2020
[ 0.000000] Machine model: Texas Instruments AM654 Base Board
[ 0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
[ 0.000000] bootconsole [ns16550a0] enabled
[ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
[ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dm a-pool
[ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
[ 0.000000] OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-po ol
[ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
[ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a1000000, compatible id shared-dm a-pool
[ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
[ 0.000000] OF: reserved mem: initialized node r5f-memory@a1100000, compatible id shared-dma-po ol
[ 0.000000] cma: Reserved 512 MiB at 0x00000000c0000000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hello,

    Is this a correct summary of your problem? If not, please correct me: When you build the PRU Ethernet drivers as modules, PRU Ethernet works as expected. However, when you build the PRU Ethernet drivers as built into the kernel (and change nothing else), then PRU Ethernet stops working as expected (as per your log).

    Regards,

    Nick

  • Hello,

    Yes, when I build the PRU driver as modules , the ethernet is always work fine, but when I build it into kernel (change nothing else), sometimes the ethernet does not work,

  • Hello,

    We are following up to see if we can reproduce the issue and if any additional configuration is needed.

    Regards,

    Aaron

  • Hello,

    When PRUETH driver is built in, the PRUETH ethernet ports become eth0-5, instead of eth1-6 (CPSW will be eth6). Is your cable connected to the correct port, considering this?

    If that is not an issue, can you comment on how often you see this issue? (e.g. every other time? or 1 out of 10?..). The latest version of Processor SDK 6.2 is also now released, do you see the same issue with that release?

    We expect the PRUETH driver built in to work as expected in case of SD boot, and NFS boot via CPSW. The only case that may require additional steps may be NFS boot via PRU-ICSSG as the firmware would need to be made available during boot.

    Best,

    Aaron

  • Hello,

    1. The cable is connected to the correct port.

    2. Probability of error is about 1% (Repeatedly restart the EVM board 100 times, about 1 time this problem can occur).

    3. The SDK6.2 also has this issue.

  • Hello,

    Thank you for the responses. In this case, this is requiring some further effort to reproduce and debug since this seems to occur so infrequently. I will update here with any progress. If you have any additional logs, or discover any steps to reproduce this error more consistently please let us know.

    Best,

    Aaron

  • Hello,

    Can you share some more details of your setup for testing this, including what you have connected to the ICSSG port and how the other device is set up, and how you are configuring the port that you are attempting to ping from?

    Regards,

    Aaron

  • By the way can you try the prebuild image that comes with the SDK and see if you have the same issue? i have not seen this and have tried it multiple, times with the prebuild SDK images? it would be good to try this with the prebuild images and let us know the results.

    Thanks

  • I guess i should have looked at the .config first everything is a module in our SDK, maybe that is why we don't see it. I let Aaron reply back.

    Thanks