8.9. EthFW Testing Methodology for Patch 8.4.4

8.9.1. Introduction

SDK 8.4.4 adds support for XAUI and USXGMII modes, in addition to the SGMII and QSGMII modes already supported in previous SDKs.

The following sections will show and explain the steps require to update the CPSW Ethernet Firmware image for Linux as well as the test methodology to validate XAUI and USXGMII in a dedicated MAC-to-MAC configuration between two J7200 EVMs.

8.9.2. Software Setup

  1. Download the following files from J7200 Linux SDK (PROCESSOR-SDK-LINUX-J7200) version 08.04.00.04 from https://www.ti.com/tool/PROCESSOR-SDK-J7200.

    1. J7200 Linux Target File System (tisdk-default-image-j7200-evm.tar.xz)

    2. J7200 Linux boot partition (boot-j7200-evm.tar.gz)

  2. Download J7200 RTOS SDK (PROCESSOR-SDK-RTOS-J7200) version 08.04.04.04 from https://www.ti.com/tool/PROCESSOR-SDK-J7200.

    1. Source package (ti-processor-sdk-rtos-j7200-evm-08_04_04_04.tar.gz)

    2. Extract the tar file. The resulting folder (ti-processor-sdk-rtos-j7200-evm-08_04_04_04) will be referred to as ${PSDK_PATH}

8.9.3. Upgrading CPSW Ethernet Firmware

RTOS SDK 08.04.04.04 provides a precompiled Ethernet Firmware (ETHFW) image that upgrades the image from previous SDK 08.04.00.04. To test the updated ETHFW image, we will copy it over and replace it on the default J7200 Linux 08.04.00.04 Processor SDK.

The first step is to prepare a SD card to boot the default Linux image. For detailed instructions to partition a SD card for Linux, please follow: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j7200/08_04_00_06/exports/docs/j7200/linux/Overview/Processor_SDK_Linux_Formatting_SD_Card.html using the Processor SDK Linux for J7200. If you already have a formatted SD card, then you can proceed to the following steps.

With a formatted SD card (using the downloaded tar files from step 1 of “Software Setup”):

