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.

TDA4VM-Q1: ethfw tap device example not working

Part Number: TDA4VM-Q1
Other Parts Discussed in Thread: SK-TDA4VM

Tool/software:

Dear Support.

I am testing the TAP device method from the ethfw guide document to receive broadcast packets on CPSW9G.

To reproduce the issue, I downloaded RTOS SDK 8.6, created an SD card image, and tested it on an SOM-based EVM (not SK-TDA4VM).

However, the system repeatedly prints "Waiting for queue initialization" and does not function properly.

Please guide me on where to investigate.

# my test board info

U-Boot SPL 2021.01-g62a9e51344 (May 02 2023 - 15:41:16 +0000)
Model: Texas Instruments K3 J721E SoC Board: J721EX-PM2-SOM rev E7
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--v08.06.03 (Chill Capybar')
Detected: J7X-BASE-CPB rev A
Detected: J7X-VSC8514-ETH rev E2

#  virtual-eth-queues, virtual-eth-buffers address boot log

[ 0.000000] Reserved memory: created DMA memory pool at 0x00000000e4000000, size 8 MiB
[ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-virtual-eth-queues@e4000000, compatible id shared-dma-pool
[ 0.000000] Reserved memory: created DMA memory pool at 0x00000000e4800000, size 24 MiB
[ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-virtual-eth-buffers@e4800000, compatible id shared-dma-pool

# test logs

root@j7-evm:/usr/bin# ./tapif.sh
Discovered Bufpool Base Address at 0xe4800000 from device tree
And the Bufpool region length is 0x01800000
Discovered Queue Base Address at 0xe4000000 from device tree
And the Queue region length is 0x00800000
------------------------------------------------
Selected Configuration:
------------------------------------------------
TAP Device name tap0
RX Queue Id 2
TX Queue Id 3
Maximum number of queues 4
Queue Base 0xe4000000
Queue Len 0x00800000
Polling interval 1000
Maximum number of bufpools 4
Bufpool base 0xe4800000
Bufpool len 0x01800000
TX Bufpool ID 2
TAP IP
TAP MAC 00:01:02:04:05:06
MAX TX 64
MAX RX 64
------------------------------------------------
Opened TAP Device successfully
Queue Mapping Succeeded
Bufpool Mapping Succeeded
Assigned Queue Handles
Waiting for queue initialization
Waiting for queue initialization
Waiting for queue initialization

thank you.

  • HI,

    Can you please are you running ETHFW from Vision application or Standalone?
    The buffer bool and Queue base address are different in case of ETHFW with vision application and Standalone.

    Please refer to map file or linker file using in ETHFW application and configure those address in Tap.conf file.
    Refer to ETH Guide for the details about Queue & buffer config as per ETHFW application using.
    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j784s4/latest/exports/docs/ethfw/docs/user_guide/demo_ethfw_combined_top.html#intercore_linux_client_test_vepa

    Best Regards,
    Sudheer

  • Dear support.

    Thank you for your response.

    We are working in the ETHFW from Vision application environment.

    We have verified that the memory locations in the linker.cmd, ETHFW memory settings, DTS file memory locations, and the configuration file referenced by tapif.sh all match as per your guidance. This can be confirmed by comparing the logs from the previous message with the current linker.cmd settings.

    Despite checking everything mentioned in the guidelines, the system still does not function properly, which is why we are reaching out for assistance.

    Could you confirm whether TI has validated that this package actually works on the EVM?

    MEMORY
    {

    ~~~

    ~~~


    DDR_MCU1_1_LOCAL_HEAP ( RWIX ) : ORIGIN = 0xD8800000 , LENGTH = 0x00800000
    /* Inter-core ethernet shared desc queues. MUST be non-cached or cache-coherent [ size 8.00 MB ] */
    INTERCORE_ETH_DESC_MEM : ORIGIN = 0xE4000000 , LENGTH = 0x00800000
    /* Inter-core ethernet shared data buffers. MUST be non-cached or cache-coherent [ size 24.00 MB ] */
    INTERCORE_ETH_DATA_MEM : ORIGIN = 0xE4800000 , LENGTH = 0x01800000
    }

  • Hi,

    Could you confirm whether TI has validated that this package actually works on the EVM?

    Yes, we checks for every SDK release.
    There are some enhancements and fixed for Tap application to match the size with ETHFW lwipif, these are added in latest SDKs.

    Best Regards,
    Sudheer

  • Dear Support

    Thank you for your response.

    We are currently using SDK 8.x, and since SDK 9.0 introduced significant structural changes,
    we can only use versions up to SDK 8.6, but not the latest SDK.


    We have strictly followed the SDK guidelines, yet the system still does not run properly.


    Could we receive the validation results for SDK 8.6?

    If you have the boot logs / vx_arm_remote_log  and console test logs used during verification,
    they would be helpful in analyzing the differences between our setup and yours.


    Does RTOS SDK 8.6 require a patch to function properly?


    Thank you.

  • Hi,

    Could we receive the validation results for SDK 8.6?

    Please find the Test results posted in ETHFW User Guide.
    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_06_01_03/exports/docs/ethfw/docs/user_guide/demo_ethfw_combined_top.html#intercore_linux_tap_app

    Also, can you please confirm have you enabled Inter-core-virtual ethernet Macro from ETHFW build flags and rebuilding ETHFW? By default it will not be enabled in SDK.

    Best Regards,
    Sudheer

  • Dear Sudheer

    Thank you for your response. Blush

    In vision_apps_build_flags.mak, the settings indicate that this is not a QNX build,
    so by default, ETHFW_INTERCORE_ETH_SUPPORT should be enabled.

    Could you specifically clarify which build flags need to be checked to confirm
    whether ETHFW_INTERCORE_ETH_SUPPORT is correctly included in the build?

    # vision_apps_build_flags.mak

    # Inter-core virtual ethernet support
    # Supported Values: yes | no
    ifneq (,$(filter yes,$(BUILD_CPU_MCU2_0)))
    ifeq ($(BUILD_QNX_A72),yes)
    ETHFW_INTERCORE_ETH_SUPPORT?=no
    else
    ETHFW_INTERCORE_ETH_SUPPORT?=yes
    endif
    endif

    I am attaching the ethfw init logs from vx_arm_remote_log in SDK 8.6.

    Could you check if any build options required for TAP support are missing?

    # ETHFW init logs

    [MCU2_0] 17.135273 s: ETHFW: Init ... !!!
    [MCU2_0] 17.140135 s: Warning: Using 6 MAC address(es) from static pool
    [MCU2_0] 17.140250 s: ETHFW: Shared multicasts (software fanout):
    [MCU2_0] 17.140290 s: ETHFW: Reserved multicasts:
    [MCU2_0] 17.140319 s: 01:80:c2:00:00:0e
    [MCU2_0] 17.140369 s: 01:1b:19:00:00:00
    [MCU2_0] 17.140704 s: EnetMcm: CPSW_9G on MAIN NAVSS
    [MCU2_0] 17.150209 s: Mdio_open: MDIO manual mode enabled
    [MCU2_0] 17.154223 s: PHY 16 is alive
    [MCU2_0] 17.154376 s: PHY 17 is alive
    [MCU2_0] 17.154487 s: PHY 18 is alive
    [MCU2_0] 17.154592 s: PHY 19 is alive
    [MCU2_0] 17.157819 s:
    [MCU2_0] ETHFW Version : 0.02.00
    [MCU2_0] 17.157899 s: ETHFW Build Date: Apr 15, 2023
    [MCU2_0] 17.157938 s: ETHFW Build Time: 12:45:59
    [MCU2_0] 17.157967 s: ETHFW Commit SHA: 05546b8d
    [MCU2_0] 17.158044 s: ETHFW: Init ... DONE !!!
    [MCU2_0] 17.158080 s: ETHFW: Remove server Init ... !!!
    [MCU2_0] 17.158265 s: CpswProxyServer: Virtual port configuration:
    [MCU2_0] 17.158317 s: mpu_1_0 <-> Switch port 0: mpu_1_0_ethswitch-device-0
    [MCU2_0] 17.158365 s: mcu_2_1 <-> Switch port 1: mcu_2_1_ethswitch-device-1
    [MCU2_0] 17.158409 s: mpu_1_0 <-> MAC port 1: mpu_1_0_ethmac-device-1
    [MCU2_0] 17.158450 s: mcu_2_1 <-> MAC port 4: mcu_2_1_ethmac-device-4
    [MCU2_0] 17.159497 s: CpswProxyServer: initialization completed (core: mcu2_0)
    [MCU2_0] 17.159564 s: ETHFW: Remove server Init ... DONE !!!

    Thank you.

  • Hi,

    Could you specifically clarify which build flags need to be checked to confirm
    whether ETHFW_INTERCORE_ETH_SUPPORT is correctly included in the build?

    By default QNX is disabled, and Linux is enabled for A72.
    Please refer to vision apps user guide for more details.
    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_06_01_03/exports/docs/vision_apps/docs/user_guide/BUILD_INSTRUCTIONS.html

    Best Regards,
    Sudheer