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: port 1 and port 4 of J721E GESI Expansion Board can't connect

Part Number: TDA4VM

Hi,team

      we are testing Ethernet on J721E EVM and GESI Expansion Board base on Ethernet Firmware Ethernet Firmware: Ethernet Firmware differentiating features demos.

     There are four port on GESI Board, now we found two port can't connect. The process is as follows:

     1.build ethfw by command "make ethfw_all BUILD_SOC_LIST=J721E" in PSDK

     2. Copy the remote client application to the firmware directory of Linux filesystem in SD card:

             copy app_remoteswitchcfg_server_strip.xer5f  and app_remoteswitchcfg_client.xer5f  to /../rootfs/lib/firmware/

     3.update soft-link

     4.Connect PC 1 to MAC port 3 of GESI board.  set pc1 ip 192.168.1.202

        Connect PC 2 to MAC port 8 of GESI board. set pc2 ip 192.168.1.204

        Connect PC 3 to MAC port 1 of GESI board. set pc3 ip 192.168.1.206

        Connect PC 4 to MAC port 4 of GESI board. set pc4 ip 192.168.1.208

        Set A72 ip 192.168.1.205

     5.we found only PC1 PC2  A72 can interconnect to eachother,  PC3 and PC4 can't.

Why is that? And how can make two ports to be connected? 

  • Hi, 

    Why is that? And how can make two ports to be connected

     Default Port-1 & port-4 are configured as MAC Only ports, and port-1 mapped to A72 client & port-4 mapped to RTOS client. 

    These two ports are not part of switch port, and acts as a independent MAC ports. 

    Please refer to EthFW user guide for more details. 

    Best regards, 

    Sudheer

  • Hi,

           Thanks for your support. Our TDA4 board design references GESI on the CPSW9G. Now we want to use all 4 ports(port 1 3 4 8)  for switch, can we use other port for mac-only for A72?

    Regards,

    Zhang

  • Hi,

    Yes, You can configure/use any Port as MAC only Port or switch Port, for this you need to make changes in Linux Device tree as well as EthFw.
    Please refer to FAQ [How to Add/map MAC only port to A72] for addition of MAC only Ports.
    Please refer to FAQ[How to change MAC only Port mapped to A72].

    Best Regards,
    Sudheer

  • Hi,Sudheer

           When we trying use PORT3 using as macOnly port, it's OK. When we using PORT6 as as macOnly port. System startup failure. 

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    [ 11.393586] j721e-cpsw-virt-mac main-r5fss-cpsw9g-virt-mac6: virt_cpsw_nuss mac loaded
    [ 11.401590] j721e-cpsw-virt-mac main-r5fss-cpsw9g-virt-mac6: rdev_features:00000007 rdev_mtu:1522 flow_id:173 tx_psil_dst_id:4A01 mac_only:6
    [ 11.414243] j721e-cpsw-virt-mac main-r5fss-cpsw9g-virt-mac6: local_mac_addr:00:00:00:00:00:00 rdev_mac_addr:70:ff:76:1d:92:c2
    [ 22.573924] virtio_rpmsg_bus virtio1: creating channel rpmsg_chrdev addr 0xd
    [ 32.832032] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
    [ 32.838112] rcu: 1-...!: (0 ticks this GP) idle=ec0/0/0x0 softirq=6972/6972 fqs=0 (false positive?)
    [ 32.847308] (detected by 0, t=5252 jiffies, g=1709, q=9745)
    [ 32.852949] Task dump for CPU 1:
    [ 32.856164] task:swapper/1 state:R running task stack: 0 pid: 0 ppid: 1 flags:0x00000028
    [ 32.866057] Call trace:
    [ 32.868500] __switch_to+0xc0/0x118
    [ 32.871978] 0xffff0008000ec740
    [ 32.875107] rcu: rcu_preempt kthread starved for 5252 jiffies! g1709 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402 ->cpu=1
    [ 32.885427] rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
    [ 32.894533] rcu: RCU grace-period kthread stack dump:
    [ 32.899567] task:rcu_preempt state:I stack: 0 pid: 12 ppid: 2 flags:0x00000028
    [ 32.907897] Call trace:
    [ 32.910331] __switch_to+0xc0/0x118
    [ 32.913807] __schedule+0x274/0x720
    [ 32.917281] schedule+0x70/0x108
    [ 32.920495] schedule_timeout+0x178/0x280
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    We only use 4 ports for CPSW9G, so only enable ENET_MAC_PORT_6.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    static Enet_MacPort gEthAppPorts[] =
    {
    #if defined(SOC_J721E)
    /* On J721E EVM to use all 8 ports simultaneously, we use below configuration
    RGMII Ports - 1,3,4,8. QSGMII ports - 2,5,6,7 */
    ENET_MAC_PORT_1, /* RGMII */
    ENET_MAC_PORT_3, /* RGMII */
    ENET_MAC_PORT_4, /* RGMII */
    ENET_MAC_PORT_8, /* RGMII */
    #if defined(ENABLE_QSGMII_PORTS)
    //ENET_MAC_PORT_2, /* QSGMII main */
    //ENET_MAC_PORT_5, /* QSGMII sub */
    ENET_MAC_PORT_6, /* QSGMII sub */
    //ENET_MAC_PORT_7, /* QSGMII sub */
    #endif
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Best Regards,

    Zhang

  • Hi,

    Port-6 is QSGMII Sub Port, you need to define at least one QSGMII Main Port, without Main Port there should not be any Sub Ports.
    Also, Port-6 is from QUAD ENET Expansion not from GESI.

    The FAQ pointed above also, enabled Port-6.

    Can you please enable MAC Port-2 as well along with Port-6 and check once.

    Best Regards,
    Sudheer

  • Hi,Sudheer

         We have tried enable ENET_MAC_PORT_2  ENET_MAC_PORT_6 and ENET_MAC_PORT_7. ENET_MAC_PORT_6  used as MPU1_0 mac-only port, ENET_MAC_PORT_7 used as MCU2_1 mac-only port.

    mcu2_0/main.c

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    static Enet_MacPort gEthAppPorts[] =
    {
    #if defined(SOC_J721E)
    /* On J721E EVM to use all 8 ports simultaneously, we use below configuration
    RGMII Ports - 1,3,4,8. QSGMII ports - 2,5,6,7 */
    ENET_MAC_PORT_1, /* RGMII */
    ENET_MAC_PORT_3, /* RGMII */
    ENET_MAC_PORT_4, /* RGMII */
    ENET_MAC_PORT_8, /* RGMII */
    #if defined(ENABLE_QSGMII_PORTS)
    ENET_MAC_PORT_2, /* QSGMII main */
    //ENET_MAC_PORT_5, /* QSGMII sub */
    ENET_MAC_PORT_6, /* QSGMII sub */
    ENET_MAC_PORT_7, /* QSGMII sub */
    #endif
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    static EthFw_VirtPortCfg gEthApp_virtPortCfg[] =
    {
    {
    .remoteCoreId = IPC_MPU1_0,
    .portId = ETHREMOTECFG_SWITCH_PORT_0,
    },
    {
    .remoteCoreId = IPC_MCU2_1,
    .portId = ETHREMOTECFG_SWITCH_PORT_1,
    },
    #if defined(ENABLE_MAC_ONLY_PORTS)
    {
    .remoteCoreId = IPC_MPU1_0,
    .portId = ETHREMOTECFG_MAC_PORT_6,
    },
    {
    .remoteCoreId = IPC_MCU2_1,
    .portId = ETHREMOTECFG_MAC_PORT_7,
    },
    #endif
    };
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    mcu2_1/main.c

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    CpswRemoteApp_Obj gRemoteAppObj =
    {
    .hUdmaDrv = NULL,
    #if defined(SOC_J721E) || defined(SOC_J784S4)
    .enetType = ENET_CPSW_9G,
    .instId = 0U,
    #elif defined(SOC_J7200)
    .enetType = ENET_CPSW_5G,
    .instId = 0U,
    #endif
    .hEnet = NULL,
    .hEnetDma = NULL,
    .coreKey = ENET_RM_INVALIDCORE,
    .useDefaultRxFlow = false,
    .useExtAttach = true,
    .virtNetif =
    {
    {
    .hCpswProxy = NULL,
    .virtPort = ETHREMOTECFG_SWITCH_PORT_1,
    .macPorts = gRemoteAppMacPorts,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    The phenomenon still exists.  When RCU INFO is displayed, the system cannot start normally.  Are there any restrictions on using QSGMII Sub Port?

    We did not use QGSII, so we have no QGSII hardware.

    Best Regards,

    Zhang

  • Hi,

    We did not use QGSII, so we have no QGSII hardware.

    It should not be problem.
    I have tried default configuration with A72 client alone i.e. MAC Only Port as Port-1 and mapped to A72 without using GESI card, I haven't observed any issue.
    Also, observed A72 client successfully registered with EthFw for Virtual MAC only Port even though GESI Board is not connected to EVM.

    Your issue also may not be related to the change of MAC only Port.

    Can you please share full Linux terminal log and device tree changes to review once.

    Best Regards,
    Sudheer

  • HI,Sudheer

           Thanks for your support. The log as follows.When RCUINFO appears, sometimes it can starts successfully,sometimes not.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    U-Boot 2021.01 (Dec 18 2023 - 11:53:42 +0800)
    SoC: J721E SR1.1 GP
    Model: Texas Instruments K3 J721E SoC
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -1
    Board: J721EX-PM1-SOM rev E2
    DRAM: 4 GiB
    Flash: 0 Bytes
    MMC: sdhci@4f80000: 0, sdhci@4fb0000: 1
    Loading Environment from FAT... OK
    In: serial@2800000
    Out: serial@2800000
    Err: serial@2800000
    am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA00101 cpsw_ver: 0x6BA80100 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -1
    cdns,sierra serdes@5000000: sierra probed
    Net: eth0: ethernet@46000000port@1
    ota_init
    bootfirst=0, trycount=255, bootpart=1:2
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    dts

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // SPDX-License-Identifier: GPL-2.0
    /*
    * Copyright (C) 2019 Texas Instruments Incorporated - https://www.ti.com/
    */
    /dts-v1/;
    #include "k3-j721e-som-p0.dtsi"
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/net/ti-dp83867.h>
    #include <dt-bindings/phy/phy-cadence.h>
    / {
    chosen {
    stdout-path = "serial2:115200n8";
    bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
    };
    evm_12v0: fixedregulator-evm12v0 {
    /* main supply */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Best Regards,

    Zhang

  • Hi,

    Can you check u-boot environment variable "dorprocboot" set to 1 or not? If not can you please set "dorprocboot" to 1 and check again.
    It is recommended to enable to load firmwares in R5F cores in a sequence of order. If firmware loading by Linux means not sure it will load in proper order or not.

    Procedure to set environment variable:
    Stop at uboot prompt and run below commands.

    1. printenv
    2. setenv dorprocboot 1
    3. saveenv
    4. Power off & on Board.


    Best Regards,
    Sudheer

  • HI,Sudheer

         Thanks for your support. We have tested set dorprocboot 1. Now it's no RCU info, but other Serrors occur. The log as follows:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    U-Boot 2021.01 (Dec 18 2023 - 11:53:42 +0800)
    SoC: J721E SR1.1 GP
    Model: Texas Instruments K3 J721E SoC
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -1
    Board: J721EX-PM1-SOM rev E2
    DRAM: 4 GiB
    Flash: 0 Bytes
    MMC: sdhci@4f80000: 0, sdhci@4fb0000: 1
    Loading Environment from FAT... OK
    In: serial@2800000
    Out: serial@2800000
    Err: serial@2800000
    am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA00101 cpsw_ver: 0x6BA80100 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -1
    cdns,sierra serdes@5000000: sierra probed
    Net: eth0: ethernet@46000000port@1
    ota_init
    bootfirst=0, trycount=255, bootpart=1:2
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

         We think it may be related to RTC or clock, so we disbale RTC driver, test sometimes it's OK.

         After test sometimes, we enable RTC again. The probability of startup failure is about 50%. Can you give some advices?

    Best Regards,

    Zhang 

  • HI,Sudheer

         After test sometimes, we found that  Serror occurs when RTC and SSD(SERDES1) are used simultaneously, if we disable either of them, it's OK.

        1. we don't use RTC as clock(MCP79410 MFP left float)

        2. clock of SSD(SERDES1) from ClOCK GENERATOR

        Could you give us some advices?

    Best Regards,

    Zhang 

  • Hi,

    Can you post this issue in a separate thread, as it will not be related to Ethernet Issue. 
    It could be easy to track in future if any similar issues observed.

    Also, From log it seems like "nvme_reset_work" issue, might be related to PCIe.

    Best Regards,
    Sudheer