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] TDA4VL: RGMII not working on MAIN_CPSW2G in SDK 8.5 and SDK 8.6

Part Number: TDA4VL

I want to use RGMII on MAIN_CPSW2G of TDA4VL. The link is up, but I am not able to establish a communication. I can see that Rx is working but Tx is not working.

  • Hi,

    This is a known issue in SDK 8.5 and SDK 8.6. The reason for this issue being that RGMII clocks are not being set correctly which is affecting the Tx path of RGMII.

    To fix this issue, you need to:

    1. Change the DM firmware running on mcu1_0
    2. Change the GTC and CPTS clock source so as to not affect the these clocks

    Change the DM firmware running on mcu1_0

    Use the following patch on rm_pm_hal. Patch : https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/1045/2677.pll0_5F00_no_5F00_hw_5F00_init.patch

    To apply the patch :

    1. Go to -[PSDK-RTOS-Install-directory]/pdk_j721s2_[version-string]/packages/ti/drv/sciclient/src/rm_pm_hal
    2. Run - git init && git apply <path-to-patch>

    To build firmware :

    1. Go to - [PSDK-RTOS-Install-directory]/pdk_j721s2_[version-string]/packages/ti/build
    2. Run -
      1. make BOARD=j721s2_evm CORE=mcu1_0 rm_pm_hal_clean
      2. make BOARD=j721s2_evm CORE=mcu1_0 ipc_echo_testb_freertos

    The built binary will be available in [PSDK-RTOS-Install-directory]/pdk_j721s2_[version-string]/packages/ti/binary/ipc_echo_testb_freertos/bin/j721s2_evm/

    The prebuilt version of the binary for SDK 8.5 is available here : https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/1045/2677.ipc_5F00_echo_5F00_testb_5F00_mcu1_5F00_0_5F00_release_5F00_strip.xer5f

    To include the DM in SPL boot flow, copy the binary to [PSDK-Linux-Install-directory]/board-support/prebuilt-images/ and rebuild the linux bootloaders (majorly tiboot3.bin). See below for building the linux bootloaders.

    Change the GTC and CPTS clock source

    Apply the following patch on u-boot. Patch - https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/1045/2677.0001_2D00_arch_2D00_arm_2D00_dts_2D00_k3_2D00_j721s2_2D00_Change_2D00_GTC_2D00_and_2D00_CPTS_2D00_clock_2D00_par.patch

    To apply the patch:

    1. Go to - [PSDK-Linux-Install-directory]/board-support/u-boot-[commit-hash]/
    2. Run - git apply <path-to-patch>

    To build the linux bootloaders:

    1. Go to - [PSDK-Linux-Install-directory]
    2. Run - "make u-boot"
    3. Bootloaders will be built in -
      1. tiboot3.bin - [PSDK-Linux-Install-directory]/board-support/k3-image-gen-[version]/tiboot3.bin
      2. tispl.bin - [PSDK-Linux-Install-directory]/board-support/u-boot_build/a72/tislp.bin
      3. u-boot.img  - [PSDK-Linux-Install-directory]/board-support/u-boot_build/a72/u-boot.img
    4. You should copy these three bootloaders in your boot media.

    With this, you will see RGMII clock being set to its appropriate value and RGMII Tx will be operational.

    Regards,
    Tanmay