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.

AM6421: Using CPSW and ICSSG Ethernet together on MCU+ SDK 08.05 ENET driver

Part Number: AM6421
Other Parts Discussed in Thread: SYSCONFIG

Dear TI team,

we've tried configuring two instances of the ENET driver in a R5f MCU+ SDK application.

We were able to configure the interfaces via SysConfig without errors, but when compiling the generated sources there were lots of errors because of duplicate function definitions (EnetApp_* and the like).

The related thread said that using CPSW and ICSSG Ethernet together ought to be fixed by SDK 08.04. Unfortunately the linked Jira ticket isn't accessible publicly.

What's the status of the Jira ticket mentioned in the related thread?

Does the ENET driver support multiple instances in order to use CPSW and ICSSG ethernet ports in parallel?

Best Regards,

Dominic

  • Dominic,

    Thanks for your query. allow me some time to collate all the info and get back to you.

    Regards

    Anshu

  • Hi Dominic,

    Can you please try below steps ?

    1. Application A for CPSW for R5F_1 => generate the binary.

    2. Application B for ICSG for R5F_0 => generate the binary

    Let me know if these binaries are working (i) independently and (ii) simultaneously ?

    Best Regards

    Ashwani 

  • Hello Ashwani,

    I have the same problem and I have generated these two binaries.

    Thanks,

    Zhang Ben.

  • okay.

    Let me check on my side and come back to you.

    Best Regards

    Ashwani

  • These 2 binaries are working independently. Correct ?

    Best Regards

    Ashwani

  • Hi Ashwani,

    The two images are independent of each other, but there is no attempt to load the image on two cores at the same time.

    Regards,

    Zhang Ben.

  • Hello Ashwani,

    I'm sorry, but I fail to see how that is relevant. I don't want to use separate applications, I want to use two Ethernet interfaces from the same application.

    Apparently this has been an issue with previous SDK versions and was supposed to be fixed by 08.04, see the "Original question".

    Can you check the status of the Jira ticket (see "Original Question") that was apparently meant to track implementation of this feature?

    Regards,

    Dominic

  • Hello Ashwani,

    please excuse my persistence. In order to plan our further development efforts I'd really like to understand if MCU+ SDK is going to support simultaneous use of ICSSG and CPSW ENET from a single R5f application.

    According to this post https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1108529/am2434-can-cpsw-and-pru-icssg-enet-be-used-together the "Enet driver can support running ICSSG and CPSW together" and "SW team is planning to fix this by SDK8.4.".

    There should be a JIRA ticket "[MCUSDK-4368] Enet - running CPSW and ICSSG together fails - Texas Instruments JIRA (ti.com)" which one of your colleagues created to track this, but that JIRA instance appears to be TI-internal only.

    Best Regards,

    Dominic

  • Hi Dominic,

    Here customer wants a working example where frames are forwarded from CPSW to ICSSG and vice-versa.

    Option1: CPSW port <=> AM64x-evm forwarded to <=> ICSSG port

    or

    CPSW and ICSSG Rx/Tx frames independently but having single application ?

    Option 2:. CPSW port <=> AM64x-evm

    and

    ICSSG port in MAC mode <=> AM64x-evm 

    Best regards

    Ashwani

  • Hello Ashwani,

    I don't think I understand what you're asking, or rather why you're asking me this.

    In our particular case we want to use CPSW and ICSSG independently from a single application. As I wrote in my initial post, this fails because when I add both ICSSG and CPSW ENET instances via SysConfig I get lots of errors compiling the generated code.

    We were able to configure the interfaces via SysConfig without errors, but when compiling the generated sources there were lots of errors because of duplicate function definitions (EnetApp_* and the like).

    This is seems to be the same problem described in the linked post:

    When my customer tried to make Enet(CPSW) and Enet(ICSS) to be active in syscfg together as below, they find errors caused by same name conflict in some variables and functions of 'tidrivers_config.c'.

    At that time (mid last year) the answer was that this was considered a bug that should be fixed by 08.04. Apparently it wasn't fixed, and I would like to know what the current plans are for fixing this bug.

    We don't want to forward frames between the two interfaces.

    Regards,

    Dominic

  • Thanks Dominic for clarification.

    Basically dev team said that it should work out of box. But do not have any out of example to verify it.

    So, I need to create a test example for you. For that, I want to know the exact customer use case and clarifying my doubts.

    Give me some time to create test case for your use case and reproduce the issue (you are facing ) on my setup.

    Best Regards
    Ashwani

  • Hello Ashwani,

    okay, now I understand what and why you're asking.

    You could start with the enet_layer2_icssg example found in mcu_plus_sdk_am64x_08_05_00_24\examples\networking. If you build the example as-is it works.

    My next step is to add a Enet (CPSW) instance via SysConfig. Afterwards I get some conflicts, but these are easy to solve:

    • ENET DMA channels have names that conflict. If you start appending something (I start with an '_' underscore), the warning (and the Name field...) disappears.
    • There are Pinmuxing conflicts but these can be solved by disabling RGMII2 for the CPSW. I'm fine with a single CPSW port.

    With these changes SysConfig doesn't show anymore conflicts.

    Unfortunately the example doesn't compile anymore, because of numerous redefinitions.

    Best Regards,

    Dominic

  • Thanks Dominic for detailed steps,

    I am able to reproduce the issue on my setup.

    I filed a bug MCUSDK-9584 to track it.

    Problem: We should disable second port of ICSSG in sysconfig when enabling CPSW and ICSSG simultaneously.

    Best Regards

    Ashwani

  • Hello Ashwani,

    Problem: We should disable second port of ICSSG in sysconfig when enabling CPSW and ICSSG simultaneously.

    No, that's not the problem I'm talking about. The user has to decide which interfaces he wants to use and how to mux them. On the EVM there are only theree Ethernet ports: one is always ICSSG, one is always CPSW, and one could be either. The user needs to decide and configure SysConfig accordingly. This is perfectly fine, and that step was just meant to show you what you need to do to see the real problem.

    The issue about the DMA channel name could be considered a minor bug, especially the behavior that the name field disappears when I start changing it... but that appears to be really minor issue.

    The real issue is that once SysConfig shows no more errors and you compile the project, you get loads of redefinitions errors, because SysConfig apparently generates functions twice, for the Enet (CPSW) and the Enet (ICSSG) instances.

    Regards,

    Dominic

  • Thanks Dominic for clarification.

    I will provide these updates to dev team.

    Let them come back the timeline to fix the issue.

    Best Regards

    Ashwani

  • Hi,

    Sorry for delay in response.

    I am able to reproduce the issue on my setup.

    I filed a bug MCUSDK-9584 to track it.

    Best Regards

    Ashwani

  • Let them come back the timeline to fix the issue.

    Any news on the timeline?

  • Any news on the timeline?

    Tentative date: It is planned for Q4 (Nov-2023).

    Best Regards

    Ashwani