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.

[FAQ] DRA829VXEVM: Is it possible to connect two DRA829 EVMs via SGMII

Part Number: DRA829VXEVM

Is it possible to connect two DRA829 EVMs in MAC to MAC mode using SGMII connection?

  • Introduction

    On DRA829VXEVM the PCIe x2 lane slot can be used to connect two EVMs in SGMII MAC to MAC mode using a PCIe cable.
    This PCIe slot (PCIE1) is connected to SERDES1 instance.

    Patches & Binaries 


    • Hardware
      • Two DRA829VXEVM
      • PCIe Cable - PE-FLEX1-G2-MMCX-12-TI1
    • Software
      • PSDKRA - V07.00.00.11
      • PSDKLA - V07.00.00.04

    Software Changes

    Note: If EVM1/2 not specified, then changes apply to both EVMs
    EVM1 – SGMII Slave
    EVM2 - SGMII Master


    Move loading of Main R5F0_0 from R5 SPL to A72 u-boot

    Linux Kernel

    Disable SERDES1 configuration from Kernel dts files


    Increase number of RX, TX descriptor from 256 to 500 in cpsw9g virtual mac driver



    Switch to HDMI display instead of DP display


    Use static IP configuration in NDK (ndk.cfg)

    EVM1: vision_app/EVM1_ndk_static_ip.patch
    EVM2: vision_app/EVM2_ndk_static_ip.patch


    Changes for configuring MAC port 2 to SGMII and corresponding SERDES configuration

    EVM1: pdk/EVM1_SGMII_MAC_MAC_configuration.patch
    EVM2: pdk/EVM2_SGMII_MAC_MAC_configuration.patch

    Steps to test

    • Apply the patches and rebuild the components. Skip this step, if pre-built binaries are used.
      • U-boot (PSDKLA)

        # Apply the u-boot changes to <psdkla directory>/board-support/u-boot-2020.01+gitAUTOINC+f9b0d030d3-gf9b0d030d3/
        cd <psdkla directory>
        make u-boot
        # Updated binary:
        <psdkla directory>/board-support/u-boot_build/r5/tiboot3.bin
      • Kernel components (PSDKLA)

        # Apply the kernel changes to <psdkla directory>/board-support/linux-5.4.40+gitAUTOINC+66cf445b76-g66cf445b76
        cd <psdkla directory>
        make linux
        # Updated binary:
        <psdkla directory>/board-support/linux-5.4.40+gitAUTOINC+66cf445b76-g66cf445b76/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dtb
        <psdkla directory>/board-support/linux-5.4.40+gitAUTOINC+66cf445b76-g66cf445b76/arch/arm64/boot/dts/ti/k3-j721e-proc-board-tps65917.dtb
        <psdkla directory>/board-support/linux-5.4.40+gitAUTOINC+66cf445b76-g66cf445b76/drivers/net/ethernet/ti/j721e-cpsw-virt-mac.ko
      • PDK and vision_apps (PSDKRA)

        # Apply the changes to pdk and vision_apps folder of PSDKRA
        cd <psdkra directory>/vision_apps
        make -s pdk ethfw vision_apps
        make linux_fs_install
        # Updated binary:
        <psdkra directory>/targetfs/lib/firmware/j7-main-r5f0_0-fw
    • Update the binaries on SD card (If you are using prebuilt binaries, copy j7-main-r5f0_0-fw-salve to EVM1 and j7-main-r5f0_0-fw-master to EVM2. Rename the files to j7-main-r5f0_0-fw)

      # boot partition:
      # rootfs partition:
    • Boot the board and update the u-boot environment variable to load main R5F0_0 firmware by A72 u-boot (One time setting)

      => setenv rproc_fw_binaries "2 /lib/firmware/j7-main-r5f0_0-fw"
      => env save
    • Power cycle the boards. Ethfw log on 3rd UART port should show the SGMII connection between the two boards established

    • Give static IP to eth1 interface in 192.168.1.x subnet and you can now ping both the EVMs from Linux

      # EVM1
      root@j7-evm:~# ifconfig eth1 netmask up
      # EVM2
      root@j7-evm:~# ifconfig eth1 netmask up