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.
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.”