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: RMII port on GESI Expansion Board does not work

Part Number: TDA4VM

Dear Experts:

I am doing some tests on CPSW9G's RGMII and RMII, because our final hardware design requires both RGMII and RMII ports, so I want to figure out how to configure different modes on any CPSW9G ports.

I found that there is a unit test app in psdk_rtos_auto_j7_06_01_00_15/pdk/packages/ti/drv/cpsw/unit_test, and the gTestTaskCfg in psdk_rtos_auto_j7_06_01_00_15/pdk/packages/ti/drv/cpsw/unit_test/test_framework/cpsw_testconfig.h defines a simple switch logic test case which taskCfgId is TASK_CFG_ID_SWITCH_TEST, so I build the unit test app and load it througt CCS to run the CPSW9G switching test.

Two Gbps ports on GESI Expansion Board work well. But the 100Mbps port does not work, port link is fine, and the port LED blinks when packets go into the port, but no packet switched to other ports at all.

Below is the UART log:

GESI board detected

 
 ===============
 CPSW Test Select
 ===============
 
 Current/Default System Settings:
 ------------------------
 Uart timemout          : 10000 msec
 Default Iteration count            : 1
 
 1: Manual testing (select specific test case to run)
 
 s: System Settings
 
 q: Quit 
 
 Enter Choice: 
1
 
 Manual testing 

 --------------------------------------
 Select test to run as per below table:
 --------------------------------------
 
    1: CPSW9G Switching test
    2: ALE auto learn test
    3: ALE auto learn VLAN test
    4: Mac speed test
    5: Statistics test
    6: VLAN test
    8: CRC strip test
    9: FIFO stats test
   10: ALE source address update
   11: ALE Table full
   12: VLAN drop untagged
   13: Multicast support
   14: Policer test
   15: Network security test
   16: Host port Rx Filter
   17: policer no match red drop enable test 
   18: policer no match yellow drop enable test 
   19: policer no match unregulated traffic test 
   20: Intervlan test 
   21: Default priority
   22: Port VLAN ID
   23: Sanity Test
   24: Outer VLAN Test
   25: Traffic shaping Test
   26: 1-Gbps Full-Duplex Auto-Neg Test
   27: 100-Mbps Full-Duplex Auto-Neg Test
   28: 100-Mbps Half-Duplex Auto-Neg Test
   29: DMA RxFlow Mtu Test
   30: PHY Strap mode Test
   31: Host sends 10 packets per VLAN PCP, PCP is inverted and switch priority is remapped
 
 Enter Test to Run (Use UART1 console for all cores or MCU_UART1 console for MCU) 
1
1
 
 |TEST START|:: 1 ::
 |TEST NAME| :: CPSW9G Switching test ::
 |TEST INFO| :: Num Tasks         : 1 ::
 |TEST INFO| :: Data Check        : Disabled ::
 |TEST INFO| :: Profiling         : Disabled ::
 |TEST INFO| :: Print             : Disabled ::
 |TEST INFO| :: Run Instructions  : To be added ::


 |TEST ITEARATION NUMBER| ::      : 1 ::
Enabling clocks for CPSW_9G!
CPSW_9G Test on MAIN NAVSS
CpswPhy_bindDriver: PHY 0: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
CpswPhy_bindDriver: PHY 3: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
CpswPhy_bindDriver: PHY 23: OUI:080028 Model:24 Ver:00 <-> 'generic' : OK
initQs() txFreePktInfoQ initialized with 1000 pkts
Host MAC address: 70:ff:76:1d:87:64
PHY 0 is alive
PHY 3 is alive
PHY 23 is alive
Waiting for PHY link on enabled ports mask:0x8C 
Cpsw_isPortLinkUp: invalid layer 1
Cpsw_handleLinkUp: port 7: Link up: 100-Mbps Full-Duplex
MAC Port 7: link up
Cpsw_handleLinkUp: port 2: Link up: 1-Gpbs Full-Duplex
MAC Port 2: link up

  • What version of J721E EVM are you using? Alpha or Beta? Alpha EVMs require a board modification for RMII port. Beta EVMs work fine out of the box.

  • I think it is Beta, here is the U-Boot log:

    U-Boot SPL 2019.01-g66126341c8 (Oct 24 2019 - 03:52:25 +0000)
    SYSFW ABI: 2.6 (firmware rev 0x0013 '19.8.0-v2019.08 (Terrific Llama')
    Trying to boot from MMC2
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment
    
    Remoteproc 2 started successfully
    ** File not found /lib/firmware/j7-mcu-r5f0_0-fw **
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.1(release):ti2019.02-rc4
    NOTICE:  BL31: Built : 03:52:00, Oct 24 2019
    I/TC: 
    I/TC: OP-TEE version: ti2019.02-89-ge5a8779-dev (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 Thu Oct 24 03:52:22 UTC 2019 aarch64
    I/TC: Initialized
    
    U-Boot SPL 2019.01-g66126341c8 (Oct 24 2019 - 03:52:45 +0000)
    Detected: J7X-BASE-CPB rev E3
    Detected: J7X-GESI-EXP rev E2
    Detected: J7X-VSC8514-ETH rev E2
    Trying to boot from MMC2
    ti_sci_power_domain_on: get_device(91) failed (-19)
    
    
    U-Boot 2019.01-g66126341c8 (Oct 24 2019 - 03:52:45 +0000)
    
    SoC:   J721E PG 1.0
    Model: Texas Instruments K3 J721E SoC
    Board: J721EX-PM2-SOM rev E7
    DRAM:  4 GiB
    Flash: 0 Bytes
    MMC:   ti_sci_power_domain_on: get_device(91) failed (-19)
    sdhci@4f80000: 0, sdhci@4fb0000: 1
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Detected: J7X-BASE-CPB rev E3
    Detected: J7X-GESI-EXP rev E2
    Detected: J7X-VSC8514-ETH rev E2
    Net:   eth0: ethernet@046000000
    Hit any key to stop autoboot:  1 

    But my GESI board is taken from a Alpha board. Does GESI board have different version?

  • Yes, I see that the GESI board version is E2. The board modification I was referring to is in GESI board only. Do you have the GESI board from Beta EVM?

  • I have only this one GESI board in my hand, but our company purchased more GESI boards and are on shipping. I will check the GESI board version, then retry my test once I get new GESI board, and update my test results here.

    Thanks.

  • You should be able to use alpha revision GESI boards with minor modifications repeated below from user guide.

    Note: To enable RMII on CPSW9G, external 50 MHz RMII clock from PHY is used on SOC RMII_REF_CLOCK pin. On GESI board, this clock is connected as resistor R225 is not populated.  To get RMII_50MHZ_CLK, resistor R225 needs to be populated. We need to move R226 to R225 on GESI board to get this clock.”