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.

PROCESSOR-SDK-AM64X: "Enet Layer 2 CPSW Example" still not working on AM64x MCU+ SDK 08.05.00.24

Part Number: PROCESSOR-SDK-AM64X

With reference to the linked question, although it appears that the change suggested by Ashwani Goel has been incorporated into the latest SDK (my version of the file does show a value of 4), something is still amiss.

I am using an AM64B board and running the ./mcu_plus_sdk_am64x_08_05_00_24/tools/boot/sbl_prebuilt/am64x-sk/sbl_null.release.hs_fs.tiimage image (MD5: 9890891082c94b5b5778322229ae600c).

This is the example I have imported:

The example fails with, as far as I can tell, the same exact error as that in the linked question:

==========================
     Layer 2 CPSW Test    
==========================

Init all peripheral clocks
----------------------------------------------
Enabling clocks!

Create RX tasks
----------------------------------------------
cpsw-3g: Create RX task

Open all peripherals
----------------------------------------------
cpsw-3g: Open enet
EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 3 

Init all configs
----------------------------------------------
cpsw-3g: init config
Mdio_open: MDIO Manual_Mode enabled
EnetRm_open: Resource partition validation failed: -3
EnetMod_open: cpsw3g.rm: Failed to open: -3
Cpsw_openInternal: Failed to open RM: -3
Assertion @ Line: 984 in /home/gtbldadm/nightlybuilds/mcupsdk_internal/jenkins/mcu_plus_sdk_am64x_08_05_00_24/source/networking/enet/core/src/per/V1/cpsw.c: hCpsw->hRxRsvdFlow != NULL

There are working Ethernet cables connected to both interfaces; I did try all possible combinations to no avail.

I am a bit at a loss here and would appreciate any ideas on where to go from here.

  • although it appears that the change suggested by Ashwani Goel has been incorporated into the latest SDK

    Hi,

    Related thread was also based on SDK 8.5 only.

    We suggested some workaround to try and that fix the issue.

    you are also working on SDK 8.5 (workaround is not part of it).

    Let me check timeline of a clean fix for the issue.

    Best Regards

    Ashwani

  • Thank you for your reply.

    you are also working on SDK 8.5 (workaround is not part of it).

    It does appear to be now, if we're talking about changing .numMacAddress = 3U,    /* numMacAddress */ from 3 to 4. At least that's the case with the current Linux MCU SDK installer (checksum 57532ca3567fbc005889c2cf6df8ab7c). Or was the workaround something else that I might have missed?

  • For info, every Ethernet related example tested so far fails with the same exact console output, e.g. (ENET LWIP App example):

    ==========================
          ENET LWIP App       
    ==========================
    Enabling clocks!
    EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 3 
    Mdio_open: MDIO Manual_Mode enabled
    EnetRm_open: Resource partition validation failed: -3
    EnetMod_open: cpsw3g.rm: Failed to open: -3
    Cpsw_openInternal: Failed to open RM: -3
    Assertion @ Line: 984 in /home/gtbldadm/nightlybuilds/mcupsdk_internal/jenkins/mcu_plus_sdk_am64x_08_05_00_24/source/networking/enet/core/src/per/V1/cpsw.c: hCpsw->hRxRsvdFlow != NULL
    

  • Duh!

    I appear to have misread the linked question. It turns out that the .numMacAddress value needs to be changed from 4 to 3, not vice-versa!

    So the workaround talked about consists of modifying line 779 of mcu_plus_sdk_am64x_08_05_00_24/source/networking/.meta/enet_cpsw/templates/am64x_am243x to be:

                .numMacAddress = 3U,    /* numMacAddress */
    

    It is indeed, as Ashwani Goel points out, a temporary workaround, but will get things going if you're using version 08.05.00.24 of the SDK with an AM64B.