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.

[TDA4] GESI Ethernet expansion board support

Hello TI,

I am creating this as a related question to https://e2e.ti.com/support/j721e/f/1026/t/846468

My question is: is the J721E GESI board supported with the current Linux SDK?

With uenv.txt set to contain:

dorprocboot=1
overlay_files=j721e-auto-common.dtbo k3-j721e-common-proc-board-psdkla-apps.dtbo

I get the following from U-Boot during system startup:

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
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 4
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 E3
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... *** Warning - bad CRC, using default environment

In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
Detected: J7X-BASE-CPB rev E3
Detected: J7X-GESI-EXP rev E3
Detected: J7X-VSC8514-ETH rev E2
Net:   
Warning: ethernet@046000000 using MAC address from ROM
eth0: ethernet@046000000
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc1 is current device
SD/MMC found on device 1
** Unable to read file boot.scr **
95 bytes read in 1 ms (92.8 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc1 ...
6216452 bytes read in 263 ms (22.5 MiB/s)
Load Remote Processor 3 with data@addr=0x80080000 6216452 bytes: Success!
** File not found /lib/firmware/j7-main-r5f1_0-fw **
** File not found /lib/firmware/j7-c66_0-fw **
** File not found /lib/firmware/j7-c66_1-fw **
** File not found /lib/firmware/j7-c71_0-fw **
13338632 bytes read in 559 ms (22.8 MiB/s)
98400 bytes read in 5 ms (18.8 MiB/s)
** File not found /boot/j721e-auto-common.dtbo **
** File not found /boot/k3-j721e-common-proc-board-psdkla-apps.dtbo **
## Flattened Device Tree blob at 82000000
   Booting using the fdt blob at 0x82000000
   Loading Device Tree to 00000000fdda6000, end 00000000fdec1fff ... OK

Starting kernel ...


Apparently the two .dtbo files that would enable me to use the Ethernet expansion board (j721e-auto-common.dtbo and k3-j721e-common-proc-board-psdkla-apps.dtbo) are not found in the rootfs/boot directory.

Any help is greatly appreciated!

  • I think the current dtb file names are k3-j721e-psdkla-apps.dtbo and k3-j721e-auto-common.dtbo

  • There is more information on dtb files in linux/How_to_Guides/Target/How_to_Change_dtb_File.html portion of PSDKLA documentation.

  • Hello Piotr,

    As mentioned by Vishal, the dtso file for gateway demos (using GESI board) is k3-j721e-psdkla-apps.dtso.

    Note that this file disables Main domain UART2 from the Linux Kernel so EthFw controlling CPSW9G can use it for it's logging. 

    Apart from this, we don't do anything as such to enable GESI in Linux. You need to connect GESI board and open UART2 in terminal/teraterm, you should be able to see logs from EthFw.

    Please refer to section docs/linux/How_to_Guides/Target/How_to_Change_dtb_File.html for more details.

    uenv.txt.gateway Use for running gateway demos. Ethernet connected via GESI adapter card. CAN connected via GESI card Ethernet firmware symlink updated in filesystem.
  • Hello Prasad,

    after changing my uenv.txt to look as follows:

    overlay_files=
    fdtfile=k3-j721e-proc-board-beta.dtb k3-j721e-auto-common.dtbo k3-j721e-psdkla-apps.dtbo
    

    the U-Boot reports no "File not found ...". 

    The thing is that now, indeed - I am able to see that on UART2 there is an init message from EthFw:

    Enabling clocks for CPSW_9G!
    =======================================================
               EthFw L2 Switching APP          
    =======================================================
    Host MAC address: 04:01:02:03:04:05
    CPSW_9G Test on MAIN NAVSS
    CpswPhy_bindDriver: PHY 15: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
    CpswPhy_bindDriver: PHY 12: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
    CpswPhy_bindDriver: PHY 3: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
    PHY 0 is alive
    PHY 3 is alive
    PHY 12 is alive
    PHY 15 is alive
    PHY 23 is alive
    [NIMU_NDK] CPSW has been started successfully
    
    CPSW NIMU application, IP address I/F 1: 192.168.1.203
    
    PU Load: 63%
    IP: 192.168.1.203
    =================================================
                       Switch Options                
    =================================================
     1. Enable/Disable VLAN 
     2. Enable/Disable Multicast
     3. Enable/Disable Rate Limiting 
     4. Enable/Disable InterVLAN 
     5. Print ALE & Policer Table 
     Enter your choice: 
    
    =================================================
                       Switch Options                
    =================================================
     1. Enable/Disable VLAN 
     2. Enable/Disable Multicast
     3. Enable/Disable Rate Limiting 
     4. Enable/Disable InterVLAN 
     5. Print ALE & Policer Table 
     Enter your choice: 
    CPU Load: 1%
    CPU Load: 1%
    �����������������������������������������������������������������������������������������������������
    

    which, as visible in the last log line, is corrupted when Linux kernel changes the UART2 config. The problem is that even after going back to an example with no device tree overlays loaded, it still does not allow to control EthFw config (options 1 to 5, named eg. Enable/Disable VLAN, etc.).

    Is there any way we can control this?

    Is there any plan for TI to make the GESI board accessible from within Linux?

  • Hello Piotr,

    You see corrupted UART log as the overlay file which disables UART2 access from Linux is not taking effect. Can you please let me know SDK version information? I believe you are not using SDK6.1.

    In the latest SDK (PSDKRA6.1), we have enabled GUI based configuration and more demos as well. If possible can you update to 6.1?

    Piotr Cerba said:

    Is there any plan for TI to make the GESI board accessible from within Linux?

    In current design Linux will not have direct access to GESI board. With Linux Virtual MAC driver enabled in 6.1, you can receive data from GESI board ports on Linux if that is you looking for.

    Please refer to SDK6.1 developer notes for detailed information about Ethernet offerings.

  • Closing the thread due to inactivity. Please reply below or open a new thread in case of any open questions. 

  • Hello Prasad,

    I have now made sure I am using the latest SDK (6.00.5 with kernel 4.19.73 from Oct 24).

    The message I received on UART2:

    GESI board detected
    Enabling clocks for CPSW_9G!
    =======================================================
               CPSW Ethernet Firmware Demo             
    =======================================================
    CPSW_9G Test on MAIN NAVSS
    IPC_echo_test (core : mcu2_0) .....
    Remote device (core : mcu2_1) .....
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
    Remote demo device (core : mcu2_0) .....
    CpswPhy_bindDriver: PHY 3: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
    PHY 0 is alive
    PHY 3 is alive
    PHY 12 is alive
    PHY 15 is alive
    PHY 23 is alive
    Host MAC address: 70:ff:76:1d:93:a8
    [NIMU_NDK] CPSW has been started successfully
    Function:app_ethrdev_srv_cb_attach_ext_handler,HostId:0,CpswType:1
    Function:app_ethrdev_srv_cb_register_mac_handler,HostId:0,Handle:a2b371c0,CoreKey:38acb7e6, MacAddre0
    Cpsw_ioctlInternal: CPSW: Registered MAC address.ALE entry:10, Policer Entry:0
    

    My question is - how can I access "GUI based configuration"? Which TI demos cover this topic?

    Besides, I would like to know how to enable virtual MAC driver, so that I am able to receive/transmit data from GESI board ports.

    Best regards,

    Peter

  • Hello Peter,

    Glad you are able to get UART logs now for EthFw.

    From the logs, I see no IP address printed for the EthFw. This can be because of 

    1. GESI board port 2 not connected to network running DHCP 
    2. GESI board port 2 and 3 not connected to network - to enable switching demo EthFw doesn't proceed if both ports are not connected. Please connect both these ports so link comes up and EthFw proceeds with rest of functionality

  • Hello Prasad,

    I have connected Port 2 and port 3 to local switch. Log from UART2 looks now as follows:

    GESI board detected
    Enabling clocks for CPSW_9G!
    =======================================================
               CPSW Ethernet Firmware Demo             
    =======================================================
    CPSW_9G Test on MAIN NAVSS
    IPC_echo_test (core : mcu2_0) .....
    Remote device (core : mcu2_1) .....
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
    Remote demo device (core : mcu2_0) .....
    CpswPhy_bindDriver: PHY 3: OUI:080028 Model:23 Ver:01 <-> 'dp83867' : OK
    PHY 0 is alive
    PHY 3 is alive
    PHY 12 is alive
    PHY 15 is alive
    PHY 23 is alive
    Host MAC address: 70:ff:76:1d:93:a8
    [NIMU_NDK] CPSW has been started successfully
    Cpsw_handleLinkUp: port 2: Link up: 100-Mbps Full-Duplex
    Cpsw_handleLinkUp: port 3: Link up: 100-Mbps Full-Duplex
    Function:app_ethrdev_srv_cb_attach_ext_handler,HostId:0,CpswType:1
    Function:app_ethrdev_srv_cb_register_mac_handler,HostId:0,Handle:a2b371c0,CoreKey:38acb7e6, MacAddre0
    Cpsw_ioctlInternal: CPSW: Registered MAC address.ALE entry:11, Policer Entry:0
    

    Links are indeed up, but nothing happens afterwards - I mean no traffic/demo running. 

    What am I missing here in order to enable access to GUI based configuration?

  • Hello Peter,

    One of port should run the DHCP server so EthFw can acquire an IP address. Can you please confirm that you have DHCP server running?