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.

J721EXSOMXEVM: Command to load Ethernet Firmware manually from Linux

Part Number: J721EXSOMXEVM
Other Parts Discussed in Thread: SYSBIOS

Hello,

We have a J721e based custom board, and we are using common UART i.e. UART7 for A72 & Ethernet Firmware debug logs.

Currently, we are debugging the ethernet firmware and UART logs from Linux & Eth Firmware are blended and it's hard to read the logs emitted from the Ethernet switch.

I want to manually load the Ethernet switch from Linux after the A72 completes its boot. Could you please let me know the command on how to load Ethernet firmware from the command line?

Thanks,

Satish 

  • Hi Satish,

    I will check and get back. In default bootflow, EthFW is brought up before Linux boot completes so virtual MAC interface is up at boot. Would you like to load from U-boot instead ?

    Regards

    Vineet

  • Hi Vineet,

    I have been trying to see clear logs from Ethernet firmware. Sure I think if we can load Ethernet firmware from u-boot that should give me clear logs. It would be great if you can share the command to load Eth firmware from u-boot. 

    on Virtual MAC interface. 

    I am using SDK 7.0. When should I expect the virtual MAC port to show up on Linux?

    What I mean is - Currently on my setup Ethernet firmware running with SGMII PHY connection established (Ethernet caps are found but Link is not established yet) If I type "ifconfig -a" on Linux I don't see any Ethernet interface. Should I expect this ethernet interface when LInk is established?

    Thanks,

    Satish

  • Hi Vineet,

    Getting a Virtual MAC port up in Linux is a blocker for us. Any help would be appreciated here. 

    Thanks,

    Satish

  • Hi Satish,

    Sorry for the delay.

    I am sharing the steps to load remote proc firmware via uboot

    1. First thing is you need to do is bring firmware from MMC to RAM : fatload mmc 1 0x80000000 <firmware_name>.elf (0x80000000 is DDR address)
    2. Start remote proc : rproc init
    3. Load the ELF to the remote core : rproc load 0 0x80000000 5676 (Here 5676 is the size, 0 is the Core ID, 0x80000000 is DDR address)

    You can find the Core ID here

    Regards

    Vineet

  • Hi Satish,

    1. Link will be established when Ethernet Firmware comes up successfully

    2. You should be able to see the Ethernet interface in Linux at boot-up provided that Ethernet Firmware is brought up earlier.

    Regards

    Vineet

  • Thanks, Vineet. 

    The following command worked for me to load the ethernet switch firmware from u-boot. Now I can see the clear logs from u-boot and It doesn't blend with the Linux boot log. 

    rproc init
    load mmc 0:1 0x90000000 /lib/firmware/j7-main-r5f0_0-fw
    rproc load 2 0x90000000 0x${filesize}
    rproc start 2

    Thank you again for those commands. 

    The last Piece which is still a mystery to me is getting virtual MAC port up in Linux . 

    On Virtual MAC Port -

    One in several power cycle I see that Firmware is loading up fine and the Host port is getting the IP address i.e. 192.168.1.203 . I would have expected the virtual port to show up if I type "ifconfig" at this point.  Do you agree here? I am just trying to figure out what piece I am missing.

    Just wanted to let you know that I have removed CPSW_2g related device tree changes from Linux DTS file as we don't have any Industrial PHY. I am just keeping CPSW_9g related dts changes. Could that be an issue here?

    => Enabling clocks for CPSW_9G!
    =======================================================
                CPSW Ethernet Firmware                     
    =======================================================
    CPSW_9G Test on MAIN NAVSS
    CpswMacPort_configSgmii: MAC 2: Configuring SGMII in SGMII_WITH_PHY mode 
    CpswPhy_setNextState: PHY 0: INIT -> FINDING (20 ticks)
    CpswPhy_setNextState: PHY 0: FINDING -> FOUND (0 ticks)
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'vsc8514'
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'dp83822'
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'dp83867'
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'dp83tg720' : OK
    CpswPhy_open: PHY 0: open
    PHY 0 is alive
    PHY 4 is alive
    PHY 5 is alive
    PHY 8 is alive
    PHY 10 is alive
    PHY 12 is alive
    
    ETHFW Version   : 0.01.01
    ETHFW Build Date: Feb 22, 2021
    ETHFW Build Time: 16:20:31
    ETHFW Commit SHA: 1dc91cd6
    
    Dp83tg720_reset: PHY 0: global soft-reset
    IPC_echo_test (core : mcu2_0) .....
    CpswPhy_setNextState: PHY 0: FOUND -> RESET_WAIT (10 ticks)
    Remote demo device (core : mcu2_0) .....
    Dp83tg720_isResetComplete: PHY 0: global reset is  complete
    CpswPhy_setNextState: PHY 0: RESET_WAIT -> ENABLE (0 ticks)
    CpswPhy_enableState: PHY 0: enable
    Dp83tg720_config: Applying configuration for Chip 4
    Dp83tg720_readStraps: Strap is 0x2020
    Dp83tg720_readStraps: Strap: Master Mode enabled
    Dp83tg720_readStraps: Strap: SGMII Mode enabled
    Dp83tg720_config: PHY 0: Enabling SGMII Mode
    Dp83tg720_resetHw: PHY 0: global hard-reset
    Dp83tg720_reset: PHY 0: global soft-reset
    Dp83tg720_isResetComplete: PHY 0: global reset is  complete
    Dp83tg720_setLoopbackCfg: PHY 0: disable loopback
    Dp83tg720_reset: PHY 0: global soft-reset
    Dp83tg720_isResetComplete: PHY 0: global reset is  complete
    Dp83tg720_configIntr: PHY 0: Disable interrupts
    PHY 0: SGMII_CTRL       = 0x027b
    PHY 0: RGMII_CTRL       = 0x0120
    PHY 0: RGMII_DELAY_CTRL = 0x0000
    PHY 0: RGMII_DELAY_TX_RX = 0x0980
    PHY 0: REG_MasterSlave = 0xc001
    CpswPhy_enableState: Automotive PHY detected. Skipping Auto-Negotiation
    CpswPhy_enableState: PHY 0: req caps: FD1000 HD1000 FD100 HD100 FD10 HD10 
    CpswPhy_enableState: PHY 0: PHY caps: FD1000 
    CpswPhy_enableState: PHY 0: MAC caps: FD1000 FD100 HD100 FD10 HD10 
    CpswPhy_enableState: PHY 0: refined caps: FD1000 
    CpswPhy_enableState: PHY 0: PHY is notNWAY-capable
    CpswPhy_enableState: PHY 0: falling back to manual mode
    CpswPhy_enableState: PHY 0: new link caps: FD1000 
    CpswPhy_enableState: PHY 0: manual setup
    CpswPhy_setupManual: PHY 0: requested mode: 1 Gbps full-duplex
    CpswPhy_setNextState: PHY 0: ENABLE -> LINK_WAIT (50 ticks)
    Host MAC address: 70:ff:76:1d:92:c2
    Host MAC address: 70:ff:76:1d:92:c2
    [NIMU_NDK] CPSW has been started successfully
    
    CPSW NIMU application, IP address I/F 1: 192.168.1.203
    
    Rx Flow for Software Inter-VLAN Routing is up
    CpswPhy_phyTimeOut: PHY 0: timeout has occurred

    Thanks,

    Satish

  • Hi Satish,

    Can you try out with the steps mentioned here ?

    Regards

    Vineet

  • Hi Vineet,

    Thank you for sharing that link. I was able to follow the command from that link build was successful.  Could you please help me with this -

    1) After the build completes, what I have to do next? The link doesn't explain which file I have to load and do I have to still load on MCU2_0 core?

    2) From this command "make -s pdk ethfw vision_apps". I noticed that it builds "utils/ethfw" app. "vision_apps/utils/ethfw/src/app_ethfw.c" contains a table of MAC ports (see below) which doesn't match with the MAC table listed in "main_tirots.c". 

    2a) Does MAC table in"app_ethfw.c" has to be identical to "main_tirots.c"? Is there any other changes I have to make in "app_ethfw.c"?

    2b) Does "make -s pdk ethfw vision_apps" builds the PHY driver, SerDes changes etc. which I made so far?

    static EthFw_Port gEthAppPorts[] =
    {
        {
            .portNum    = CPSW_MAC_PORT_0,
            .vlanConfig = { .portPri = 0U, .portCfi = 0U, .portVID = 0U },
        },
    #if defined(SOC_J721E)
        /* On J721E EVM to use all 8 ports simultaneously, we use below configuration
           RGMII Ports - 1,3,4,8. QSGMII ports - 2,5,6,7 */
        {
            .portNum    = CPSW_MAC_PORT_2, /* RGMII */
            .vlanConfig = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
        {
            .portNum    = CPSW_MAC_PORT_3, /* RGMII */
            .vlanConfig = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
        {
            .portNum    = CPSW_MAC_PORT_7, /* RGMII */
            .vlanConfig = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
    #if defined(ENABLE_QSGMII_PORTS) //kept it disabled for 6.2
        {
            .portNum    = CPSW_MAC_PORT_1, /* QSGMII main */
            .vlanConfig = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
        {
            .portNum    = CPSW_MAC_PORT_4, /* QSGMII sub */
            .vlanConfig = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
        {
            .portNum    = CPSW_MAC_PORT_5, /* QSGMII sub */
            .vlanConfig = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
        {
            .portNum    = CPSW_MAC_PORT_6, /* QSGMII sub */
            .vlanConfig = { .portPri = 0U, .portCfi = 0U, .portVID = 0U }
        },
    #endif
    #endif

    Thanks,

    Satish

  • Satish,

    EthFw can operate as a standalone application for mcu2_0 (main_tirtos.c) or as part of larger mcu2_0 application (vision_apps). There is a memory map difference between the two, and I believe you should have already been using the vision_apps flavor. So the MAC table in app_ethfw.c is the relevant one.

    When you run this command "make -s pdk ethfw vision_apps", this will build the EthFw applications (except from the mcu2_0 application). PDK drivers will also be built (including CSL, board, CPSW, PHY).

    Could you confirm what EthFw flavor are you building and loading?

  • Hi Misael,

    We have never used "vision_apps" on our board.

    Our test is limited to the standalone application. All I do is - Run "make -s ethfw_all BUILD_SOC_LIST=J721E" from <pdk_location>/ethfw/ which generates "app_remoteswitchcfg_server.xer5f". Then I copy this file in /lib/firmware/ on J7 board and establish the soft link to load this firmware on MCU2_0.

    Since Virtual MAC port is not working, based on Vineet's Input I started building vision apps.

    Do I still have to build and load "app_remoteswitchcfg_server.xer5f" from  <pdk_location>/ethfw/ ?

    I will make the MAC table identical between "app_ethfw.c" & "main_tirtos.c". Could you please help me with what I have to do next after build completes by running  "make -s pdk ethfw vision_apps"  comand?

    Thanks,

    Satish

  • Try changing the following in ethfw/apps/app_remoteswitchcfg_server/mcu2_0/j721e/linker_mem_map.cmd:

    • DDR_MCU2_0_IPC = 0xa2000000 ->0xa1000000
    • DDR_MCU2_0_RESOURCE_TABLE = 0xa2100000 -> 0xa1100000
    • DDR_MCU2_0 = 0xa2100400 -> 0xa1100400

    Regards,

    -Misa

  • Hi Misa,

    I changed the memory and flashed the board. I still don't see any ethernet interface. Here is the Memory map table -

    MEMORY
    {
        /* R5F_TCMA [ size 32.00 KB ] */
        R5F_TCMA                 (    X ) : ORIGIN = 0x00000000 , LENGTH = 0x00008000
        /* R5F_TCMB0 [ size 32.00 KB ] */
        R5F_TCMB0                ( RWIX ) : ORIGIN = 0x41010000 , LENGTH = 0x00008000
        /* DDR for MCU2_0 for Linux IPC [ size 1024.00 KB ] */
        DDR_MCU2_0_IPC           ( RWIX ) : ORIGIN = 0xA1000000 , LENGTH = 0x00100000
        /* DDR for MCU2_0 for Linux resource table [ size 1024 B ] */
        DDR_MCU2_0_RESOURCE_TABLE ( RWIX ) : ORIGIN = 0xA1100000 , LENGTH = 0x00000400
        /* DDR for MCU2_0 for code/data [ size 31.00 MB ] */
        DDR_MCU2_0               ( RWIX ) : ORIGIN = 0xA1100400 , LENGTH = 0x00EFFC00
        /* Memory for remote core logging [ size 256.00 KB ] */
        APP_LOG_MEM                       : ORIGIN = 0xB8000000 , LENGTH = 0x00040000
        /* Memory for TI OpenVX shared memory. MUST be non-cached or cache-coherent [ size 31.75 MB ] */
        TIOVX_OBJ_DESC_MEM                : ORIGIN = 0xB8040000 , LENGTH = 0x01FC0000
        /* Memory for IPC Vring's. MUST be non-cached or cache-coherent [ size 32.00 MB ] */
        IPC_VRING_MEM                     : ORIGIN = 0xAA000000 , LENGTH = 0x02000000
        /* Memory for shared memory buffers in DDR [ size 576.00 MB ] */
        DDR_SHARED_MEM                    : ORIGIN = 0xBC000000 , LENGTH = 0x24000000
    }

    Here is the output of "ifconfig -a"

    root@nova-slot5:~# ifconfig -a
    can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
              NOARP  MTU:16  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:10 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:40 
    
    can1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
              NOARP  MTU:16  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:10 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:42 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:82 errors:0 dropped:0 overruns:0 frame:0
              TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:6220 (6.0 KiB)  TX bytes:6220 (6.0 KiB)
    

    Thanks,

    Satish

  • Satish,

    Thanks for trying the changes. I think we need to investigate this further internally to align memory map of standalone EthFw and vision_apps image. We will get back to you on this in few days.

    The other option to unblock you is just using the vision_apps image. This image is fully compatible with the Linux kernel memory map that you are using. Here is what you can try next:

    1. Port the changes you have done to main_tirtos.c (standalone EthFw) to app_ethfw.c (vision_apps + EthFw). I believe you had done this already as per your earlier comments in this thread.

    2. Rebuild using following commands:

    cd vision_apps
    make -s pdk ethfw vision_apps

    3. Above will take care of building any changes you have made in CPSW LLD. It's equivalent to the "make ethfw_all" command which you have used for standalone EthFw.

    4. Copy the generated image to /lib/firmware/. This step is again, same as standalone EthFw. The firmware filename matters, so overwrite your current EthFw image (save a copy of older image if needed).

    5. Boot the device.

    6. Open UART port /dev/ttyUSB2 for (instance 2) for NDK and Ethfw logs.

  • Hi MIsa,

    Thank you for the simple and detailed instructions. Could you please let me know the following - 

    1) While building image with "make -s pdk ethfw vision_apps" , Shell I keep the linker memory file (ethfw/apps/app_remoteswitchcfg_server/mcu2_0/j721e/linker_mem_map.cmd) changes as you suggested earlier or revert back the changes as it shipped in SDK?

    2) Regarding your STEP 4 - Which generated image (file name & path) I should copy to /lib/firmware? 

    Thanks,

    Satish

  • Here is the full build log for "make -s pdk ethfw vision_apps" . See if it helps you to extract the file name and path from this log, just in case.

    vision_apps_build_logs.txt

  • Satish,

    You should not make any changes to the memory map in vision_apps, otherwise, this could prevent Linux or R5F core from booting.

    Regarding the binary to copy to lib/firmware/ please look in this directory: psdk_rtos_auto_j7_07_00_00_11/vision_apps/out/J7/R5F/SYSBIOS/release.

    software-dl.ti.com/.../BUILD_INSTRUCTIONS.html

  • HI Misa,

    It took me some time to went through those instructions and generate the final binary. Finally, I have a firmware file that goes in /lib/firmware. It essentially generated two directories generated from build - 

    slaldas@daimler:~/ethfw_7.0/ivpfs/rootfs$ tree -L 2
    .
    ├── lib
    │   └── firmware
    └── opt
        └── vision_apps
    
    

    the output of /lib/firmware is -

    slaldas@daimler:~/ethfw_7.0/ivpfs/rootfs/lib$ tree -L 2
    .
    └── firmware
        ├── j7-c66_0-fw
        ├── j7-c66_1-fw
        ├── j7-c71_0-fw
        └── j7-main-r5f0_0-fw
    

    Before building the code I changed the MAC port to 2 which is a good PHY on my board. I copied the content of /opt/ & /lib/ directory into my board and power cycled the board. After several power cycle, I once saw the "eth0" interface when I typed "ifconfig"

    root@nova-slot5:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 70:ff:76:1d:92:c1  
              inet6 addr: fe80::72ff:76ff:fe1d:92c1/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:4116 (4.0 KiB)

    When I saw this "eth0" interface the log was as below - 

    Enabling clocks for CPSW9G!
    CPSW_9G Test on MAIN NAVSS
    CTRLMMR_SERDES1_CLKSEL Value is      = 0x00000002
    CTRLMMR_SERDES1_CLK1SEL Value is      = 0x00000002
    CTRLMMR_SERDES1_LN0_CTRL Value is      = 0x00000000
    CpswMacPort_cnfi
    Sgmii: MAC 2: Configuring SGMII in SGMII_WITH_PHY mode 
    CpswPhy_setNextState: PHY 0: INIT -> FINDING (20 ticks)
    CpswPhy_setNextState: PHY 0: FINDING -> FOUN 0 ticks)
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'vc85
    CpswPhy_bindDriver: PHY 0: OUI:
                                                   PHY configured
    CpswPhybindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <->'dp83867'
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'dp83tg720' : OK
    CpswPhy_open: PHY 0: open
    PHY 0 is alive
    PHY 4 is alive
    PHY 5 is alive
    PHY 8 is alive
    PHY 10 is alive
    PHY 12 is alive
    Remote demo device (core : mcu2_0) .....
    Host MAC address: 70:ff:76:1d:92:c2
    PHY 0: global soft-reset
    Funtion:CpswPoxyServer_attachExtHandlerCb,HostId:0,CpswTyp
    Host MAC address:70:ff:76:1d:92:c2
    CpswPhy_setNextState: PHY 0: FOUND -> RESET_WAIT (10 ticks)
    Host MAC address: 70:ff:76:1d:92:c2
    Dp83tg720_isResetComplete: PHY 0: global reset is  complete
    CpswPhy_setNextState: PHY 0: RESET_WAIT -> ENABLE (0 tick)
    CpswPhy_enableState PHY 0: enable
    [NIMU_NDK] CPSW has been started successfully
    Dp83tg720_config: Applying configuration for Chip 4
    Dp83tg720_readStraps: Strap is 0x2020
    Dp83tg720_readStraps: Strap: Master Mode enabled
    Dp83tg720_readStraps: Strap: SGMII Mode enabled
    Dp83tg720_config: PHY 0: Enabling SGMII Mode
    Dp83tg720_resetHw: PHY 0: global hard-reset
    Dp83tg720_reset: PHY 0: global soft-reset
    Dp83tg720_isResetComplete: PHY 0: global reset is  complete
    SGMII_CTRL_1 value       = 0x027b
    Dp83tg720_setLoopbackCfg: PHY 0: disable loopback
    Dp83tg720_reset: PHY 0: global soft-reset
    Dp83tg720_isResetComplete: PHY 0: global reset is  complete
    Dp83tg720_configIntr: PHY 0: Disable interrupts
    PHY 0: SGMII_CTRL       = 0x027b
    PHY 0: RGMII_CTRL       = 0x0120
    PHY 0: RGMII_DELAY_CTRL = 0x0000
    PHY 0: RGMII_DELAY_TX_RX = 0x0980
    PHY 0: REG_MasterSlave = 0xc001
    CpswPhy_enableState: Automotive PHY detected. Skipping Auto-Negotiation
    CpswPhy_enableState: PHY 0: req caps: FD1000 HD1000 FD100 HD100 FD10 HD10 
    CpswPhy_enableState: PHY 0: PHY caps: FD1000 
    CpswPhy_enableState: PHY 0: MAC caps: FD1000 FD100 HD100 FD10 HD10 
    CpwPhy_enableState: PHY 0: refined caps: FD1000 
    CpswPhy_enableState: PHY 0: PHY is notNWAY-capable
    CpswPhy_enableState: PHY 0: falling back to manual mode
    CpswPhy_enableState: PHY 0: new link caps: FD1000 
    CpswPhy_enableState: PHY 0: manual setup
    CpswPhy_setupManual: PHY 0: requested mode: 1 Gbps full-duplex
    CpswPhy_setNextState: PHY 0: ENABLE -> LINK_WAIT (50 ticks)
    Function:CpswProxyServerregisterMacHandlerCb,HostId:0,Handle:a212c568,CoreKey:38acb7e6, Mac address:70:ff:76:1d:92:c1, FlowIdx:172, FlowIdxOffset:0
    Cpsw_ioctlInternal: CPSW: Registered MAC address.ALE ntry:11, Policr Entry:
    CpswPhy_phyTimeOut: PHY 0: timeout has occurred

    Most of the time I don't see this ethernet interface and this is the log I am getting.

    CPSW_9G Test on MAIN NAVSS
    CTRLMMR_SERDES1_CLKSEL Value is      = 0x00000002
    CTRLMMR_SERDES1_CLK1SEL Value is      = 0x00000002
    CTRLMMR_SERDES1_LN0_CTRL Value is      = 0x00000000
    CpswMacPort_configSgmii: MAC 2: Cofiguring SGMII in SGMII_WITH_PHY mode 
    CpswPhy_setNextState: PHY 0: INIT -> FINDING (20 ticks)
    CpswPhy_setNextState: PHY 0: FINDING[  OK  ]  -> FOUND (0 ticks)
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'vsc8514'
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <->'dp83822'
    CpswPhy_bindriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'dp83867'
    CpswPhy_bindDriver: PHY 0: OUI:00028 Model:28 Ver:04 <-> 'dp83tg720' : OK
    CpswPhy_open: PHY 0: open
    PHY 0 is alive
    PHY 4 is alive
    PHY 5 is alive
    PHY 8 is alive
    PHY 12 is alive
    Remote demo device (core : mcu2_0) .....

    Is there something I am missing here?

    Thanks,

    Satish

  • The first logs, when you got "eth0", would be normal if you didn't have a cable connected to MAC port 2. Please confirm.

    Regarding second logs, you would need to connect a debugger and see if R5F has crashed or if it's stalled at some place. I can't say much from the logs. 

  • Hi Misa,

    The first logs, when you got "eth0", would be normal if you didn't have a cable connected to MAC port 2. Please confirm.

    >>> Yes this is true.

    Regarding second logs, you would need to connect a debugger and see if R5F has crashed or if it's stalled at someplace. I can't say much from the logs. 

    >>> I have the JTAG with me, Is there some memory location you want me to check?

  • Regarding debugger, you would have to connect to Main R5F0 core 0, load the symbols of the vision_apps image and see where execution it's at.

  • Hi Misa,

    Just to be sure, is "vx_app_tirtos_linux_mcu2_0.out" is the symbol file for vision_apps?

    Thanks,

    Satish

  • Hi Satish,

    Yes, but I think makes sense to build the image in 'debug' profile which doesn't have code optimizations.

    Please run your build command again, but append PROFILE=debug. This may take a bit longer to compile as 'debug' libraries are not provided by default.

  • Hi Misa,

    while building in debug mode I get this error -

    SCM_VERSION=
    Build Skipped for kernels.stereo.target.bam.J7.LINUX.A72.debug:vx_target_kernels_stereo_bam
    Building app_tirtos_common_mcu2_0.lib as static library
    Building app_tirtos_linux.lib as static library
    Running xdc configuro for apps.basic_demos.app_tirtos.tirtos_linux.mcu2_0
    Linking /home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/vision_apps/out/J7/R5F/SYSBIOS/debug/vx_app_tirtos_linux_mcu2_0.out
    error: cannot find file "vx_conformance_engine.lib"
    error: cannot find file "vx_conformance_tests.lib"
    error: cannot find file "vx_conformance_tests_testmodule.lib"
    error: cannot find file "vx_tiovx_tests.lib"
    error: cannot find file "vx_tutorial.lib"
    error: cannot find file "vx_utils.lib"
    error: cannot find file "vx_framework.lib"
    error: cannot find file "vx_vxu.lib"
    error: cannot find file "vx_platform_psdk_j7_bios.lib"
    error: cannot find file "vx_kernels_target_utils.lib"
    error: cannot find file "vx_kernels_test_kernels_tests.lib"
    error: cannot find file "vx_kernels_test_kernels.lib"
    error: cannot find file "vx_target_kernels_source_sink.lib"
    error: cannot find file "vx_kernels_host_utils.lib"
    error: cannot find file "vx_kernels_openvx_core.lib"
    error: cannot find file "vx_kernels_hwa_tests.lib"
    error: cannot find file "vx_kernels_hwa.lib"
    error: cannot find file "vx_target_kernels_vpac_nf.lib"
    error: cannot find file "vx_target_kernels_vpac_viss.lib"
    error: cannot find file "vx_target_kernels_vpac_msc.lib"
    error: cannot find file "vx_target_kernels_vpac_ldc.lib"
    error: cannot find file "vx_target_kernels_dmpac_dof.lib"
    error: cannot find file "vx_target_kernels_dmpac_sde.lib"
    error: cannot find file "vx_target_kernels_vdec.lib"
    error: cannot find file "vx_target_kernels_venc.lib"
    error: cannot find file "vx_target_kernels_display.lib"
    error: cannot find file "vx_target_kernels_capture.lib"
    error: cannot find file "vx_target_kernels_csitx.lib"
    error: cannot find file "vx_target_kernels_j7_arm.lib"
    error: cannot find file "ti_imaging_awbalg.lib"
    error: cannot find file "ti_imaging_dcc.lib"
    error: cannot find file "vx_kernels_imaging.lib"
    error: cannot find file "vx_target_kernels_imaging_aewb.lib"
    error: cannot find file "ti_imaging_aealg.lib"
    error: cannot find file "ti_imaging_sensordrv.lib"
    error: cannot find file "ti_imaging_ittsrvr.lib"
    error: cannot find file "video_codec_common_tirtos.lib"
    error: cannot find file "video_codec_decoder_tirtos.lib"
    error: cannot find file "video_codec_osal_tirtos.lib"
    error: cannot find file "video_codec_encoder_tirtos.lib"
    fatal error: cannot open output file
    

    Do you know what could be the issue? Release mode works fine.

  • Also, I tried loading the vision_apps symbol built for release mode. This is the function where it is I kept stepping into it but never came out of this loop. Clicking on Run just does nothing. Just breakpoint arrow symbol disappears 

    static void waitPmaCmnReady(const DP_SD0801_PrivateData* pD)
    {
    uint32_t regTmp;

    do {
    regTmp = CPS_REG_READ(&pD->regBaseDp->dp_regs.PMA_CMN_READY_p);
    } while (((regTmp) & 1U) == 0U);
    }

  • Satish,

    Please try disabling display from vision_apps image - undef ENABLE_DSS which is located in the file below:

    vision_apps/apps/basic_demos/app_tirtos/common/app_cfg_mcu2_0.h

    Recompile and try again. The release image should be good for now.

    For the debug build, please run "make sdk PROFILE=debug".

  • Hi Misa,

    After modifying app_cfg_mcu2_0.h, "make sdk PROFILE=debug" gave me this

    Linking /home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/vision_apps/out/J7/A72/LINUX/debug/vx_app_stereo_depth.out
    Required system library libti_imaging_awbalg.a
    Required system library libti_imaging_dcc.a
    Required system library libti_imaging_aealg.a
    Linking /home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/vision_apps/out/J7/A72/LINUX/debug/vx_app_test_framework.out
    /home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/9.2.1/../../../../aarch64-none-linux-gnu/bin/ld: cannot find -lti_imaging_awbalg
    /home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/../lib/gcc/aarch64-none-linux-gnu/9.2.1/../../../../aarch64-none-linux-gnu/bin/ld: cannot find -lti_imaging_dcc
    collect2: error: ld returned 1 exit status
    concerto/finale.mak:206: recipe for target '/home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/vision_apps/out/J7/A72/LINUX/debug/vx_app_test_framework.out' failed
    make[2]: [/home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/vision_apps/out/J7/A72/LINUX/debug/vx_app_test_framework.out] Error 1 (ignored)
    Linking /home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/vision_apps/out/J7/A72/LINUX/debug/vx_app_conformance.out
    Linking /home/slaldas/ethfw_7.0/psdk_rtos_auto_j7_07_00_00_11/vision_apps/out/J7/A72/LINUX/debug/vx_app_tutorial.out
    

    I also did release build and loaded the symbol on CCS again, Its exact same issue like before. It is stuck in "waitPmaCmnReady" function 

    This is the change I made in app_cfg_mcu2_0.h. I simply added under in all of them.

    #undef ENABLE_DSS_SINGLE
    #undef  ENABLE_DSS_DUAL
    
    
    /* define below to enable eDP display, make sure to undef ENABLE_DSS_HDMI & ENABLE_DSS_DSI as well */
    #undef ENABLE_DSS_EDP
    /* define below to enable HDMI display, make sure to undef ENABLE_DSS_EDP & ENABLE_DSS_DSI as well */
    #undef ENABLE_DSS_HDMI
    /* define below to enable DSI display, make sure to undef ENABLE_DSS_HDMI & ENABLE_DSS_EDP as well */
    #undef ENABLE_DSS_DSI
    

  • For debug build, please try copying the release libs from "imaging/lib/J7/<CORE>/<OS>/release" to "imaging/lib/J7/<CORE>/<OS>/debug".

    In release build experiment, do you have the full callstack? It would be helpful to see where it is entering the DSS code now thatENABLE_DSS is undefined.

  • Hi Misa,

    Coping libs from release to debug fixed the debug mode build. After the build, I copied "debug/vx_app_tirtos_linux_mcu2_0.out" to "/lib/firmware/" and power cycled the board, and now I can see the "eth0" network interface.

    I power cycled the board several times to verify and looks like each time firmware loads fine and I can see the network Interface. Here is the full log - 

    Enabling clocks for CPSW_9G!
    CPSW_9G Test on MAIN NAVSS
    CTRLMMR_SERDES1_CLKSEL Value is      = 0x00000002
    CTRLMMR_SERES1_CLK1SEL Value is      = 0x00000002
    CTRLMMR_SERDES1_LN0_CTRL Value is      = 0x00000000
    CpswMacPort_configSgmii: MAC 2: Configuring SGMII in SGMII_WITH_PHY mode 
    CpswPhy_setNextState: PHY 0: INIT -> FINDING (20 ticks)
    CpswPhy_setNextState: PHY 0: FINDING -> FOUND (0 ticks)
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'vsc8514'
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'dp83822'
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'dp83867'
    CpswPhy_bindDriver: PHY 0: OUI:080028 Model:28 Ver:04 <-> 'dp83tg720' : OK
    CpswPhy_open: PHY 0: open
    PHY 0 is alive
    PHY 4 is alive
    PHY 5 is alive
    PHY 8 is alive
    PHY 10 is alive
    PHY 12 is alive
    Remote demo deice(core : mcu2_0) .....
    Host MAC address: 70:ff:76:1d:92:c2
    Dp83tg720_reset: PHY 0: global soft-reset
    Function:CpswProxyServer_attachExtHandlerCb,HostId:0,CpswType:1
    CpswPhy_setNextState: PHY 0: FOUND -> RESET_WAIT (10 ticks)
    Host MAC address: 70:ff:76:1d:92:c2
    Dp83tg720_isResetComplete: PHY 0: global reset is  complete
    CpswPhy_setNextState: PHY 0: RESET_WAIT -> ENABLE (0 ticks)
    CpswPhy_enableStae: PHY 0: enable
    [NIMU_NDK] CPSW has been started successfully
    Dp83tg720_config: Applying configuration for Chip 4
    Dp83tg720_readStraps: Strap is 0x020
    Dp83tg720_readStraps: Strap: Master Mode enabled
    Dp83tg720_radStraps: Strap: SGMII Mode enabled
    Dp83tg720_config: PHY 0: Enabling SGMII Mode
    Dp83tg720_resetHw: PHY 0: global hard-reset
    Dp83tg720_reset: PHY 0: global soft-reset
    Dp83tg720_isResetComplete: PHY0: global reset is  complete
    SGMII_CTRL_1 value       = 0x027b
    Dp83tg720_setLoopbackCfg: PHY 0: disable loopback
    Dp83tg720_reset: PHY 0: global soft-reset
    Dp83tg720_isResetComplete: PHY 0: global reset is  complete
    Dp83tg720_configIntr: PHY 0: Disable interrupts
    PHY 0: SGMII_CTRL       = 0x027b
    PHY 0: RGMII_CTRL       = 0x0120
    PHY 0: RGMII_DELAY_CTRL = 0x0000
    PHY 0: RGMII_DELAY_TX_RX = 0x0980
    PHY 0: REG_MasterSlave = 0xc001
    CpswPhy_enableState: Automotive PHY detected. Skipping Auto-Negotiation
    CpswPhy_enableState: PHY 0: req caps: FD1000 HD1000 FD100 HD100 FD10 HD10 
    CpswPhy_enableState: PHY 0: PHY caps: FD1000 
    CpswPhy_enableState: PHY 0: MAC caps: FD1000 FD100 HD100 FD10 HD10 
    CpswPhy_enableState: PHY 0: refined caps: FD1000 
    CpswPhy_enableState: PHY 0: PHY is notNWAY-capable
    CpswPhy_enableState: PHY 0: falling back to manual mode
    CpswPhy_enableState: PHY 0: new link caps: FD1000 
    CpswPhy_enableState: PHY 0: manual setup
    CpswPhy_setupManual: PHY 0: requested mode: 1 Gbps full-duplex
    CpswPhy_setNextState: PHY 0: ENABLE -> LINK_WAIT (50 ticks)
    Function:CpswProxyServer_registerMacHandlerCb,HostId:0,Handle:a1d877e0,CoreKey:38acb7e6, MacAddress:70:ff:76:1d:92:c1, FlowIdx:172, FlowIdxOffset:0
    CpswPhy_setNextState: PHY 0: LINK_WAIT -> LINKED (0 ticks)

    Output of "ifconfig"

    root@nova-slot5:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 70:ff:76:1d:92:c1  
              inet6 addr: fe80::72ff:76ff:fe1d:92c1/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:4520 (4.4 KiB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:82 errors:0 dropped:0 overruns:0 frame:0
              TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:6220 (6.0 KiB)  TX bytes:6220 (6.0 KiB)
    
    

    I tried setting up the IP address to eth0 but it gave me the following  - 

    root@nova-slot5:~# ifconfig eth0 192.168.1.210
    Function:CpswProxyServer_registerIpv4MacHandlerCb,HostId:0,Handle:a1d877e0,CoreKey:38acb7e6, MacAddress:70:ff:76:1d:92:c1 IPv4Addr:192.168.1.210
    Failed to add Static ARP Entry 
    
    ================LLI Table entries=========== 
    
    Number of Static ARP Entries: 0 
    
    SNo.      IP Address         MAC Address  
    ------    -------------      --------------- 
    
    
    
    

    Just want to let you know that I have set "var enableStaticIP         = 1;" in ndk.cfg.

    Could you please let me know what these Table entries are?

    What is the right way to assign IP address? 

    And how can I ping my PC from J7's eth0 interface?

     

    My setup is like below - 

    (J7 board with PHY in Master) <----TE Connector----> Ethernet Converter board <---RJ45----> Linux PC

    Thanks,

    Satish

  • Hi Satish,

    Do you have a DHCP server ? By default, EthFW uses DHCP.

    Can you revert var enableStaticIP = 1, rebuild application and try with a DHCP server for a quick test ?

    Regards

    Vineet

  • I reverted the change in ndk.cfg i.e.  var enableStaticIP         = 0; built and moved the binary to /lib/firmware/

    While starting the dhcp server i.e. "dhcpd start", I get the following error. 

    root@nova-slot5:~# dhcpd start
    Internet Systems Consortium DHCP Server 4.4.2
    Copyright 2004-2020 Internet Systems Consortium.
    All rights reserved.
    For info, please visit www.isc.org/.../
    Config file: /etc/dhcp/dhcpd.conf
    Database file: /var/lib/dhcp/dhcpd.leases
    PID file: /var/run/dhcpd.pid
    Wrote 0 leases to leases file.
    
    No subnet declaration for start (no IPv4 addresses).
    ** Ignoring requests on start.  If this is not what
       you want, please write a subnet declaration
       in your dhcpd.conf file for the network segment
       to which interface start is attached. **
    
    
    Not configured to listen on any interfaces!
    
    If you think you have received this message due to a bug rather
    than a configuration issue please read the section on submitting
    bugs on either our web page at www.isc.org or in the README file
    before submitting a bug.  These pages explain the proper
    process and the information we find helpful for debugging.
    

    Looks like it is not finding the subnet. I have to go through the entries in this configuration file one by one. 

    Would you mind sharing your configuration file if it is working already or any changes you can suggest for a quick test?

  • I think your interface id in /etc/default/isc-dhcp-server may be wrong. Please check if it's a valid interface name.

    See step 1.2 in this guide: https://www.tecmint.com/install-dhcp-server-in-ubuntu-debian/. There are several guides online, check one that matches your Linux version.

  • Hi Misa,

    In my case there is a file "/etc/default/dhcp-server" which looks equivalent to what you mentioned. and I added "eth0" in "/etc/default/dhcp-server: 

    root@nova-slot5:~# cat /etc/default/dhcp-server 
    # Defaults for dhcp initscript
    # sourced by /etc/init.d/dhcp-server
    # installed at /etc/default/dhcp-server by the maintainer scripts
    
    # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
    #       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
    INTERFACES="eth0"
    

    After this by doing... "udhcpc -i eth0" It is still searching for something..

    root@nova-slot5:~# udhcpc -i eth0
    udhcpc: started, v1.31.1
    udhcpc: sending discover
    udhcpc: sending discover
    

    I am still reading online documents.

  • nova-slot5 is your Linux PC, no? Your PC is the DHCP server, udhcpc is the client side application.

  • Hi Misa,

    You are right. nova-slot5 is my J7 board. 

    I set up the DHCP server in my Ubuntu Laptop and trying to connect it to J7 but still "eth0" is not connecting to DHCP server. 

    When I type "dhclient -v" or "udhcpc -i eth0" on J7 board, it is sending the broadcast frame but Server in Linux PC is not receiving it and hence there is no offering from DHCP server.

    This is the log from J7.

    root@nova-slot5:~# tcpdump -i eth0 &
    [1] 1367
    root@nova-slot5:~# [ 462.211862] device eth0 entered promiscuous mode
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

    root@nova-slot5:~# dhclient -v
    Internet Systems Consortium DHCP Client 4.4.2
    Copyright 2004-2020 Internet Systems Consortium.
    All rights reserved.
    For info, please visit www.isc.org/.../

    Listening on LPF/docker0/02:42:a3:92:13:2f
    Sending on LPF/docker0/02:42:a3:92:13:2f
    Listening on LPF/eth0/70:ff:76:1d:92:c1
    Sending on LPF/eth0/70:ff:76:1d:92:c1
    Sending on Socket/fallback
    DHCPDISCOVER on docker0 to 255.255.255.255 port 67 interval 4
    DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
    20:15:55.434341 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 70:ff:76:1d:92:c1 (oui Unknown), length 300
    20:15:56.901022 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 70:ff:76:1d:92:c1 (oui Unknown), length 292
    DHCPDISCOVER on docker0 to 255.255.255.255 port 67 interval 6
    DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13
    20:16:02.057277 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 70:ff:76:1d:92:c1 (oui Unknown), length 300

    I have tested my DHCP server with J7 EVM and, J7 EVM works without issue. "udhcpc -i eth0" command on j7 evm immediately gets the IP address from the server, and both i.e. server and the client can ping each other just fine. It confirms that the server part is fine. 

    However, there is a difference between J7 EVM and our custom board setup.

    DHCP server (my ubuntu laptop) <------------CAT 6 Cable ---------------> J7 EVM

    DHCP server (my ubuntu laptop) <-----RJ45 connector---->DP83TG720 converter board <------TE connector ---->J7 Custom board

    when I connect my Ubuntu Laptop (Server) to RJ45 connector of Ethernet converter board and do "tcpdump -i eth0" I get this message over and over - 

    02:37:34.187003 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.1 tell 192.168.1.20, length 28

    02:37:35.213203 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.1 tell 192.168.1.20, length 28

    02:37:36.230003 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.1 tell 192.168.1.20, length 28

    Do you make anything out of this?

    This is my server settings -

    eth0 interface is configured as below - 

    IP address - 192.168.1.20

    Netmask 255.255.255.0

    Gateway - 192.168.1.1

    /etc/dhcpd.conf is like below

    # Sample /etc/dhcpd.conf
    # (add your comments here) 
    default-lease-time 600;
    max-lease-time 7200;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.254;
    option domain-name-servers 192.168.1.1, 192.168.1.2;
    option domain-name "mydomain.org";
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
       range 192.168.1.10 192.168.1.100;
       range 192.168.1.150 192.168.1.200;
    }

    Not sure what else I am missing here.

  • As soon as I connect TI's Ethernet Connector board I get the following messages on Ubuntu Laptop

    satish@satish-Precision-M4700:~$ sudo tcpdump -i eth0 -n -v
    [sudo] password for satish:
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    15:58:59.589676 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.1.20 is-at d4:be:d9:73:cb:a1, length 28
    15:58:59.597250 IP6 (hlim 1, next-header Options (0) payload length: 36) :: > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::1:ff73:cba1 to_ex, 0 source(s)]
    15:58:59.654436 IP (tos 0x0, ttl 255, id 45434, offset 0, flags [DF], proto UDP (17), length 135)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [2q] [2n] ANY (QM)? 20.1.168.192.in-addr.arpa. ANY (QM)? satish-Precision-M4700.local. (107)
    15:58:59.684634 IP (tos 0x0, ttl 255, id 45439, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:58:59.757251 IP6 (hlim 1, next-header Options (0) payload length: 36) :: > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::1:ff73:cba1 to_ex, 0 source(s)]
    15:58:59.905112 IP (tos 0x0, ttl 255, id 45451, offset 0, flags [DF], proto UDP (17), length 135)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [2q] [2n] ANY (QM)? 20.1.168.192.in-addr.arpa. ANY (QM)? satish-Precision-M4700.local. (107)
    15:59:00.155517 IP (tos 0x0, ttl 255, id 45506, offset 0, flags [DF], proto UDP (17), length 135)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [2q] [2n] ANY (QM)? 20.1.168.192.in-addr.arpa. ANY (QM)? satish-Precision-M4700.local. (107)
    15:59:00.277248 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) :: > ff02::1:ff73:cba1: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has fe80::d6be:d9ff:fe73:cba1
    unknown option (14), length 8 (1):
    0x0000: 136b fc08 a3b7
    15:59:00.355863 IP (tos 0x0, ttl 255, id 45533, offset 0, flags [DF], proto UDP (17), length 123)
    192.168.1.20.5353 > 224.0.0.251.5353: 0*- [0q] 2/0/0 20.1.168.192.in-addr.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) A 192.168.1.20 (95)
    15:59:00.685361 IP (tos 0x0, ttl 255, id 45604, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:01.086413 IP (tos 0x0, ttl 1, id 28243, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.33675 > 239.255.255.250.1900: UDP, length 172
    15:59:01.301313 IP6 (hlim 1, next-header Options (0) payload length: 36) fe80::d6be:d9ff:fe73:cba1 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::1:ff73:cba1 to_ex, 0 source(s)]
    15:59:01.313243 IP6 (hlim 1, next-header Options (0) payload length: 36) fe80::d6be:d9ff:fe73:cba1 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::fb to_ex, 0 source(s)]
    15:59:01.373032 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 174) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x7a12 -> 0xf941!] 0 [2q] [2n] ANY (QM)? 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? satish-Precision-M4700.local. (166)
    15:59:01.373094 IP (tos 0x0, ttl 255, id 45716, offset 0, flags [DF], proto UDP (17), length 194)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [2q] [2n] ANY (QM)? 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? satish-Precision-M4700.local. (166)
    15:59:01.375250 IP (tos 0x0, ttl 255, id 45717, offset 0, flags [DF], proto UDP (17), length 123)
    192.168.1.20.5353 > 224.0.0.251.5353: 0*- [0q] 2/0/0 20.1.168.192.in-addr.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) A 192.168.1.20 (95)
    15:59:01.403402 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:01.517242 IP6 (hlim 1, next-header Options (0) payload length: 36) fe80::d6be:d9ff:fe73:cba1 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::fb to_ex, 0 source(s)]
    15:59:01.540028 IP6 (flowlabel 0x5d447, hlim 255, next-header ICMPv6 (58) payload length: 8) fe80::d6be:d9ff:fe73:cba1 > ff02::2: [icmp6 sum ok] ICMP6, router solicitation, length 8
    15:59:01.540627 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.20 (ff:ff:ff:ff:ff:ff) tell 192.168.1.20, length 28
    15:59:01.624002 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 174) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x7a12 -> 0xf941!] 0 [2q] [2n] ANY (QM)? 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? satish-Precision-M4700.local. (166)
    15:59:01.624066 IP (tos 0x0, ttl 255, id 45750, offset 0, flags [DF], proto UDP (17), length 194)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [2q] [2n] ANY (QM)? 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? satish-Precision-M4700.local. (166)
    15:59:01.874580 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 174) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x7a12 -> 0xf941!] 0 [2q] [2n] ANY (QM)? 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? satish-Precision-M4700.local. (166)
    15:59:01.874645 IP (tos 0x0, ttl 255, id 45813, offset 0, flags [DF], proto UDP (17), length 194)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [2q] [2n] ANY (QM)? 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. ANY (QM)? satish-Precision-M4700.local. (166)
    15:59:02.075157 IP (tos 0x0, ttl 255, id 45846, offset 0, flags [DF], proto UDP (17), length 182)
    192.168.1.20.5353 > 224.0.0.251.5353: 0*- [0q] 2/0/0 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) AAAA fe80::d6be:d9ff:fe73:cba1 (154)
    15:59:02.075235 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 162) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x7a06 -> 0xf79f!] 0*- [0q] 2/0/0 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) AAAA fe80::d6be:d9ff:fe73:cba1 (154)
    15:59:02.087048 IP (tos 0x0, ttl 1, id 28391, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.33675 > 239.255.255.250.1900: UDP, length 172
    15:59:02.293245 IP6 (hlim 1, next-header Options (0) payload length: 56) fe80::d6be:d9ff:fe73:cba1 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 2 group record(s) [gaddr ff02::fb to_ex, 0 source(s)] [gaddr ff02::1:ff73:cba1 to_ex, 0 source(s)]
    15:59:02.403785 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:02.686393 IP (tos 0x0, ttl 255, id 45860, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:03.088631 IP (tos 0x0, ttl 1, id 28579, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.33675 > 239.255.255.250.1900: UDP, length 172
    15:59:03.094978 IP (tos 0x0, ttl 255, id 45870, offset 0, flags [DF], proto UDP (17), length 182)
    192.168.1.20.5353 > 224.0.0.251.5353: 0*- [0q] 2/0/0 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) AAAA fe80::d6be:d9ff:fe73:cba1 (154)
    15:59:03.095053 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 162) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x7a06 -> 0xf79f!] 0*- [0q] 2/0/0 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) AAAA fe80::d6be:d9ff:fe73:cba1 (154)
    15:59:03.302566 IP (tos 0x0, ttl 1, id 28610, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.41350 > 239.255.255.250.1900: UDP, length 172
    15:59:03.395494 IP (tos 0x0, ttl 255, id 45926, offset 0, flags [DF], proto UDP (17), length 123)
    192.168.1.20.5353 > 224.0.0.251.5353: 0*- [0q] 2/0/0 20.1.168.192.in-addr.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) A 192.168.1.20 (95)
    15:59:04.303343 IP (tos 0x0, ttl 1, id 28733, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.41350 > 239.255.255.250.1900: UDP, length 172
    15:59:04.405478 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:05.115749 IP (tos 0x0, ttl 255, id 46110, offset 0, flags [DF], proto UDP (17), length 182)
    192.168.1.20.5353 > 224.0.0.251.5353: 0*- [0q] 2/0/0 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) AAAA fe80::d6be:d9ff:fe73:cba1 (154)
    15:59:05.116003 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 162) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x7a06 -> 0xf79f!] 0*- [0q] 2/0/0 1.a.b.c.3.7.e.f.f.f.9.d.e.b.6.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. (Cache flush) PTR satish-Precision-M4700.local., satish-Precision-M4700.local. (Cache flush) AAAA fe80::d6be:d9ff:fe73:cba1 (154)
    15:59:05.304407 IP (tos 0x0, ttl 1, id 28876, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.41350 > 239.255.255.250.1900: UDP, length 172
    15:59:05.539150 IP6 (flowlabel 0x5d447, hlim 255, next-header ICMPv6 (58) payload length: 8) fe80::d6be:d9ff:fe73:cba1 > ff02::2: [icmp6 sum ok] ICMP6, router solicitation, length 8
    15:59:06.304448 IP (tos 0x0, ttl 1, id 28922, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.41350 > 239.255.255.250.1900: UDP, length 172
    15:59:06.304838 IP (tos 0x0, ttl 1, id 46277, offset 0, flags [DF], proto UDP (17), length 68)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 PTR (QM)? _googlecast._tcp.local. (40)
    15:59:06.304906 IP (tos 0x0, ttl 1, id 46278, offset 0, flags [DF], proto UDP (17), length 68)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 PTR (QM)? _googlecast._tcp.local. (40)
    15:59:06.688247 IP (tos 0x0, ttl 255, id 46290, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:07.305385 IP (tos 0x0, ttl 1, id 46323, offset 0, flags [DF], proto UDP (17), length 68)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 PTR (QM)? _googlecast._tcp.local. (40)
    15:59:07.305488 IP (tos 0x0, ttl 1, id 46324, offset 0, flags [DF], proto UDP (17), length 68)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 PTR (QM)? _googlecast._tcp.local. (40)
    15:59:08.407659 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:09.306287 IP (tos 0x0, ttl 1, id 46431, offset 0, flags [DF], proto UDP (17), length 68)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 PTR (QM)? _googlecast._tcp.local. (40)
    15:59:09.306407 IP (tos 0x0, ttl 1, id 46432, offset 0, flags [DF], proto UDP (17), length 68)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 PTR (QM)? _googlecast._tcp.local. (40)
    15:59:09.540464 IP6 (flowlabel 0x5d447, hlim 255, next-header ICMPv6 (58) payload length: 8) fe80::d6be:d9ff:fe73:cba1 > ff02::2: [icmp6 sum ok] ICMP6, router solicitation, length 8
    15:59:14.690225 IP (tos 0x0, ttl 255, id 47775, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:16.409631 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:30.699641 IP (tos 0x0, ttl 255, id 48767, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    15:59:32.412112 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    16:00:02.729729 IP (tos 0x0, ttl 255, id 55847, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    16:00:04.414078 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    16:01:03.304953 IP (tos 0x0, ttl 1, id 57109, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.52884 > 239.255.255.250.1900: UDP, length 172
    16:01:04.306457 IP (tos 0x0, ttl 1, id 57305, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.52884 > 239.255.255.250.1900: UDP, length 172
    16:01:05.308009 IP (tos 0x0, ttl 1, id 57549, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.52884 > 239.255.255.250.1900: UDP, length 172
    16:01:06.309363 IP (tos 0x0, ttl 1, id 57591, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.52884 > 239.255.255.250.1900: UDP, length 172
    16:01:06.734007 IP (tos 0x0, ttl 255, id 63227, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    16:01:08.415506 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    16:03:03.306919 IP (tos 0x0, ttl 1, id 3389, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.35021 > 239.255.255.250.1900: UDP, length 172
    16:03:04.308507 IP (tos 0x0, ttl 1, id 3596, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.35021 > 239.255.255.250.1900: UDP, length 172
    16:03:05.309481 IP (tos 0x0, ttl 1, id 3827, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.35021 > 239.255.255.250.1900: UDP, length 172
    16:03:06.311255 IP (tos 0x0, ttl 1, id 4057, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.35021 > 239.255.255.250.1900: UDP, length 172
    16:03:14.809762 IP (tos 0x0, ttl 255, id 7406, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    16:03:16.417083 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    16:05:03.307990 IP (tos 0x0, ttl 1, id 23659, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.43293 > 239.255.255.250.1900: UDP, length 172
    16:05:04.309379 IP (tos 0x0, ttl 1, id 23809, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.43293 > 239.255.255.250.1900: UDP, length 172
    16:05:05.310408 IP (tos 0x0, ttl 1, id 23933, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.43293 > 239.255.255.250.1900: UDP, length 172
    16:05:06.311361 IP (tos 0x0, ttl 1, id 24092, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.43293 > 239.255.255.250.1900: UDP, length 172
    16:07:03.308953 IP (tos 0x0, ttl 1, id 26477, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.44248 > 239.255.255.250.1900: UDP, length 172
    16:07:04.310485 IP (tos 0x0, ttl 1, id 26490, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.44248 > 239.255.255.250.1900: UDP, length 172
    16:07:05.311105 IP (tos 0x0, ttl 1, id 26606, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.44248 > 239.255.255.250.1900: UDP, length 172
    16:07:06.312438 IP (tos 0x0, ttl 1, id 26725, offset 0, flags [DF], proto UDP (17), length 200)
    192.168.1.20.44248 > 239.255.255.250.1900: UDP, length 172
    16:07:30.909949 IP (tos 0x0, ttl 255, id 12961, offset 0, flags [DF], proto UDP (17), length 169)
    192.168.1.20.5353 > 224.0.0.251.5353: 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)
    16:07:32.419206 IP6 (flowlabel 0x6b0cc, hlim 255, next-header UDP (17) payload length: 149) fe80::d6be:d9ff:fe73:cba1.5353 > ff02::fb.5353: [bad udp cksum 0x79f9 -> 0xd002!] 0 [9q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ftp._tcp.local. PTR (QM)? _webdav._tcp.local. PTR (QM)? _webdavs._tcp.local. PTR (QM)? _sftp-ssh._tcp.local. PTR (QM)? _smb._tcp.local. PTR (QM)? _afpovertcp._tcp.local. PTR (QM)? _nfs._tcp.local. PTR (QM)? _ipp._tcp.local. (141)

  • Satish,

    I'm not sure your dhcp server configuration file is correct. I think the "option" commands should be inside the "subnet".

    In my setup, I have my Linux PC with a fixed IP address which is outside of the dynamic range of the DHCP server, i.e. in your case an address outside .10-.100, .150-.200.

    Now, if your current configuration worked for EVM, it should also work for your custom board.

  • Hi Misa,

    I moved those options inside "subnet" but still the same behavior (meaning j7 evm works just fine but not on our custom board). Two question -

    1) Have you used this board? - https://www.ti.com/lit/ug/snlu289/snlu289.pdf?ts=1607973955431&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FDP83TG720S-Q1 

    not sure if this board is altering something in middle or any network config changes needed due to this?

    2) What I have to do to test with Static IP address?

    Thanks,

    Satish

  • Satish,

    I haven't used that media converter.

    For static IP experiment:

    • EthFw:
      • apps/app_remoteswitchcfg_server/ndk.cfg - set enableStaticIp to 1. The IP address is set to 192.168.1.203 in the same config file.
    • Linux core:
      • ifconfig eth0 192.168.1.205 netmask 255.255.255.0 up

    Consider doing the following experiment to check if packets are arriving at the CPSW9G side:

    1. Comment out EthFw_initRemoteServices() in apps/app_remoteswitchcfg_server/main_tirtos.c, and recompile EthFw.
    2. Connect CCS
    3. Select "MAIN_Cortex_R5_0_0" and connect to it
    4. Open "GEL Files" (I can't remember the exact menu to choose, but you can select Tools -> ARM Advanced Features, and then in the new panel, select "GEL Files").
    5. Right-click in GEL files panel, and select "Load GEL..."
    6. Open <pdk>/packages/ti/drv/cpsw/tools/debug_gels/cpsw_startup.gel.
    7. Go to Scripts -> CPSW Statistics Print -> cpsw_9g_statsprint_nonzero, and look for MAC port statistics of the port you're currently testing.
  • Hi Misa,

    I connected the CCS and followed your steps.  After click on "cpsw_9g_statsprint_nonzero" I get following .

    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load In Progress... <<<---
    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load DONE! <<<---
    MAIN_Cortex_R5_0_0: GEL Output: STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT0 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    cpsw_9g_statsprint_nonzero() cannot be evaluated.
    Could not read 0x0C03A000: execution state prevented access [cpsw_stats_print_regs.gel]
    at cpsw_print_stat_nonzero("RXGOODFRAMES ", portnum, 0x0C03A000U) [cpsw_stats_print_regs.gel:202]
    at cpsw_9g_statsprint_nonzero()

    I tried to connect to DHCP server in my PC "udhcpc -i eth0" but didn't see any message.

    Here is the Image from my CCS -

  • Pause execution on MAIN_Cortex_R5F_0_0 before you run the script.

    If you're using static IPs, you can try pinging EthFw and Linux IP addresses from PC, and vice versa.

  • Hi Misa,

    I tested with both DHCP and static IP and I just see this log 

    In case when I loaded firmware with Dynamic IP enabled -

    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load In Progress... <<<---
    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load DONE! <<<---
    MAIN_Cortex_R5_0_0: GEL Output: STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT0 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXGOODFRAMES = 0x00000021
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXBROADCASTFRAMES = 0x0000000B
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXMULTICASTFRAMES = 0x00000016
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_ALE_DROP = 0x00000021
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXOCTETS = 0x00001956
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES65T127 = 0x0000000F
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES128T255 = 0x00000007
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES256T511 = 0x0000000B
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_NETOCTETS = 0x00001956
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_PORTMASK_DROP = 0x00000021
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT1 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT2 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT3 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT4 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT5 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT6 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT7 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT8 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------

    This is the log with static IP

    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load In Progress... <<<---
    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load DONE! <<<---
    MAIN_Cortex_R5_0_0: GEL Output: STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT0 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXGOODFRAMES = 0x0000001F
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXBROADCASTFRAMES = 0x00000009
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXMULTICASTFRAMES = 0x00000016
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_ALE_DROP = 0x0000001F
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXOCTETS = 0x0000169A
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES65T127 = 0x0000000F
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES128T255 = 0x00000007
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES256T511 = 0x00000009
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_NETOCTETS = 0x0000169A
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_PORTMASK_DROP = 0x0000001F
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT1 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT2 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT3 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT4 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT5 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT6 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT7 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT8 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------

    I don't see any activity on Console while pinging from PC to J7 or vice versa. These are the logs just printed as soon as I ran cpsw_9g_statsprint_nonzero script.

  • Satish,

    The packets are not being forwarded from host port to any MAC port. I see in the statistics that some of those frames were broadcast frames, so they should have shown up in the MAC port statistics (ports 1-8).

    Could you please confirm if you get a message saying that link is up for the port that you are testing?

    Please also check the values of (0x0C03E040 + y * 4), where "y" is the MAC port number, i.e. 1-8. Bits 1:0 of those registers are of interest, both bits should be set for the port that you are testing. You can use CCS' Memory Browser for this experiment.

  • Hi Misa,

    When I connect the Ethernet cable from MAC port 2 to my ethernet connector board. the log stops at "LINK_WAIT -> LINKED (0 ticks)" . I was under the assumption that Link is now ready to communicate with partner computer. 

    Here is the log.

    CpswPhy_setNextState: PHY 0: LINK_WAIT -> FOUND (0 ticks)
    Dp83tg720_reset: PHY 0: global soft-reset
    CpswPhy_setNextState: PHY 0: FOUND -> RESET_WAIT (10 ticks)
    Dp83tg720_isResetComplete: PHY 0: global reset is complete
    CpswPhy_setNextState: PHY 0: RESET_WAIT -> ENABLE (0 ticks)
    CpswPhy_enableState: PHY 0: enable
    Dp83tg720_config: Applying configuration for Chip 4
    Dp83tg720_readStraps: Strap is 0x2020
    Dp83tg720_readStraps: Strap: Master Mode enabled
    Dp83tg720_readStraps: Strap: SGMII Mode enabled
    Dp83tg720_config: PHY 0: Enabling SGMII Mode
    Dp83tg720_resetHw: PHY 0: global hard-reset
    Dp83tg720_reset: PHY 0: global soft-reset
    Dp83tg720_isResetComplete: PHY 0: global reset is complete

    SGMII_CTRL_1 value = 0x027b
    Dp83tg720_setLoopbackCfg: PHY 0: disable loopback
    Dp83tg720_reset: PHY 0: global soft-reset
    Dp83tg720_isResetComplete: PHY 0: global reset is complete
    Dp83tg720_configIntr: PHY 0: Disable interrupts
    PHY 0: SGMII_CTRL = 0x027b
    PHY 0: RGMII_CTRL = 0x0120
    PHY 0: RGMII_DELAY_CTRL = 0x0000
    PHY 0: RGMII_DELAY_TX_RX = 0x0980
    PHY 0: REG_MasterSlave = 0xc001
    CpswPhy_enableState: Automotive PHY detected. Skipping Auto-Negotiation
    CpswPhy_enableState: PHY 0: req caps: FD1000 HD1000 FD100 HD100 FD10 HD10
    CpswPhy_enableState: PHY 0: PHY caps: FD1000
    CpswPhy_enableState: PHY 0: MAC caps: FD1000 FD100 HD100 FD10 HD10
    CpswPhy_enableState: PHY 0: refined caps: FD1000
    CpswPhy_enableState: PHY 0: PHY is notNWAY-capable
    CpswPhy_enableState: PHY 0: falling back to manual mode
    CpswPhy_enableState: PHY 0: new link caps: FD1000
    CpswPhy_enableState: PHY 0: manual setup
    CpswPhy_setupManual: PHY 0: requested mode: 1 Gbps full-duplex
    CpswPhy_setNextState: PHY 0: ENABLE -> LINK_WAIT (50 ticks)
    CpswPhy_setNextState: PHY 0: LINK_WAIT -> LINKED (0 ticks)

    Let me connect the JTAG, I will provide the memory address in few min.

  • It's probably stuck somewhere else. When you connect the debugger, please check where the EthFw is at and share the callstack?

  • Value at "0xC03E04C" is all "0x00000000". Let me load the debug symbol.

  • This is the snapshot of Callstack.

  • This is the snapshot where It was calling "Cpsw_isPortLinkUp(hCpsw, portNum, &isPortLinked);" and return value of this function was 0.

  • So ran the debugger again to get better look. It looks like It is stuck in this while loop.. I kept pressing "Step over" in CCS but it doesn't come out of this while loop.

    phyInArgs.portNum = portNum;
    /* Check that port status also detected link up */
    do {
    /* Need to repeatedly check port status as it does not reflect
    * PHY status immediately
    */
    status = Cpsw_isPortLinkUp(hCpsw, portNum, &isPortLinked);
    } while ((CPSW_SOK == status) && (isPortLinked == false));

    While It was stuck in while loop. This is the call stack. 

    Since it was calling "Cpsw_isPortLinkUp(hCpsw, portNum, &isPortLinked);" function, I step into that fuction and noticed that after calling blue line in this fuction it simply returns to the called fuction. 

    else if (enetSublayer == CPSW_MAC_SUBLAYER_SERIAL)
    {
    /* We have link status in CPSW subsystem regs as well as in SGMII regs,
    * we check only top level link status as they are the same signal.*/
    *linked = CSL_CPSW_SS_getSGMIILinkStatus(hCpsw->cpswSsRegs,portNum);
    }

    When debugger was at the return line of "Cpsw_isPortLinkUp(hCpsw, portNum, &isPortLinked);" the call stack was like this. 

  • Could you please try applying the patch I have shared in this e2e post:

    https://e2e.ti.com/support/processors/f/processors-forum/975703/dra829-please-help-explain-the-sgmii-register/3626527

    The patch is in the last comment on that e2e thread.

  • I applied your patch. No change noticed. Still stuck at same while loop. Here is the snapshot of CCS for call stack.

    This is the output of gel file. I have tested it in Dynamic ip mode.. 

    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load In Progress... <<<---
    MAIN_Cortex_R5_0_0: GEL Output: --->>> CPSW Gel Load DONE! <<<---
    MAIN_Cortex_R5_0_0: GEL Output: STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT0 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXGOODFRAMES = 0x0000001C
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXBROADCASTFRAMES = 0x00000007
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXMULTICASTFRAMES = 0x00000015
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_ALE_DROP = 0x0000001C
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_RXOCTETS = 0x000013AC
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES65T127 = 0x0000000E
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES128T255 = 0x00000007
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_OCTETFRAMES256T511 = 0x00000007
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_NETOCTETS = 0x000013AC
    MAIN_Cortex_R5_0_0: GEL Output: STAT_0_PORTMASK_DROP = 0x0000001C
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT1 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT2 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT3 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT4 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT5 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT6 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT7 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------
    MAIN_Cortex_R5_0_0: GEL Output: PORT8 STATS
    MAIN_Cortex_R5_0_0: GEL Output: --------------------------------