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.

LP-AM243: Ethernet examples in SDK

Part Number: LP-AM243
Other Parts Discussed in Thread: DP83869

Hi,

My customer is evaluating UDP operation using SDK sample (enet_cpsw_udpserver_am243x-lp_r5fss0-0_freertos_ti-arm-clang).
HW : LP-AM243 PROC109E3
SW : MCU PLUS SDK Version: 08.05.00.24

Q1) The example uses polling in RX task.
To improve performance, the customer wants to use an interrupt.
Is there an example using an interrupt?

Q2) Is 10Mbps operation supported?
The customer configure an external device as 10Mbps and LP-AM243 can link-up with it by auto-negotiation.
But it does not seem to communicate with 10Mbps.

Thanks and regards,
Koichiro Tashiro 

  • Hi Koichiro San,

    Q1) The example uses polling in RX task.
    To improve performance, the customer wants to use an interrupt.
    Is there an example using an interrupt?

    We can provide guide on how to do it. Another stand alone example will not be possible. Customer can follow : https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/EXAMPLES_ENET_LAYER2_CPSW.htm this example.

    The exact code to refer is located at examples\networking\enet_layer2_cpsw\V0\l2_cpsw_dataflow.c

    Q2) Is 10Mbps operation supported?
    The customer configure an external device as 10Mbps and LP-AM243 can link-up with it by auto-negotiation.
    But it does not seem to communicate with 10Mbps.

    10 Mbps mode is supported both on CPSW and the dp83869 phy. I will check internally if it is tested. Can you please ask customer to get the debug statistics using :(+) [FAQ] MCU-PLUS-SDK-AM243X: How do I get CPSW diagnostic statistics using debug gels in MCU+ SDK Enet LLD? - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

    also please ask customer to share the application uart log.

    BR

    Nilabh A.

  • Hi Nilabh,

    Sorry for the delay, I got below feedback from the customer.

    Q1 is now closed. The customer confirm the interrupt operation. Thanks!

    For Q2, please find below uart log.
    AM243x is UDP Master. An external device (Hub) is 10-base fixed.

    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load In Progress... <<<---
    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load DONE! <<<---
    MAIN_Cortex_R5_0_0: GEL Output:           STATS          
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output:           PORT0 STATS          
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXGOODFRAMES              = 0x00000006
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXBROADCASTFRAMES         = 0x00000006
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXOCTETS                  = 0x00000180
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_TXGOODFRAMES              = 0x00000021
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_TXBROADCASTFRAMES         = 0x00000004
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_TXMULTICASTFRAMES         = 0x0000001D
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_TXOCTETS                  = 0x00000E7B
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES64             = 0x0000001E
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES65T127         = 0x00000002
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES128T255        = 0x00000003
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES256T511        = 0x00000004
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_NETOCTETS                 = 0x00000FFB
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_TX_PRI_REG             [0]= 0x00000021
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_TX_PRI_BCNT_REG        [0]= 0x00000E7B
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output:           PORT1 STATS          
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_RXGOODFRAMES              = 0x00000021
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_RXBROADCASTFRAMES         = 0x00000004
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_RXMULTICASTFRAMES         = 0x0000001D
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_RXOCTETS                  = 0x00000E7B
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_TXGOODFRAMES              = 0x00000006
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_TXBROADCASTFRAMES         = 0x00000006
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_TXOCTETS                  = 0x00000180
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_OCTETFRAMES64             = 0x0000001E
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_OCTETFRAMES65T127         = 0x00000002
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_OCTETFRAMES128T255        = 0x00000003
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_OCTETFRAMES256T511        = 0x00000004
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_NETOCTETS                 = 0x00000FFB
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_ALE_UNKN_MLT              = 0x0000000E
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_ALE_UNKN_MLT_BCNT         = 0x00000432
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_ALE_UNKN_BRD              = 0x00000004
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_ALE_UNKN_BRD_BCNT         = 0x00000568
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_TX_PRI_REG             [0]= 0x00000006
    MAIN_Cortex_R5_0_0: GEL Output: STAT_1_TX_PRI_BCNT_REG        [0]= 0x00000180
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output:           PORT2 STATS          
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    


    Thanks and regards,
    Koichiro Tashiro

  • Hi Koichiro San,

    Let me get back by next week(Wednesday)

    BR

    NilabhA.

  • Hi NilabhA,

    Any updates for this one?

    Thanks and regards,
    Koichiro Tashiro

  • Hi Koichiro Tashiro,
      Sorry for the late response!

    About Q2, need more information to confirm the phy setting.

    Want to check the speed and duplexity that is negotiated after auto negotiation is completed.
    Can you pls share the values of below six variables taken from "Expressions" tab in CCS.

    ((Cpsw_Handle)('ti_enet_open_close.c'::gEnetAppSysCfgObj.hEnet->enetPer))->hPhy[0]
    ((Cpsw_Handle)('ti_enet_open_close.c'::gEnetAppSysCfgObj.hEnet->enetPer))->hPhy[0]->addr
    ((Cpsw_Handle)('ti_enet_open_close.c'::gEnetAppSysCfgObj.hEnet->enetPer))->hPhy[0]->state.speed
    ((Cpsw_Handle)('ti_enet_open_close.c'::gEnetAppSysCfgObj.hEnet->enetPer))->hPhy[0]->state.duplexity

    ((Cpsw_Handle)('ti_enet_open_close.c'::gEnetAppSysCfgObj.hEnet->enetPer))->hPhy[1]
    ((Cpsw_Handle)('ti_enet_open_close.c'::gEnetAppSysCfgObj.hEnet->enetPer))->hPhy[1]->addr
    ((Cpsw_Handle)('ti_enet_open_close.c'::gEnetAppSysCfgObj.hEnet->enetPer))->hPhy[1]->state.speed
    ((Cpsw_Handle)('ti_enet_open_close.c'::gEnetAppSysCfgObj.hEnet->enetPer))->hPhy[1]->state.duplexity

    Make sure to captured the values of above variables only after link is UP.

    Thanks in advance!

    With regards,
    Pradeep