rm -rf /media/${USER}/boot/*
rm -rf /media/${USER}/rootfs/*
tar -xf tisdk-default-image-j7200-evm.tar.xz -C /media/${USER}/rootfs/
tar -xf boot-j7200-evm.tar.gz -C /media/${USER}/boot/

And then replace ETHFW image with the new one from SDK 08.04.04.04:

cd ${PSDK_PATH}/ethfw/
make ethfw_all BUILD_SOC_LIST=J7200
sudo cp out/J7200/R5Ft/FREERTOS/release/app_remoteswitchcfg_server_strip.xer5f /media/${USER}/root/lib/firmware/ethfw/

It’s recommended to validate the new Ethernet Firmware image by testing virtual switch port (eth1) and virtual MAC port (eth2) on Linux. To achieve this, setup the EVM as shown below:

_images/EthFw_8_4_4_linux_setup_above.png
_images/EthFw_8_4_4_linux_setup_side.png

Note

Cables 1 and 2 will need to be connected to different subnets that each have a DHCP server running.

This can be achieved by running a DHCP server with a USB Ethernet adapter as a target and a manually assigned ip, gateway, and subnet on one of the Ethernet cables, while plugging in the other into a home router or some other similar network with DHCP.

8.9.4. Validation Steps

Assuming that both ports are correctly connected to different subnets that each have DHCP servers, two adapters should appear in the output of ifconfig on the J7200 EVM: eth1 and eth2. These two adapters should also have been assigned an IP address for each. To validate, ping each IP from their respective subnets to ensure that the connections are working correctly.

8.9.5. XAUI and USXGMII

XAUI (2.5Gbps) and USXGMII (5 and 10Gbps) are new features introduced in SDK 08.04.04.04. Unlike QSGMII which is validated in MAC-to-PHY mode (VSC8514 Ethernet PHY), XAUI and USXGMII validation requires MAC-to-MAC connection between two J7200 EVMs using a dedicated SGMII bridge board. The test setup is shown in below block diagram and further details are described in the following sections.

_images/EthFw_8_4_4_XAUI_setup_diagram.png

8.9.5.1. Hardware Requirements

2 x J7200 EVMs
2 x GESI expansion boards
1 x SGMII bridge board (Also labeled as “Ethernet Expansion Bridge”)
2 x micro SD cards
2 x micro USB cables for UART logging
1 x Ethernet cable

8.9.5.2. XAUI and USXGMII EVM Setup

_images/EthFw_8_4_4_XAUI_setup_above.png
_images/EthFw_8_4_4_XAUI_setup_side.png

On two J7200 EVMs connect the GESI daughter boards on to each one. Then disconnect the QSGMII expansion boards on top and connect the Ethernet Expansion Bridge on the connectors of both EVMs as shown above. Plug in one Ethernet cable onto the GESI port of one EVM shown visually above on one of the EVMs and connect the other end to a Linux PC running a DHCP server.

8.9.5.3. Software Requirements

XAUI and USXGMII validation requires ETHFW to be recompiled for the EVM configuration for MAC-to-MAC testing. ETHFW and PDK source code are both required, and they are part of the RTOS SDK source package downloaded as described in “Software Setup” section.

The test is done by loading ETHFW via SBL in the two EVMs via SD card boot.

8.9.5.4. How to Build Boot Image from Recompiled Artifacts

Script

cp -v ${PSDK_PATH}/pdk_j7200_08_04_04_04/packages/ti/boot/sbl/binary/j7200_evm/mmcsd/bin/sbl_mmcsd_img_mcu1_0_release.tiimage /media/${USER}/boot/tiboot3.bin
cp -v ${PSDK_PATH}/pdk_j7200_08_04_04_04/packages/ti/drv/sciclient/soc/V2/tifs.bin /media/${USER}/boot/

export BIN_PATH=/tmp
export PDK_INSTALL_PATH=${PSDK_PATH}/pdk_j7200_08_04_04/packages
cd ${PSDK_PATH}/pdk_j7200_08_04_04/packages
./ti/boot/sbl/tools/scripts/K3ImageGen.sh 8 ti/drv/sciclient/tools/ccsLoadDmsc/j7200/sciserver_testapp_freertos_mcu1_0_release.xer5f
./ti/boot/sbl/tools/scripts/K3ImageGen.sh 10 ${PSDK_PATH}/ethfw/out/J7200/R5Ft/FREERTOS/release/app_remoteswitchcfg_server_ccs.xer5f
./ti/boot/sbl/tools/multicoreImageGen/bin/MulticoreImageGen LE 55 /media/${USER}/boot/app \
    8 /tmp/sciserver_testapp_freertos_mcu1_0_release.rprc \
    10 /tmp/app_remoteswitchcfg_server_ccs.rprc

rm -v /tmp/*.rprc

8.9.5.5. XAUI Validation Steps

  • Recompile the ETHFW with the XAUI compile options:

cd ${PSDK_PATH}/ethfw
make ethfw_all_clean
make ethfw_all BUILD_SOC_LIST=J7200 ALT_CFG=RGMII_XAUI
  • Build the boot app from the recompiled ETHFW mentioned in “How to build boot image from recompiled artifacts”

    • Do this per SD card.

  • Make sure the hardware is setup as shown in “XAUI and USXGMII EVM Setup”

    • Make sure to connect to the Main UARTs with micro-USB cables and open the 3rd UART on each EVM.

  • An IP should be assigned to each EVM, which will be printed out on each EVM’s 3rd UART.

  • In order to validate the connection is working, the Linux PC that is connected to one of the EVM’s GESI ports should be able to successfully ping both of the IPs.

For visual reference, here’s a picture of the serial output of the EVMs:

_images/EthFw_8_4_4_XAUI_UART_output.png

And this is the associated ping tests:

_images/EthFw_8_4_4_XAUI_ping_output.png

8.9.5.6. USXGMII Validation Steps

USXGMII requires SERDES core_refclk to be configured at 156.25 MHz. This can be sourced from MAIN_PLL3_HSDIV4_CLKOUT as long as MAIN_PLL3 VCO is configured to be 2500 MHz.

The steps to validate the 5Gbps and 10Gbps configurations are the same as for XAUI, as long as the correct recompile options are selected from the “How to Recompile” section.

5Gbps:

  • Recompile the ETHFW with the “USXGMII (5Gbps)” compile options:

cd ${PSDK_PATH}/ethfw
make ethfw_all_clean
make ethfw_all BUILD_SOC_LIST=J7200 ALT_CFG=RGMII_USXGMII5G
  • Build the boot app from the recompiled ETHFW mentioned in “How to build boot

  • image from recompiled artifacts”

    • Do this per SD card.

  • Make sure the hardware is setup as shown in “XAUI and USXGMII EVM Setup”

    • Make sure to connect to the Main UARTs with micro-USB cables and open the 3rd UART on each EVM.

  • An IP should be assigned to each EVM, which will be printed out on each EVM’s 3rd UART.

  • In order to validate the connection is working, the Linux PC that is connected to one of the EVM’s GESI ports should be able to successfully ping both of the IPs.

10 Gbps:

  • Recompile the ETHFW with the “USXGMII (10Gbps)” compile options:

cd ${PSDK_PATH}/ethfw
make ethfw_all_clean
make ethfw_all BUILD_SOC_LIST=J7200 ALT_CFG=RGMII_USXGMII10G
  • Build the boot app from the recompiled ETHFW mentioned in “How to build boot image from recompiled artifacts”

    • Do this per SD card.

  • Make sure the hardware is setup as shown in “XAUI and USXGMII EVM Setup”

    • Make sure to connect to the Main UARTs with micro-USB cables and open the 3rd UART on each EVM.

  • An IP should be assigned to each EVM, which will be printed out on each EVM’s 3rd UART.

  • In order to validate the connection is working, the Linux PC that is connected to one of the EVM’s GESI ports should be able to successfully ping both of the IPs.