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.

AM5718: PRU Ethernet 10Mbps capability

Part Number: AM5718

Hi experts,

Please give us an update on the following original thread.
e2e.ti.com/.../am5728-pru-ethernet-10mbps-issue

Q1:Is the 10Mbps communication speed using the PRU Ethernet port supported in the latest SDK (Linux:08.02.01.00, RTOS:08.01.00.09)?
Q2:If not, do you plan to support it in the future?
Q3:Also, do you have any development guides or information on how to achieve this?

I'm sorry, but could you please let me know by 1/30?
Our customer has created a custom board using AM5718(SDK-LINUX-AM57X 06_03_00_106) and we are in a very urgent situation.

[2023/01/27 additional]
Additional information from the customer.

They downloaded the ELF file from the following URL
https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/tree/ti-pruss?h=ti-linux-firmware

Even in version 08.06.00.003, 10Base-T was not supported.

Best regards,
O.H

  • Hello experts,

    Sorry for rush you. Is there any update? 

    My customer is looking for answers and would appreciate it if you could tell me status.
    Also it would also be helpful to be contacted via private chat if an offline response is preferred.

    Best regards,
    O.H

  • Hello experts,

    Sorry for rush you. Is there any update? 

    My customer is looking for answers and would appreciate it if you could tell me status.

    Best regards,
    O.H

  • Hello experts,

    Sorry for rush you. Is there any update? 

    My customer is looking for answers and would appreciate it if you could tell me status.

    Best regards,
    O.H

  • Hello experts,

    Sorry for rush you. Is there any update? 

    My customer is looking for answers and would appreciate it if you could tell me status.

    Best regards,
    O.H

  • Hello experts,

    Sorry for rush you. This is a reminder.

    We would appreciate it if you could let us know what is going on.

    Best regards,
    O.H

  • Hello O.H.,

    I am following up with our team on whether this was ever supported or not. 

    Many things were de-scoped on the 8.02.01 SDK so it is most likely that this is not supported but I will confirm with you as soon as I can confirm.

    I will follow up within the week.

  • Hello Josue Zamitiz-Ayala,

    Thank you so much for your reply and follow up. And I'm sorry for additional question.

    If there is no support in the any SDK, is it possible to achieve PRU Ethernet 10Mbps communication by developing our own software(or driver)?

    We understand that PRU Ethernet 10Mbsp communication is supported hardware-wise, since we found TEST results in the datasheet "7.26.3 PRU-ICSS MII_RT and Switch".

    We are very concerned about this, because if the software(or driver) cannot solve the problem, hardware changes will be necessary.

    Best regards,
    O.H

  • Hello Josue Zamitiz-Ayala,

    Sorry for additional question

    If there is no support in the any SDK, would it be possible to share the patch file with us?

    If you would like to have a private chat about the answer, it would be helpful if you could approve the friend request we sent you.

    Best regards,
    O.H

  • Hello O.H.,

    I found this documentation stating that the RTOS SDK can support 10/100 Mbps via ICSS DUAL EMAC FIRMWARE

    See: https://software-dl.ti.com/processor-sdk-rtos/esd/AM57X/08_01_00_09/exports/docs/rtos/index_pru_icss_fw.html

    Let me know if this helps!

  • Hello Josue Zamitiz-Ayala,

    Thanks for your answer.

    And sorry, we need to use the Linux SDK on the A15 core this time.

    I understood that "10Mbps via ICSS EMAC" is supported in RTOS SDK but not in Linux SDK, is this correct?

    Is there any way to use the Linux SDK on the A15 core and the RTOS SDK on the PRU?(Is that remoteproc?)

    Best regards,
    O.H

  • Hello Josue Zamitiz-Ayala,

    Thanks for your answer.

    And sorry, we need to use the Linux SDK on the A15 core this time.

    Q1:I understood that "10Mbps via ICSS EMAC" is supported in RTOS SDK but not in Linux SDK, is this correct?

    Q2:Is there any way to use the Linux SDK on the A15 core and the RTOS SDK on the PRU?(Is that remoteproc?)

    Q3:Could you provide the source code for the following .elf file?
    git.ti.com/.../ti-pruss
    As another approach, we are in need of this source code in order to change the PRU settings using the Linux SDK. If you cannot provide it, we would appreciate it if you could tell us why.

    Best regards,
    O.H

  • Josue will need to comment on Q1 & Q3 (I can comment on Q3 for AM335x & AM437x, but AM57x has a different Ethernet firmware).

    For Q2: The RemoteProc driver is the Linux driver used to initialize, boot, and otherwise control "remote cores" (which are any processor cores that are not the Linux cores). So the RemoteProc driver is what Linux uses to initialize and boot the PRU cores. If you were booting the PRUs another way (e.g., with RTOS running on the A53 cores), then a different RTOS driver is used.

    The PRU cores can ONLY run bare metal code. A big part of an operating system is deciding which tasks get to run on the processor cores when. The PRU-ICSS on AM57x does not have any way to preempt (i.e., interrupt) currently running code, so there is not an easy way to implement an RTOS on the PRU cores themselves. That is one of the reasons PRU cores are so valuable - since the code will never be interrupted unexpectedly, you can always guarantee what PRU assembly code will be running at every clock cycle. That allows the PRU cores to implement complex protocols like Ethernet, UART, SPI, custom bus interfaces, etc.

    Later PRU_ICSSG devices (AM64x, AM65x) do add a Task Manager than can preempt running code. So while TI also does not support operating systems on PRU_ICSSG cores, those PRU cores can interrupt low-priority code if needed.

    Regards,

    NIck

  • To provide a bit more detail on the "RTOS on PRU" question: The PRU cores are in control of the Ethernet interface. However, they do not run the networking stack. That runs on the ARM cores that initialized the PRU cores. So you will always need the Ethernet drivers and stack to be implemented on an ARM core, you cannot do EVERYTHING on the PRU cores with networking.

  • Hi NIck,

    Thank you for your detailed answer.

    I understood that there is no solution that combines RTOS SDK and Linux SDK.

    We are waiting for your answer on Q1 and Q3.
    If it is difficult to answer here, please do so in private chat.

    Best regards,
    O.H

  • Q1:I understood that "10Mbps via ICSS EMAC" is supported in RTOS SDK but not in Linux SDK, is this correct?

    This is true today, this is where the SDK stands.

    For Question 3, the source code is provided on the RTOS SDK

    See folders under 

    /pdk_am57xx_1_0_19/packages/ti/

  • Hi Josue,

    Thank you for your reply.

    About Q1, I understood.

    About Q3, I checked the following folder and there are only .cmd files. Could you please check again?
    /pdk_am57xx_1_0_19/packages/ti/build/pruss

    Best regards,
    O.H

  • O,H.,

    See under this folder:

    /processor_sdk_rtos_am57xx_08_01_00_09/pdk_am57xx_1_0_19/packages/ti/drv/pruss/src

  • Hi Josue,

    Thank you for your reply. I understood about Q3. I will check.

    Q1:I understood that "10Mbps via ICSS EMAC" is supported in RTOS SDK but not in Linux SDK, is this correct?

    This is true today, this is where the SDK stands.

    Sorry for the additional confirmation.

    Is there any information in the documentation that clearly states "10Mbps via ICSS EMAC" is not supported in the Linux SDK "?

    Best regards,
    O.H

  • O.H.,

    No there is not. You can utilize the ethtool provided within the SDK to see what the capabilities are of the softwarte installed.

    The current SDK only supports 100baseT speed and Full Duplex.

    Example:

    root@am57xx-evm:~# ethtool -i eth2
    driver: PRUSS Ethernet driver
    version: 0.2
    firmware-version:
    expansion-rom-version:
    bus-info:
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: yes
    supports-priv-flags: no

    root@am57xx-evm:~# ethtool eth2
    Settings for eth2:
    Supported ports: [ TP MII ]
    Supported link modes: 100baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes: 100baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: Unknown!
    Duplex: Unknown! (255)
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: external
    MDI-X: Unknown
    Link detected: no

  • Hi Josue Zamitiz-Ayala,

    I'm sorry. Please help as we have additional questions.

    I found the following materials.
    "ICSS_DUAL_EMAC_FIRMWARE_DESIGN_GUIDE.PDF"

    The commentary is posted in "3.1.12 Half Duplex Support" "and" 3.1.13 Link Status Change Detection ", so the RTOS version seems to be compatible with 10Mbps.
    Could you tell me some based on the above?

    Q1. Is the PRU SUBSYSTEM firmware for PROCESSOR SDK Linux and Dual Mac firmware for RTOS the same?
    RTOS: C:\ti\processor_sdk_rtos_am57xx_08_01_00_09\pdk_am57xx_1_0_19\packages\ti\drv\icss_emac\bin or src
    Linux: git.ti.com/.../am57xx-pru0-prueth-fw.elf

    Q2. If it is the same, does the PRU subsystem firmware correspond to Half Duplex and speed change as documented?
    If the answer of 1 is "common" and the answer of 2 is "corresponding", I think that the assignment can be narrowed down to the ARM side.

    Q3. If not the same, could you tell me the difference?
    I think that the important point is what is lacking in the 10Mbps. (For example, register setting processing on the EtherPHY side and processing of transmission/reception data)

    Q4:Do you plan to support "10Mbps via ICSS EMAC on an AM57x running Linux OS" in the future?

    Best regards,
    O.H

  • Hi Josue Zamitiz-Ayala,

    Sorry for rush you. Is there any update? 

    My customer is looking for answers and would appreciate it if you could tell me status.

    Best regards,
    O.H

  • Hi Josue Zamitiz-Ayala,

    Sorry for rush you. Is there any update? 

    My customer is looking for answers and would appreciate it if you could tell me status.
    Also it would also be helpful to be contacted via private chat if an offline response is preferred.

    Best regards,
    O.H

  • Hi Josue Zamitiz-Ayala,

    Sorry for rush you. Is there any update? 

    It would also be helpful to be contacted via private chat if an offline response is preferred.

    Best regards,
    O.H

  • Hi experts,

    Sorry for rush you. Is there any update? 

    It would also be helpful to be contacted via private chat if an offline response is preferred.

    Best regards,
    O.H