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.

PROCESSOR-SDK-AM64X: HSR offload PRU firmware functionalities issue

Part Number: PROCESSOR-SDK-AM64X

Hi

I'm using the latest TI SDK release www.ti.com/.../PROCESSOR-SDK-AM64X , with rt-kernel : sha 3c08dbfd7b : https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-rt-linux-6.1.y-cicd

I see some issues when pinging packets between 2 boards EVMs with offload hsr solution. It seems, when we ping from EVM1 to EVM2, the packets don't go through the both path. There is only traffic on one path (let's call path A). And on the other path (let's call path B), there is no packets traffic. When we remove manually the pathA (the one with traffic), the ping stops working for 1s and restarts sending ping by using the pathB. At the end, we have packets lost.

For the offload HSR, Why don't we have packets traffic on both paths (pathA and pathB)?

Here is our setup: after flashing image, we disable the network (a requirement for our curstomer) :

systemctl disable dhcpcd.service
systemctl disable NetworkManager.service
systemctl disable systemd-resolved.service
systemctl disable systemd-networkd.service
sync
reboot

Then we enable hsr_offload firmware and starts pinging.

We are also placing 2 Profisharks to sniff packets between EVM1 eth1 <-> EVM2 eth1 and EVM1 eth2 <->EVM2 eth2. You can use ifconfig -s to check nb of packets in RX/TX (instead of Profisharks) :

root@am64xx-evm:~# ifconfig -s

Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg

eth1             1500        0      0      0 0            16      0      0      0 BMRU

eth2             1500        0      0      0 0             8      0      0      0 BMRU

hsr0             1494        0      0      0 0             9      0      0      0 BMRU

lo              65536      480      0      0 0           480      0      0      0 LRU

root@am64xx-evm:~# ping 192.168.200.2 -i 0.1 -c 30                                           

PING 192.168.200.2 (192.168.200.2): 56 data bytes

64 bytes from 192.168.200.2: seq=0 ttl=64 time=0.755 ms

64 bytes from 192.168.200.2: seq=1 ttl=64 time=0.287 ms

64 bytes from 192.168.200.2: seq=2 ttl=64 time=0.242 ms

64 bytes from 192.168.200.2: seq=3 ttl=64 time=0.250 ms

64 bytes from 192.168.200.2: seq=4 ttl=64 time=0.209 ms

64 bytes from 192.168.200.2: seq=5 ttl=64 time=0.244 ms

64 bytes from 192.168.200.2: seq=6 ttl=64 time=0.225 ms

64 bytes from 192.168.200.2: seq=7 ttl=64 time=0.232 ms

64 bytes from 192.168.200.2: seq=8 ttl=64 time=0.282 ms

64 bytes from 192.168.200.2: seq=9 ttl=64 time=0.222 ms

64 bytes from 192.168.200.2: seq=10 ttl=64 time=0.270 ms

64 bytes from 192.168.200.2: seq=11 ttl=64 time=0.240 ms

64 bytes from 192.168.200.2: seq=12 ttl=64 time=0.247 ms

64 bytes from 192.168.200.2: seq=13 ttl=64 time=0.234 ms

64 bytes from 192.168.200.2: seq=14 ttl=64 time=0.227 ms

64 bytes from 192.168.200.2: seq=15 ttl=64 time=0.275 ms

64 bytes from 192.168.200.2: seq=16 ttl=64 time=0.225 ms

64 bytes from 192.168.200.2: seq=17 ttl=64 time=0.220 ms

64 bytes from 192.168.200.2: seq=18 ttl=64 time=0.286 ms

64 bytes from 192.168.200.2: seq=19 ttl=64 time=0.229 ms

64 bytes from 192.168.200.2: seq=20 ttl=64 time=0.253 ms

64 bytes from 192.168.200.2: seq=21 ttl=64 time=0.242 ms

64 bytes from 192.168.200.2: seq=22 ttl=64 time=0.390 ms

64 bytes from 192.168.200.2: seq=23 ttl=64 time=0.270 ms

64 bytes from 192.168.200.2: seq=24 ttl=64 time=0.239 ms

64 bytes from 192.168.200.2: seq=25 ttl=64 time=0.304 ms

64 bytes from 192.168.200.2: seq=26 ttl=64 time=0.257 ms

64 bytes from 192.168.200.2: seq=27 ttl=64 time=0.222 ms

64 bytes from 192.168.200.2: seq=28 ttl=64 time=0.276 ms

64 bytes from 192.168.200.2: seq=29 ttl=64 time=0.260 ms



--- 192.168.200.2 ping statistics ---

30 packets transmitted, 30 packets received, 0% packet loss

round-trip min/avg/max = 0.209/0.270/0.755 ms

root@am64xx-evm:~# ifconfig -s

Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg

eth1             1500       32      0      0 0            50      0      0      0 BMRU

eth2             1500        0      0      0 0             9      0      0      0 BMRU

hsr0             1494       32      0      0 0            42      0      0      0 BMRU

lo              65536      560      0      0 0           560      0      0      0 LRU

root@am64xx-evm:~# 

Here we can that the EVM1 sends 32 packets in total. The 32 are going to eth1 and there is 0 packets that goes to eth2.

  • Hi Tianyi,

    Just to double confirm, without the steps to disable the network (using the commands you provided above), does the issue described here still persist?

    I will add this to my queue of HSR offload issues to reproduce and will come back with an update later today.

    -Daolin

  • Hi Tianyi,

    I ran two separate tests with two EVMs connected eth1 to eth1 and eth2 to eth2

    1. Disable the network services using the commands provided and running ping + disconnect cable between eth0 and eth1 (one at a time)

    2. Don't disable network services and running ping + disconnect cable between eth1 and eth2 (one at a time)

    With test type 1, I see packet loss similar to what you reported: (see console log of both EVMs below)

    //EVM 1
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project am64xx-evm -
    
    Arago 2023.10 am64xx-evm -
    
    am64xx-evm login: ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPL-3.0 packages:
            adwaita-icon-theme-symbolic
            autoconf
            bash-dev
            bash
            bc
            binutils
            cifs-utils
            coreutils-stdbuf
            coreutils
            cpio
            cpp-symlinks
            cpp
            dosfstools
            elfutils
            g++-symlinks
            g++
            gawk
            gcc-symlinks
            gcc
            gdb
            gdbserver
            gettext
            glmark2
            gnu-config
            grub-common
            grub-editenv
            grub-efi
            gzip
            hidapi
            less
            libasm1
            libatomic-dev
            libatomic1
            libbfd
            libdebuginfod1
            libdw1
            libelf1
            libgcc-s-dev
            libgcc1
            libgdbm-compat4
            libgdbm-dev
            libgdbm6
            libgettextlib
            libgettextsrc
            libgmp10
            libidn2-0
            libmpc3
            libmpfr6
            libopcodes
            libqt5charts-examples
            libqt5charts-plugins
            libqt5charts-qmlplugins
            libqt5charts5
            libqt5sensors-plugins
            libqt5sensors-qmlplugins
            libqt5sensors5
            libqt5serialport-examples
            libqt5serialport-plugins
            libqt5serialport-qmlplugins
            libqt5serialport5
            libqt5svg-examples
            libqt5svg-plugins
            libqt5svg-qmlplugins
            libqt5svg5
            libqt5virtualkeyboard-plugins
            libqt5virtualkeyboard-qmlplugins
            libqt5virtualkeyboard5
            libqt5webchannel-plugins
            libqt5webchannel-qmlplugins
            libqt5webchannel5
            libreadline-dev
            libreadline8
            libstdc++-dev
            libstdc++6
            libunistring2
            m4-dev
            m4
            make
            nettle
            parted
            piglit
            qt3d-plugins
            qt3d-qmlplugins
            qt3d
            qtbase-examples
            qtbase-plugins
            qtbase-qmlplugins
            qtbase
            qtconnectivity-plugins
            qtconnectivity-qmlplugins
            qtconnectivity
            qtdeclarative-plugins
            qtdeclarative-qmlplugins
            qtdeclarative-tools
            qtdeclarative
            qtgraphicaleffects-qmlplugins
            qtlocation-examples
            qtlocation-plugins
            qtlocation-qmlplugins
            qtlocation
            qtmultimedia-examples
            qtmultimedia-plugins
            qtmultimedia-qmlplugins
            qtmultimedia
            qtquics-qmlplugins.control
            qtquics2-plugins.control
            qtquics2-qmlplugins.control
            qtquics2.control
            qtscript-examples
            qtscript-plugins
            qtscript-qmlplugins
            qtscript
            qtwayland-examples
            qtwayland-plugins
            qtwayland-qmlplugins
            qtwayland
            tar
            which
    
    If you do not wish to distribute GPL-3.0 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    
    am64xx-evm login: root
    [   26.237835] audit: type=1006 audit(1653247151.749:2): pid=987 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [   26.237923] audit: type=1300 audit(1653247151.749:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffcbbb09b8 a2=1 a3=ffff98c0c020 items=0 ppid=1 pid=987 auid=0 uid=0 gid=0 euid=0 suid=0 fsui)
    [   26.237975] audit: type=1327 audit(1653247151.749:2): proctitle="(systemd)"
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    lo              65536      173      0      0 0           173      0      0      0 LRU
    root@am64xx-evm:~# sh hsr_setup_new.sh hsr_hw eth1 eth2 192.168.2.20
    ip=192.168.2.20
    if=hsr0
    mac=70:ff:76:1f:3d:c5
    slave-a=eth1
    slave-b=eth2
    device=platform/
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    kernel answers: No such device
    [   54.207836] remoteproc remoteproc9: powering up 300b4000.pru
    [   54.213723] remoteproc remoteproc9: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 40936
    [   54.213762] remoteproc remoteproc9: unsupported resource 5
    [   54.213791] remoteproc remoteproc9: remote processor 300b4000.pru is now up
    [   54.213831] remoteproc remoteproc10: powering up 30084000.rtu
    [   54.218217] remoteproc remoteproc10: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30884
    [   54.218269] remoteproc remoteproc10: remote processor 30084000.rtu is now up
    [   54.218311] remoteproc remoteproc7: powering up 3008a000.txpru
    [   54.219570] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 36672
    [   54.219627] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [   54.219907] remoteproc remoteproc11: powering up 300b8000.pru
    [   54.221313] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-pru1-prueth-fw.elf, size 41208
    [   54.221353] remoteproc remoteproc11: unsupported resource 5
    [   54.221381] remoteproc remoteproc11: remote processor 300b8000.pru is now up
    [   54.221424] remoteproc remoteproc12: powering up 30086000.rtu
    [   54.222568] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-rtu1-prueth-fw.elf, size 30124
    [   54.222617] remoteproc remoteproc12: remote processor 30086000.rtu is now up
    [   54.222658] remoteproc remoteproc8: powering up 3008c000.txpru
    [   54.223964] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-prueth-fw.elf, size 35184
    [   54.224071] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [   54.226745] pps pps1: new PPS source ptp2
    [   58.342213] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [   58.342676] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [   59.342358] hsr0: Slave B (eth2) is not up; please bring it up to get a fully working HSR network
    [   59.352236] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
    root@am64xx-evm:~# [   59.366050] icssg-prueth icssg1-eth eth1: Link is Down
    [   59.366527] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    [   59.366963] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [   60.389959] icssg-prueth icssg1-eth eth2: Link is Down
    [   62.438196] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [   63.461955] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500        0      0      0 0            23      0      0      0 BMRU
    eth2             1500        6      0      0 0             8      0      0      0 BMRU
    hsr0             1494        0      0      0 0            42      0      0      0 BMRU
    lo              65536      253      0      0 0           253      0      0      0 LRU
    root@am64xx-evm:~# ping 192.168.2.21                                                                                                                                                                 
    PING 192.168.2.21 (192.168.2.21): 56 data bytes
    64 bytes from 192.168.2.21: seq=0 ttl=64 time=0.778 ms
    64 bytes from 192.168.2.21: seq=1 ttl=64 time=0.454 ms
    64 bytes from 192.168.2.21: seq=2 ttl=64 time=0.448 ms
    64 bytes from 192.168.2.21: seq=3 ttl=64 time=0.463 ms
    64 bytes from 192.168.2.21: seq=4 ttl=64 time=0.442 ms
    64 bytes from 192.168.2.21: seq=5 ttl=64 time=0.476 ms
    64 bytes from 192.168.2.21: seq=6 ttl=64 time=0.449 ms
    64 bytes from 192.168.2.21: seq=7 ttl=64 time=0.455 ms
    64 bytes from 192.168.2.21: seq=8 ttl=64 time=0.456 ms
    64 bytes from 192.168.2.21: seq=9 ttl=64 time=0.429 ms
    [  100.325657] icssg-prueth icssg1-eth eth2: Link is Down
    64 bytes from 192.168.2.21: seq=10 ttl=64 time=0.481 ms
    64 bytes from 192.168.2.21: seq=11 ttl=64 time=0.451 ms
    64 bytes from 192.168.2.21: seq=12 ttl=64 time=0.421 ms
    64 bytes from 192.168.2.21: seq=13 ttl=64 time=0.454 ms
    64 bytes from 192.168.2.21: seq=14 ttl=64 time=0.431 ms
    64 bytes from 192.168.2.21: seq=15 ttl=64 time=0.438 ms
    64 bytes from 192.168.2.21: seq=16 ttl=64 time=0.482 ms
    64 bytes from 192.168.2.21: seq=17 ttl=64 time=0.452 ms
    [  108.517843] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.21: seq=18 ttl=64 time=0.437 ms
    64 bytes from 192.168.2.21: seq=19 ttl=64 time=0.436 ms
    64 bytes from 192.168.2.21: seq=20 ttl=64 time=0.403 ms
    64 bytes from 192.168.2.21: seq=21 ttl=64 time=0.423 ms
    64 bytes from 192.168.2.21: seq=22 ttl=64 time=0.402 ms
    [  114.661651] icssg-prueth icssg1-eth eth1: Link is Down
    64 bytes from 192.168.2.21: seq=24 ttl=64 time=0.541 ms
    64 bytes from 192.168.2.21: seq=25 ttl=64 time=0.466 ms
    64 bytes from 192.168.2.21: seq=26 ttl=64 time=0.509 ms
    64 bytes from 192.168.2.21: seq=27 ttl=64 time=0.456 ms
    64 bytes from 192.168.2.21: seq=28 ttl=64 time=0.494 ms
    64 bytes from 192.168.2.21: seq=29 ttl=64 time=0.424 ms
    [  120.805847] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.21: seq=31 ttl=64 time=0.454 ms
    64 bytes from 192.168.2.21: seq=32 ttl=64 time=0.453 ms
    64 bytes from 192.168.2.21: seq=33 ttl=64 time=0.443 ms
    64 bytes from 192.168.2.21: seq=34 ttl=64 time=0.450 ms
    64 bytes from 192.168.2.21: seq=35 ttl=64 time=0.411 ms
    ^C
    --- 192.168.2.21 ping statistics ---
    36 packets transmitted, 34 packets received, 5% packet loss
    round-trip min/avg/max = 0.402/0.460/0.778 ms
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500       30      0      0 0            85      0      0      0 BMRU
    eth2             1500       12      0      0 0            22      0      0      0 BMRU
    hsr0             1494       36      0      0 0           109      0      0      0 BMRU
    lo              65536      413      0      0 0           413      0      0      0 LRU
    root@am64xx-evm:~# [  146.405647] icssg-prueth icssg1-eth eth2: Link is Down
    [  153.574364] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  160.741667] icssg-prueth icssg1-eth eth1: Link is Down
    [  166.885849] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    

    //EVM 2
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project am64xx-evm -
    
    Arago 2023.10 am64xx-evm -
    
    am64xx-evm login: ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPL-3.0 packages:
            adwaita-icon-theme-symbolic
            autoconf
            bash-dev
            bash
            bc
            binutils
            cifs-utils
            coreutils-stdbuf
            coreutils
            cpio
            cpp-symlinks
            cpp
            dosfstools
            elfutils
            g++-symlinks
            g++
            gawk
            gcc-symlinks
            gcc
            gdb
            gdbserver
            gettext
            glmark2
            gnu-config
            grub-common
            grub-editenv
            grub-efi
            gzip
            hidapi
            less
            libasm1
            libatomic-dev
            libatomic1
            libbfd
            libdebuginfod1
            libdw1
            libelf1
            libgcc-s-dev
            libgcc1
            libgdbm-compat4
            libgdbm-dev
            libgdbm6
            libgettextlib
            libgettextsrc
            libgmp10
            libidn2-0
            libmpc3
            libmpfr6
            libopcodes
            libqt5charts-examples
            libqt5charts-plugins
            libqt5charts-qmlplugins
            libqt5charts5
            libqt5sensors-plugins
            libqt5sensors-qmlplugins
            libqt5sensors5
            libqt5serialport-examples
            libqt5serialport-plugins
            libqt5serialport-qmlplugins
            libqt5serialport5
            libqt5svg-examples
            libqt5svg-plugins
            libqt5svg-qmlplugins
            libqt5svg5
            libqt5virtualkeyboard-plugins
            libqt5virtualkeyboard-qmlplugins
            libqt5virtualkeyboard5
            libqt5webchannel-plugins
            libqt5webchannel-qmlplugins
            libqt5webchannel5
            libreadline-dev
            libreadline8
            libstdc++-dev
            libstdc++6
            libunistring2
            m4-dev
            m4
            make
            nettle
            parted
            piglit
            qt3d-plugins
            qt3d-qmlplugins
            qt3d
            qtbase-examples
            qtbase-plugins
            qtbase-qmlplugins
            qtbase
            qtconnectivity-plugins
            qtconnectivity-qmlplugins
            qtconnectivity
            qtdeclarative-plugins
            qtdeclarative-qmlplugins
            qtdeclarative-tools
            qtdeclarative
            qtgraphicaleffects-qmlplugins
            qtlocation-examples
            qtlocation-plugins
            qtlocation-qmlplugins
            qtlocation
            qtmultimedia-examples
            qtmultimedia-plugins
            qtmultimedia-qmlplugins
            qtmultimedia
            qtquics-qmlplugins.control
            qtquics2-plugins.control
            qtquics2-qmlplugins.control
            qtquics2.control
            qtscript-examples
            qtscript-plugins
            qtscript-qmlplugins
            qtscript
            qtwayland-examples
            qtwayland-plugins
            qtwayland-qmlplugins
            qtwayland
            tar
            which
    
    If you do not wish to distribute GPL-3.0 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    
    am64xx-evm login: root
    [   18.477598] audit: type=1006 audit(1653088761.561:2): pid=984 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [   18.477822] audit: type=1300 audit(1653088761.561:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffcf817f28 a2=1 a3=ffff882b7020 items=0 ppid=1 pid=984 auid=0 uid=0 gid=0 euid=0 suid=0 fsui)
    [   18.479000] audit: type=1327 audit(1653088761.561:2): proctitle="(systemd)"
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    lo              65536       93      0      0 0            93      0      0      0 LRU
    root@am64xx-evm:~# sh hsr_setup_new.sh hsr_hw eth1 eth2 192.168.2.21                                                                                                                                  
    ip=192.168.2.21
    if=hsr0
    mac=70:ff:76:1f:3c:45
    slave-a=eth1
    slave-b=eth2
    device=platform/
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    kernel answers: No such device
    [   38.640232] remoteproc remoteproc16: powering up 300b4000.pru
    [   38.644227] remoteproc remoteproc16: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 40936
    [   38.644264] remoteproc remoteproc16: unsupported resource 5
    [   38.644292] remoteproc remoteproc16: remote processor 300b4000.pru is now up
    [   38.644331] remoteproc remoteproc9: powering up 30084000.rtu
    [   38.648689] remoteproc remoteproc9: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30884
    [   38.648749] remoteproc remoteproc9: remote processor 30084000.rtu is now up
    [   38.648792] remoteproc remoteproc4: powering up 3008a000.txpru
    [   38.650111] remoteproc remoteproc4: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 36672
    [   38.650164] remoteproc remoteproc4: remote processor 3008a000.txpru is now up
    [   38.650452] remoteproc remoteproc11: powering up 300b8000.pru
    [   38.651902] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-pru1-prueth-fw.elf, size 41208
    [   38.651943] remoteproc remoteproc11: unsupported resource 5
    [   38.651972] remoteproc remoteproc11: remote processor 300b8000.pru is now up
    [   38.652017] remoteproc remoteproc12: powering up 30086000.rtu
    [   38.653261] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-rtu1-prueth-fw.elf, size 30124
    [   38.653312] remoteproc remoteproc12: remote processor 30086000.rtu is now up
    [   38.653356] remoteproc remoteproc5: powering up 3008c000.txpru
    [   38.654662] remoteproc remoteproc5: Booting fw image ti-pruss/am65x-sr2-txpru1-prueth-fw.elf, size 35184
    [   38.654720] remoteproc remoteproc5: remote processor 3008c000.txpru is now up
    [   38.657062] pps pps1: new PPS source ptp2
    [   41.765632] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [   41.765734] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [   42.789361] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    [   42.790050] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [   43.764285] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ifconfig -s 
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500        1      0      0 0            56      0      0      0 BMRU
    eth2             1500        1      0      0 0            16      0      0      0 BMRU
    hsr0             1494        0      0      0 0            39      0      0      0 BMRU
    lo              65536      180      0      0 0           180      0      0      0 LRU
    root@am64xx-evm:~# [   80.677129] icssg-prueth icssg1-eth eth2: Link is Down
    [   88.869701] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [   93.989318] icssg-prueth icssg1-eth eth1: Link is Down
    [  101.157324] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# ping 192.168.2.20                                                                                                                                                                 
    PING 192.168.2.20 (192.168.2.20): 56 data bytes
    64 bytes from 192.168.2.20: seq=0 ttl=64 time=0.562 ms
    64 bytes from 192.168.2.20: seq=1 ttl=64 time=0.411 ms
    64 bytes from 192.168.2.20: seq=2 ttl=64 time=0.446 ms
    64 bytes from 192.168.2.20: seq=3 ttl=64 time=0.426 ms
    64 bytes from 192.168.2.20: seq=4 ttl=64 time=0.428 ms
    64 bytes from 192.168.2.20: seq=5 ttl=64 time=0.399 ms
    64 bytes from 192.168.2.20: seq=6 ttl=64 time=0.467 ms
    64 bytes from 192.168.2.20: seq=7 ttl=64 time=0.396 ms
    [  125.733321] icssg-prueth icssg1-eth eth2: Link is Down
    64 bytes from 192.168.2.20: seq=8 ttl=64 time=0.478 ms
    64 bytes from 192.168.2.20: seq=9 ttl=64 time=0.435 ms
    64 bytes from 192.168.2.20: seq=10 ttl=64 time=0.517 ms
    64 bytes from 192.168.2.20: seq=11 ttl=64 time=0.416 ms
    64 bytes from 192.168.2.20: seq=12 ttl=64 time=0.430 ms
    64 bytes from 192.168.2.20: seq=13 ttl=64 time=0.393 ms
    64 bytes from 192.168.2.20: seq=14 ttl=64 time=0.504 ms
    64 bytes from 192.168.2.20: seq=15 ttl=64 time=0.409 ms
    64 bytes from 192.168.2.20: seq=16 ttl=64 time=0.454 ms
    [  133.925344] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.20: seq=17 ttl=64 time=0.467 ms
    64 bytes from 192.168.2.20: seq=18 ttl=64 time=0.458 ms
    64 bytes from 192.168.2.20: seq=19 ttl=64 time=0.469 ms
    64 bytes from 192.168.2.20: seq=20 ttl=64 time=0.449 ms
    64 bytes from 192.168.2.20: seq=21 ttl=64 time=0.447 ms
    64 bytes from 192.168.2.20: seq=22 ttl=64 time=0.426 ms
    [  140.069334] icssg-prueth icssg1-eth eth1: Link is Down
    64 bytes from 192.168.2.20: seq=24 ttl=64 time=0.500 ms
    64 bytes from 192.168.2.20: seq=25 ttl=64 time=0.477 ms
    64 bytes from 192.168.2.20: seq=26 ttl=64 time=0.470 ms
    64 bytes from 192.168.2.20: seq=27 ttl=64 time=0.439 ms
    64 bytes from 192.168.2.20: seq=28 ttl=64 time=0.448 ms
    64 bytes from 192.168.2.20: seq=29 ttl=64 time=0.497 ms
    [  147.237639] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.20: seq=30 ttl=64 time=0.476 ms
    64 bytes from 192.168.2.20: seq=31 ttl=64 time=0.450 ms
    64 bytes from 192.168.2.20: seq=32 ttl=64 time=0.428 ms
    64 bytes from 192.168.2.20: seq=33 ttl=64 time=0.448 ms
    ^C
    --- 192.168.2.20 ping statistics ---
    34 packets transmitted, 33 packets received, 2% packet loss
    round-trip min/avg/max = 0.393/0.452/0.562 ms
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500       60      0      0 0           162      0      0      0 BMRU
    eth2             1500       14      0      0 0            43      0      0      0 BMRU
    hsr0             1494       72      0      0 0           160      0      0      0 BMRU
    lo              65536      420      0      0 0           420      0      0      0 LRU
    root@am64xx-evm:~# 
    
    

    With test type 2, I do not see packet loss when disconnecting either eth1 or eth2 during ping.

    //EVM 1
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project am64xx-evm -
    
    Arago 2023.10 am64xx-evm -
    
    am64xx-evm login: root
    [   21.084322] audit: type=1006 audit(1653250795.154:2): pid=970 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [   21.084353] audit: type=1300 audit(1653250795.154:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffc8ef9e18 a2=1 a3=ffffb231c020 items=0 ppid=1 pid=970 auid=0 uid=0 gid=0 euid=0 suid=0 fsui)
    [   21.084367] audit: type=1327 audit(1653250795.154:2): proctitle="(systemd)"
    root@am64xx-evm:~# u[   22.885175] icssg-prueth icssg1-eth eth1: Link is Down
    [   23.013171] icssg-prueth icssg1-eth eth2: Link is Down
    nam^C
    root@am64xx-evm:~# uname -a[   26.984873] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    Linux am64xx-evm 6.1.80-rt26-00021-g8dfe902f9207 #2 SMP PREEMPT_[   27.114640] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    RT Tue Mar 26 09:55:56 CDT 2024 aarch64 aarch64 aarch64 GNU/Linux
    root@am64xx-evm:~# uname -a
    Linux am64xx-evm 6.1.80-rt26-00021-g8dfe902f9207 #2 SMP PREEMPT_RT Tue Mar 26 09:55:56 CDT 2024 aarch64 aarch64 aarch64 GNU/Linux
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0             1500        0      0      0 0             0      0      0      0 BMU
    eth1             1500        3      0      0 0            34      0      0      0 BMRU
    eth2             1500       12      0      0 0            53      0      0      0 BMRU
    lo              65536       95      0      0 0            95      0      0      0 LRU
    root@am64xx-evm:~# sh hsr_setup_new.sh hsr_hw eth1 eth2 192.168.2.20
    ip=192.168.2.20
    if=hsr0
    mac=70:ff:76:1f:3d:c5
    slave-a=eth1
    slave-b=eth2
    device=platform/icssg1-eth
    [   62.914821] icssg-prueth icssg1-eth eth1: Link is Down
    [   62.959826] icssg-prueth icssg1-eth eth2: Link is Down
    [   62.963927] remoteproc remoteproc7: stopped remote processor 3008a000.txpru
    [   62.963950] remoteproc remoteproc12: stopped remote processor 30084000.rtu
    [   62.963959] remoteproc remoteproc11: stopped remote processor 300b4000.pru
    [   62.963968] remoteproc remoteproc8: stopped remote processor 3008c000.txpru
    [   62.963977] remoteproc remoteproc14: stopped remote processor 30086000.rtu
    [   62.963985] remoteproc remoteproc13: stopped remote processor 300b8000.pru
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    [   64.108498] icssg-prueth icssg1-eth: Enabling HSR offload mode
    [   64.145581] remoteproc remoteproc11: powering up 300b4000.pru
    [   64.149068] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf, size 40436
    [   64.149104] remoteproc remoteproc11: unsupported resource 5
    [   64.149133] remoteproc remoteproc11: remote processor 300b4000.pru is now up
    [   64.149176] remoteproc remoteproc12: powering up 30084000.rtu
    [   64.153543] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-rtu0-pruhsr-fw.elf, size 32904
    [   64.153600] remoteproc remoteproc12: remote processor 30084000.rtu is now up
    [   64.153642] remoteproc remoteproc7: powering up 3008a000.txpru
    [   64.159692] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-pruhsr-fw.elf, size 35772
    [   64.160954] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [   64.161252] remoteproc remoteproc13: powering up 300b8000.pru
    [   64.162567] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf, size 40652
    [   64.162604] remoteproc remoteproc13: unsupported resource 5
    [   64.162633] remoteproc remoteproc13: remote processor 300b8000.pru is now up
    [   64.162672] remoteproc remoteproc14: powering up 30086000.rtu
    [   64.163969] remoteproc remoteproc14: Booting fw image ti-pruss/am65x-sr2-rtu1-pruhsr-fw.elf, size 32120
    [   64.164023] remoteproc remoteproc14: remote processor 30086000.rtu is now up
    [   64.164064] remoteproc remoteproc8: powering up 3008c000.txpru
    [   64.165199] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-pruhsr-fw.elf, size 34280
    [   64.165252] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [   64.167704] pps pps1: new PPS source ptp2
    [   67.237380] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [   67.239109] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [   68.261572] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [   68.261652] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    [   69.282188] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
    [   69.285394] icssg-prueth icssg1-eth eth2: Link is Down
    [   69.290457] icssg-prueth icssg1-eth eth1: Link is Down
    root@am64xx-evm:~# ifconfig -s[   73.381875] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0             1500        0      0      0 0             0      0      0      0 BMU
    eth1             1500        5      0      0 0            58      0      0      0 BMRU
    eth2             1500       14      0      0 0            59      0      0      0 BMU
    hsr0             1494        0      0      0 0            17      0      0      0 BMRU
    lo              65536       95      0      0 0            95      0      0      0 LRU
    root@am64xx-evm:~# [   74.405564] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  123.557378] icssg-prueth icssg1-eth eth2: Link is Down
    [  128.677447] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  133.797581] icssg-prueth icssg1-eth eth1: Link is Down
    [  144.037606] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0             1500        0      0      0 0             0      0      0      0 BMU
    eth1             1500       95      0      0 0           153      0      0      0 BMRU
    eth2             1500      108      0      0 0           106      0      0      0 BMRU
    hsr0             1494       58      0      0 0           100      0      0      0 BMRU
    lo              65536       95      0      0 0            95      0      0      0 LRU
    root@am64xx-evm:~# ping 192.168.2.21                                                                                                                                                                 
    PING 192.168.2.21 (192.168.2.21): 56 data bytes
    64 bytes from 192.168.2.21: seq=0 ttl=64 time=0.576 ms
    64 bytes from 192.168.2.21: seq=1 ttl=64 time=0.486 ms
    64 bytes from 192.168.2.21: seq=2 ttl=64 time=0.489 ms
    64 bytes from 192.168.2.21: seq=3 ttl=64 time=0.491 ms
    64 bytes from 192.168.2.21: seq=4 ttl=64 time=0.480 ms
    64 bytes from 192.168.2.21: seq=5 ttl=64 time=0.460 ms
    [  183.973390] icssg-prueth icssg1-eth eth2: Link is Down
    64 bytes from 192.168.2.21: seq=6 ttl=64 time=0.512 ms
    64 bytes from 192.168.2.21: seq=7 ttl=64 time=0.518 ms
    64 bytes from 192.168.2.21: seq=8 ttl=64 time=0.467 ms
    64 bytes from 192.168.2.21: seq=9 ttl=64 time=0.466 ms
    64 bytes from 192.168.2.21: seq=10 ttl=64 time=0.457 ms
    64 bytes from 192.168.2.21: seq=11 ttl=64 time=0.567 ms
    64 bytes from 192.168.2.21: seq=12 ttl=64 time=0.463 ms
    64 bytes from 192.168.2.21: seq=13 ttl=64 time=0.460 ms
    [  192.168457] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.21: seq=14 ttl=64 time=0.432 ms
    64 bytes from 192.168.2.21: seq=15 ttl=64 time=0.489 ms
    64 bytes from 192.168.2.21: seq=16 ttl=64 time=0.481 ms
    64 bytes from 192.168.2.21: seq=17 ttl=64 time=0.497 ms
    64 bytes from 192.168.2.21: seq=18 ttl=64 time=0.484 ms
    64 bytes from 192.168.2.21: seq=19 ttl=64 time=0.487 ms
    [  198.309563] icssg-prueth icssg1-eth eth1: Link is Down
    64 bytes from 192.168.2.21: seq=20 ttl=64 time=0.463 ms
    64 bytes from 192.168.2.21: seq=21 ttl=64 time=0.504 ms
    64 bytes from 192.168.2.21: seq=22 ttl=64 time=0.505 ms
    64 bytes from 192.168.2.21: seq=23 ttl=64 time=0.453 ms
    64 bytes from 192.168.2.21: seq=24 ttl=64 time=0.478 ms
    64 bytes from 192.168.2.21: seq=25 ttl=64 time=0.496 ms
    64 bytes from 192.168.2.21: seq=26 ttl=64 time=0.547 ms
    64 bytes from 192.168.2.21: seq=27 ttl=64 time=0.426 ms
    [  206.501565] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.21: seq=28 ttl=64 time=0.409 ms
    64 bytes from 192.168.2.21: seq=29 ttl=64 time=0.500 ms
    64 bytes from 192.168.2.21: seq=30 ttl=64 time=0.518 ms
    64 bytes from 192.168.2.21: seq=31 ttl=64 time=0.487 ms
    64 bytes from 192.168.2.21: seq=32 ttl=64 time=0.464 ms
    64 bytes from 192.168.2.21: seq=33 ttl=64 time=0.424 ms
    64 bytes from 192.168.2.21: seq=34 ttl=64 time=0.475 ms
    ^C
    --- 192.168.2.21 ping statistics ---
    35 packets transmitted, 35 packets received, 0% packet loss
    round-trip min/avg/max = 0.409/0.483/0.576 ms
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0             1500        0      0      0 0             0      0      0      0 BMU
    eth1             1500      138      0      0 0           223      0      0      0 BMRU
    eth2             1500      149      0      0 0           133      0      0      0 BMRU
    hsr0             1494       96      0      0 0           168      0      0      0 BMRU
    lo              65536       95      0      0 0            95      0      0      0 LRU
    root@am64xx-evm:~# 
    
    

    //EVM 2
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project am64xx-evm -
    
    Arago 2023.10 am64xx-evm -
    
    am64xx-evm login: root
    [   22.275972] audit: type=1006 audit(1653092462.190:2): pid=972 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [   22.276556] audit: type=1300 audit(1653092462.190:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffef77aee8 a2=1 a3=ffff82a2c020 items=0 ppid=1 pid=972 auid=0 uid=0 gid=0 euid=0 suid=0 fsui)
    [   22.277523] audit: type=1327 audit(1653092462.190:2): proctitle="(systemd)"
    root@am64xx-evm:~# 
    root@am64xx-evm:~# 
    root@am64xx-evm:~# uname -a
    Linux am64xx-evm 6.1.80-rt26-00021-g8dfe902f9207 #2 SMP PREEMPT_RT Tue Mar 26 09:55:56 CDT 2024 aarch64 aarch64 aarch64 GNU/Linux
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0             1500        0      0      0 0             0      0      0      0 BMU
    eth1             1500        4      0      0 0            25      0      0      0 BMRU
    eth2             1500        4      0      0 0            25      0      0      0 BMRU
    lo              65536       94      0      0 0            94      0      0      0 LRU
    root@am64xx-evm:~# [   51.493424] icssg-prueth icssg1-eth eth1: Link is Down
    [   51.621631] icssg-prueth icssg1-eth eth2: Link is Down
    
    root@am64xx-evm:~# 
    root@am64xx-evm:~# [   55.592811] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    (reverse-i-search)`sh': sh hsr_setup_new.[   56.744211] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    root@am64xx-evm:~# sh hsr_setup_new.
    ip=192.168.2.21
    if=hsr0
    mac=70:ff:76:1f:3c:45
    slave-a=eth1
    slave-b=eth2
    device=platform/icssg1-eth
    [   57.023075] icssg-prueth icssg1-eth eth1: Link is Down
    [   57.066168] icssg-prueth icssg1-eth eth2: Link is Down
    [   57.070310] remoteproc remoteproc7: stopped remote processor 3008a000.txpru
    [   57.070333] remoteproc remoteproc16: stopped remote processor 30084000.rtu
    [   57.070342] remoteproc remoteproc15: stopped remote processor 300b4000.pru
    [   57.070352] remoteproc remoteproc8: stopped remote processor 3008c000.txpru
    [   57.070361] remoteproc remoteproc13: stopped remote processor 30086000.rtu
    [   57.070369] remoteproc remoteproc12: stopped remote processor 300b8000.pru
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    [   58.207897] icssg-prueth icssg1-eth: Enabling HSR offload mode
    [   58.248056] remoteproc remoteproc15: powering up 300b4000.pru
    [   58.251478] remoteproc remoteproc15: Booting fw image ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf, size 40436
    [   58.251518] remoteproc remoteproc15: unsupported resource 5
    [   58.251547] remoteproc remoteproc15: remote processor 300b4000.pru is now up
    [   58.251589] remoteproc remoteproc16: powering up 30084000.rtu
    [   58.256118] remoteproc remoteproc16: Booting fw image ti-pruss/am65x-sr2-rtu0-pruhsr-fw.elf, size 32904
    [   58.256171] remoteproc remoteproc16: remote processor 30084000.rtu is now up
    [   58.256213] remoteproc remoteproc7: powering up 3008a000.txpru
    [   58.259972] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-pruhsr-fw.elf, size 35772
    [   58.260135] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [   58.260419] remoteproc remoteproc12: powering up 300b8000.pru
    [   58.263889] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf, size 40652
    [   58.263925] remoteproc remoteproc12: unsupported resource 5
    [   58.263954] remoteproc remoteproc12: remote processor 300b8000.pru is now up
    [   58.264125] remoteproc remoteproc13: powering up 30086000.rtu
    [   58.265392] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-rtu1-pruhsr-fw.elf, size 32120
    [   58.265446] remoteproc remoteproc13: remote processor 30086000.rtu is now up
    [   58.265485] remoteproc remoteproc8: powering up 3008c000.txpru
    [   58.266673] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-pruhsr-fw.elf, size 34280
    [   58.266725] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [   58.270115] pps pps1: new PPS source ptp2
    [   61.350148] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [   61.350228] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [   62.373845] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [   62.373919] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    [   63.392264] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0             1500        0      0      0 0             0      0      0      0 BMU
    eth1             1500       22      0      0 0           112      0      0      0 BMRU
    eth2             1500       20      0      0 0            55      0      0      0 BMRU
    hsr0             1494        0      0      0 0            50      0      0      0 BMRU
    lo              65536      101      0      0 0           101      0      0      0 LRU
    root@am64xx-evm:~# ping 192.168.2.20                                                                                                                                                                 
    PING 192.168.2.20 (192.168.2.20): 56 data bytes
    64 bytes from 192.168.2.20: seq=0 ttl=64 time=0.707 ms
    64 bytes from 192.168.2.20: seq=1 ttl=64 time=0.469 ms
    64 bytes from 192.168.2.20: seq=2 ttl=64 time=0.470 ms
    64 bytes from 192.168.2.20: seq=3 ttl=64 time=0.461 ms
    64 bytes from 192.168.2.20: seq=4 ttl=64 time=0.520 ms
    [  111.525462] icssg-prueth icssg1-eth eth2: Link is Down
    64 bytes from 192.168.2.20: seq=5 ttl=64 time=0.487 ms
    64 bytes from 192.168.2.20: seq=6 ttl=64 time=0.491 ms
    64 bytes from 192.168.2.20: seq=7 ttl=64 time=0.456 ms
    64 bytes from 192.168.2.20: seq=8 ttl=64 time=0.468 ms
    64 bytes from 192.168.2.20: seq=9 ttl=64 time=0.482 ms
    [  116.647758] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.20: seq=10 ttl=64 time=0.491 ms
    64 bytes from 192.168.2.20: seq=11 ttl=64 time=0.558 ms
    64 bytes from 192.168.2.20: seq=12 ttl=64 time=0.452 ms
    64 bytes from 192.168.2.20: seq=13 ttl=64 time=0.460 ms
    64 bytes from 192.168.2.20: seq=14 ttl=64 time=0.471 ms
    [  121.765821] icssg-prueth icssg1-eth eth1: Link is Down
    64 bytes from 192.168.2.20: seq=15 ttl=64 time=0.475 ms
    64 bytes from 192.168.2.20: seq=16 ttl=64 time=0.527 ms
    64 bytes from 192.168.2.20: seq=17 ttl=64 time=0.534 ms
    64 bytes from 192.168.2.20: seq=18 ttl=64 time=0.431 ms
    64 bytes from 192.168.2.20: seq=19 ttl=64 time=0.500 ms
    64 bytes from 192.168.2.20: seq=20 ttl=64 time=0.475 ms
    64 bytes from 192.168.2.20: seq=21 ttl=64 time=0.473 ms
    64 bytes from 192.168.2.20: seq=22 ttl=64 time=0.480 ms
    64 bytes from 192.168.2.20: seq=23 ttl=64 time=0.511 ms
    64 bytes from 192.168.2.20: seq=24 ttl=64 time=0.457 ms
    [  132.005874] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.20: seq=25 ttl=64 time=0.500 ms
    64 bytes from 192.168.2.20: seq=26 ttl=64 time=0.548 ms
    64 bytes from 192.168.2.20: seq=27 ttl=64 time=0.501 ms
    64 bytes from 192.168.2.20: seq=28 ttl=64 time=0.462 ms
    64 bytes from 192.168.2.20: seq=29 ttl=64 time=0.456 ms
    ^C
    --- 192.168.2.20 ping statistics ---
    30 packets transmitted, 30 packets received, 0% packet loss
    round-trip min/avg/max = 0.431/0.492/0.707 ms
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0             1500        0      0      0 0             0      0      0      0 BMU
    eth1             1500       58      0      0 0           172      0      0      0 BMRU
    eth2             1500       60      0      0 0            85      0      0      0 BMRU
    hsr0             1494       32      0      0 0           112      0      0      0 BMRU
    lo              65536      101      0      0 0           101      0      0      0 LRU
    root@am64xx-evm:~# [  171.941688] icssg-prueth icssg1-eth eth2: Link is Down
    [  180.134754] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  186.277830] icssg-prueth icssg1-eth eth1: Link is Down
    [  194.469848] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0             1500        0      0      0 0             0      0      0      0 BMU
    eth1             1500      103      0      0 0           250      0      0      0 BMRU
    eth2             1500      103      0      0 0           114      0      0      0 BMRU
    hsr0             1494       70      0      0 0           185      0      0      0 BMRU
    lo              65536      101      0      0 0           101      0      0      0 LRU
    root@am64xx-evm:~# 
    
    

    What I noticed is that by first bringing eth1 and eth2 interfaces up with "ip link set eth1 up" and "ip link set eth2 up" before running the hsr setup script (with offloading) will set up HSR with offload such that no packet loss is observed during ping. By bringing the eth1 and eth2 interfaces up manually, the PRU firmware is loaded (which you can see from the console log below).

    //EVM 1
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project am64xx-evm -
    
    Arago 2023.10 am64xx-evm -
    
    am64xx-evm login: root
    [   18.961331] audit: type=1006 audit(1653251933.947:2): pid=986 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [   18.961418] audit: type=1300 audit(1653251933.947:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffc22b5e48 a2=1 a3=ffffbb456020 items=0 ppid=1 pid=986 auid=0 uid=0 gid=0 euid=0 suid=0 fsui)
    [   18.961467] audit: type=1327 audit(1653251933.947:2): proctitle="(systemd)"
    root@am64xx-evm:~# uname -a
    Linux am64xx-evm 6.1.80-rt26-00021-g8dfe902f9207 #2 SMP PREEMPT_RT Tue Mar 26 09:55:56 CDT 2024 aarch64 aarch64 aarch64 GNU/Linux
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    lo              65536       92      0      0 0            92      0      0      0 LRU
    root@am64xx-evm:~# ip link set eth2 up
    [   35.657905] remoteproc remoteproc12: powering up 300b4000.pru
    [   35.663078] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 40936
    [   35.663120] remoteproc remoteproc12: unsupported resource 5
    [   35.663149] remoteproc remoteproc12: remote processor 300b4000.pru is now up
    [   35.663189] remoteproc remoteproc13: powering up 30084000.rtu
    [   35.667234] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30884
    [   35.667289] remoteproc remoteproc13: remote processor 30084000.rtu is now up
    [   35.667332] remoteproc remoteproc7: powering up 3008a000.txpru
    [   35.668539] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 36672
    root@am64xx-evm:~# [   35.668594] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [   35.668872] remoteproc remoteproc15: powering up 300b8000.pru
    [   35.670223] remoteproc remoteproc15: Booting fw image ti-pruss/am65x-sr2-pru1-prueth-fw.elf, size 41208
    [   35.670262] remoteproc remoteproc15: unsupported resource 5
    [   35.670291] remoteproc remoteproc15: remote processor 300b8000.pru is now up
    [   35.670333] remoteproc remoteproc16: powering up 30086000.rtu
    [   35.671468] remoteproc remoteproc16: Booting fw image ti-pruss/am65x-sr2-rtu1-prueth-fw.elf, size 30124
    [   35.671516] remoteproc remoteproc16: remote processor 30086000.rtu is now up
    [   35.671556] remoteproc remoteproc8: powering up 3008c000.txpru
    [   35.673391] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-prueth-fw.elf, size 35184
    [   35.673444] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [   35.674944] pps pps1: new PPS source ptp2
    
    root@am64xx-evm:~# [   39.781676] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [   39.781761] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    ^C
    root@am64xx-evm:~# 
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ip link set eth1 up
    root@am64xx-evm:~# vi hsr_setup_new.sh                                                                                                                                                                 
    root@am64xx-evm:~# vi hsr_setup_new.sh 
    root@am64xx-evm:~# sh hsr_setup_new.sh hsr_hw eth1 eth2 192.168.2.20                                                                                                                                
    ip=192.168.2.20
    if=hsr0
    mac=70:ff:76:1f:3d:c5
    slave-a=eth1
    slave-b=eth2
    device=platform/icssg1-eth
    [   64.311133] icssg-prueth icssg1-eth eth1: Link is Down
    [   64.353119] icssg-prueth icssg1-eth eth2: Link is Down
    [   64.357319] remoteproc remoteproc7: stopped remote processor 3008a000.txpru
    [   64.357342] remoteproc remoteproc13: stopped remote processor 30084000.rtu
    [   64.357351] remoteproc remoteproc12: stopped remote processor 300b4000.pru
    [   64.357359] remoteproc remoteproc8: stopped remote processor 3008c000.txpru
    [   64.357368] remoteproc remoteproc16: stopped remote processor 30086000.rtu
    [   64.357377] remoteproc remoteproc15: stopped remote processor 300b8000.pru
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    [   65.481397] icssg-prueth icssg1-eth: Enabling HSR offload mode
    [   65.521091] remoteproc remoteproc12: powering up 300b4000.pru
    [   65.524403] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf, size 40436
    [   65.524443] remoteproc remoteproc12: unsupported resource 5
    [   65.524472] remoteproc remoteproc12: remote processor 300b4000.pru is now up
    [   65.524515] remoteproc remoteproc13: powering up 30084000.rtu
    [   65.528888] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-rtu0-pruhsr-fw.elf, size 32904
    [   65.528941] remoteproc remoteproc13: remote processor 30084000.rtu is now up
    [   65.528986] remoteproc remoteproc7: powering up 3008a000.txpru
    [   65.532487] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-pruhsr-fw.elf, size 35772
    [   65.532546] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [   65.532832] remoteproc remoteproc15: powering up 300b8000.pru
    [   65.536852] remoteproc remoteproc15: Booting fw image ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf, size 40652
    [   65.536894] remoteproc remoteproc15: unsupported resource 5
    [   65.536924] remoteproc remoteproc15: remote processor 300b8000.pru is now up
    [   65.536964] remoteproc remoteproc16: powering up 30086000.rtu
    [   65.538182] remoteproc remoteproc16: Booting fw image ti-pruss/am65x-sr2-rtu1-pruhsr-fw.elf, size 32120
    [   65.538236] remoteproc remoteproc16: remote processor 30086000.rtu is now up
    [   65.538278] remoteproc remoteproc8: powering up 3008c000.txpru
    [   65.539419] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-pruhsr-fw.elf, size 34280
    [   65.539470] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [   65.540907] pps pps1: new PPS source ptp2
    [   68.646179] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [   68.646252] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [   69.669902] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    [   69.670918] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [   70.637313] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500        0      0      0 0            61      0      0      0 BMRU
    eth2             1500        0      0      0 0            29      0      0      0 BMRU
    hsr0             1494        0      0      0 0            31      0      0      0 BMRU
    lo              65536      252      0      0 0           252      0      0      0 LRU
    root@am64xx-evm:~# [  104.485777] icssg-prueth icssg1-eth eth2: Link is Down
    [  104.485856] icssg-prueth icssg1-eth eth1: Link is Down
    
    root@am64xx-evm:~# 
    root@am64xx-evm:~# [  108.582307] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  108.582741] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500       32      0      0 0            93      0      0      0 BMRU
    eth2             1500       32      0      0 0            35      0      0      0 BMRU
    hsr0             1494       20      0      0 0            59      0      0      0 BMRU
    lo              65536      332      0      0 0           332      0      0      0 LRU
    root@am64xx-evm:~# [  132.133698] icssg-prueth icssg1-eth eth2: Link is Down
    [  138.278241] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  145.445681] icssg-prueth icssg1-eth eth1: Link is Down
    [  152.614212] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500       58      0      0 0           141      0      0      0 BMRU
    eth2             1500       58      0      0 0            49      0      0      0 BMRU
    hsr0             1494       54      0      0 0           115      0      0      0 BMRU
    lo              65536      492      0      0 0           492      0      0      0 LRU
    root@am64xx-evm:~# ping 192.168.2.21                                                                                                                                                                 
    PING 192.168.2.21 (192.168.2.21): 56 data bytes
    64 bytes from 192.168.2.21: seq=0 ttl=64 time=0.572 ms
    64 bytes from 192.168.2.21: seq=1 ttl=64 time=0.443 ms
    64 bytes from 192.168.2.21: seq=2 ttl=64 time=0.475 ms
    64 bytes from 192.168.2.21: seq=3 ttl=64 time=0.455 ms
    64 bytes from 192.168.2.21: seq=4 ttl=64 time=0.493 ms
    64 bytes from 192.168.2.21: seq=5 ttl=64 time=0.450 ms
    64 bytes from 192.168.2.21: seq=6 ttl=64 time=0.461 ms
    [  177.189908] icssg-prueth icssg1-eth eth2: Link is Down
    64 bytes from 192.168.2.21: seq=7 ttl=64 time=0.492 ms
    64 bytes from 192.168.2.21: seq=8 ttl=64 time=0.516 ms
    64 bytes from 192.168.2.21: seq=9 ttl=64 time=0.441 ms
    64 bytes from 192.168.2.21: seq=10 ttl=64 time=0.545 ms
    64 bytes from 192.168.2.21: seq=11 ttl=64 time=0.439 ms
    64 bytes from 192.168.2.21: seq=12 ttl=64 time=0.486 ms
    64 bytes from 192.168.2.21: seq=13 ttl=64 time=0.435 ms
    64 bytes from 192.168.2.21: seq=14 ttl=64 time=0.502 ms
    [  185.381878] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.21: seq=15 ttl=64 time=0.480 ms
    64 bytes from 192.168.2.21: seq=16 ttl=64 time=0.508 ms
    64 bytes from 192.168.2.21: seq=17 ttl=64 time=0.446 ms
    64 bytes from 192.168.2.21: seq=18 ttl=64 time=0.530 ms
    64 bytes from 192.168.2.21: seq=19 ttl=64 time=0.473 ms
    64 bytes from 192.168.2.21: seq=20 ttl=64 time=0.493 ms
    64 bytes from 192.168.2.21: seq=21 ttl=64 time=0.441 ms
    [  192.549878] icssg-prueth icssg1-eth eth1: Link is Down
    64 bytes from 192.168.2.21: seq=22 ttl=64 time=0.534 ms
    64 bytes from 192.168.2.21: seq=23 ttl=64 time=0.499 ms
    64 bytes from 192.168.2.21: seq=24 ttl=64 time=0.478 ms
    64 bytes from 192.168.2.21: seq=25 ttl=64 time=0.418 ms
    64 bytes from 192.168.2.21: seq=26 ttl=64 time=0.483 ms
    64 bytes from 192.168.2.21: seq=27 ttl=64 time=0.438 ms
    64 bytes from 192.168.2.21: seq=28 ttl=64 time=0.459 ms
    64 bytes from 192.168.2.21: seq=29 ttl=64 time=0.439 ms
    64 bytes from 192.168.2.21: seq=30 ttl=64 time=0.485 ms
    64 bytes from 192.168.2.21: seq=31 ttl=64 time=0.485 ms
    [  202.789878] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.21: seq=32 ttl=64 time=0.488 ms
    64 bytes from 192.168.2.21: seq=33 ttl=64 time=0.522 ms
    64 bytes from 192.168.2.21: seq=34 ttl=64 time=0.479 ms
    64 bytes from 192.168.2.21: seq=35 ttl=64 time=0.483 ms
    ^C
    --- 192.168.2.21 ping statistics ---
    36 packets transmitted, 36 packets received, 0% packet loss
    round-trip min/avg/max = 0.418/0.479/0.572 ms
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500       85      0      0 0           188      0      0      0 BMRU
    eth2             1500       86      0      0 0            66      0      0      0 BMRU
    hsr0             1494       92      0      0 0           175      0      0      0 BMRU
    lo              65536      572      0      0 0           572      0      0      0 LRU
    root@am64xx-evm:~# 
    
    

    //EVM 2
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project am64xx-evm -
    
    Arago 2023.10 am64xx-evm -
    
    am64xx-evm login: ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPL-3.0 packages:
            adwaita-icon-theme-symbolic
            autoconf
            bash-dev
            bash
            bc
            binutils
            cifs-utils
            coreutils-stdbuf
            coreutils
            cpio
            cpp-symlinks
            cpp
            dosfstools
            elfutils
            g++-symlinks
            g++
            gawk
            gcc-symlinks
            gcc
            gdb
            gdbserver
            gettext
            glmark2
            gnu-config
            grub-common
            grub-editenv
            grub-efi
            gzip
            hidapi
            less
            libasm1
            libatomic-dev
            libatomic1
            libbfd
            libdebuginfod1
            libdw1
            libelf1
            libgcc-s-dev
            libgcc1
            libgdbm-compat4
            libgdbm-dev
            libgdbm6
            libgettextlib
            libgettextsrc
            libgmp10
            libidn2-0
            libmpc3
            libmpfr6
            libopcodes
            libqt5charts-examples
            libqt5charts-plugins
            libqt5charts-qmlplugins
            libqt5charts5
            libqt5sensors-plugins
            libqt5sensors-qmlplugins
            libqt5sensors5
            libqt5serialport-examples
            libqt5serialport-plugins
            libqt5serialport-qmlplugins
            libqt5serialport5
            libqt5svg-examples
            libqt5svg-plugins
            libqt5svg-qmlplugins
            libqt5svg5
            libqt5virtualkeyboard-plugins
            libqt5virtualkeyboard-qmlplugins
            libqt5virtualkeyboard5
            libqt5webchannel-plugins
            libqt5webchannel-qmlplugins
            libqt5webchannel5
            libreadline-dev
            libreadline8
            libstdc++-dev
            libstdc++6
            libunistring2
            m4-dev
            m4
            make
            nettle
            parted
            piglit
            qt3d-plugins
            qt3d-qmlplugins
            qt3d
            qtbase-examples
            qtbase-plugins
            qtbase-qmlplugins
            qtbase
            qtconnectivity-plugins
            qtconnectivity-qmlplugins
            qtconnectivity
            qtdeclarative-plugins
            qtdeclarative-qmlplugins
            qtdeclarative-tools
            qtdeclarative
            qtgraphicaleffects-qmlplugins
            qtlocation-examples
            qtlocation-plugins
            qtlocation-qmlplugins
            qtlocation
            qtmultimedia-examples
            qtmultimedia-plugins
            qtmultimedia-qmlplugins
            qtmultimedia
            qtquics-qmlplugins.control
            qtquics2-plugins.control
            qtquics2-qmlplugins.control
            qtquics2.control
            qtscript-examples
            qtscript-plugins
            qtscript-qmlplugins
            qtscript
            qtwayland-examples
            qtwayland-plugins
            qtwayland-qmlplugins
            qtwayland
            tar
            which
    
    If you do not wish to distribute GPL-3.0 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    
    am64xx-evm login: root
    [  123.825849] audit: type=1006 audit(1653093286.647:2): pid=988 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
    [  123.825965] audit: type=1300 audit(1653093286.647:2): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffe3ad0dd8 a2=1 a3=ffffa3a9e020 items=0 ppid=1 pid=988 auid=0 uid=0 gid=0 euid=0 suid=0 fsui)
    [  123.826020] audit: type=1327 audit(1653093286.647:2): proctitle="(systemd)"
    root@am64xx-evm:~# uname -a
    Linux am64xx-evm 6.1.80-rt26-00021-g8dfe902f9207 #2 SMP PREEMPT_RT Tue Mar 26 09:55:56 CDT 2024 aarch64 aarch64 aarch64 GNU/Linux
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    lo              65536      412      0      0 0           412      0      0      0 LRU
    root@am64xx-evm:~# vi hsr_setup_new.sh 
    root@am64xx-evm:~# vi hsr_setup_new.sh 
    root@am64xx-evm:~# ip link set eth1 up
    [  373.364538] remoteproc remoteproc10: powering up 300b4000.pru
    [  373.368498] remoteproc remoteproc10: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 40936
    [  373.368534] remoteproc remoteproc10: unsupported resource 5
    [  373.368563] remoteproc remoteproc10: remote processor 300b4000.pru is now up
    root@am64xx-evm:~# [  373.368603] remoteproc remoteproc11: powering up 30084000.rtu
    [  373.370978] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30884
    [  373.371029] remoteproc remoteproc11: remote processor 30084000.rtu is now up
    [  373.371070] remoteproc remoteproc7: powering up 3008a000.txpru
    [  373.372295] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 36672
    [  373.372351] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [  373.372630] remoteproc remoteproc12: powering up 300b8000.pru
    [  373.374040] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-pru1-prueth-fw.elf, size 41208
    [  373.374078] remoteproc remoteproc12: unsupported resource 5
    [  373.374107] remoteproc remoteproc12: remote processor 300b8000.pru is now up
    [  373.374149] remoteproc remoteproc13: powering up 30086000.rtu
    [  373.375337] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-rtu1-prueth-fw.elf, size 30124
    [  373.375390] remoteproc remoteproc13: remote processor 30086000.rtu is now up
    [  373.375432] remoteproc remoteproc8: powering up 3008c000.txpru
    [  373.376657] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-prueth-fw.elf, size 35184
    [  373.376711] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [  373.378211] pps pps1: new PPS source ptp2
    [  377.509415] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [  377.509493] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    
    root@am64xx-evm:~# ip link set eth2 up
    root@am64xx-evm:~# [  391.205423] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    [  391.205747] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  438.949200] icssg-prueth icssg1-eth eth1: Link is Down
    [  439.333217] icssg-prueth icssg1-eth eth2: Link is Down
    [  442.021393] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [  442.405429] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  462.885398] icssg-prueth icssg1-eth eth2: Link is Down
    [  465.957954] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  473.765396] icssg-prueth icssg1-eth eth1: Link is Down
    [  476.837991] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [  491.173386] icssg-prueth icssg1-eth eth1: Link is Down
    [  491.557414] icssg-prueth icssg1-eth eth2: Link is Down
    [  495.269419] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [  496.677407] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500        1      0      0 0            26      0      0      0 BMRU
    eth2             1500       24      0      6 0            24      0      0      0 BMRU
    lo              65536     1219      0      0 0          1219      0      0      0 LRU
    root@am64xx-evm:~# sh hsr_setup_new.sh hsr_hw eth1 eth2 192.168.2.21                                                                                                                               
    ip=192.168.2.21
    if=hsr0
    mac=70:ff:76:1f:3c:45
    slave-a=eth1
    slave-b=eth2
    device=platform/icssg1-eth
    [  530.216856] icssg-prueth icssg1-eth eth1: Link is Down
    [  530.246850] icssg-prueth icssg1-eth eth2: Link is Down
    [  530.253260] remoteproc remoteproc7: stopped remote processor 3008a000.txpru
    [  530.253285] remoteproc remoteproc11: stopped remote processor 30084000.rtu
    [  530.253294] remoteproc remoteproc10: stopped remote processor 300b4000.pru
    [  530.253304] remoteproc remoteproc8: stopped remote processor 3008c000.txpru
    [  530.253314] remoteproc remoteproc13: stopped remote processor 30086000.rtu
    [  530.253323] remoteproc remoteproc12: stopped remote processor 300b8000.pru
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: on
    hsr-dup-offload: on
    [  531.383576] icssg-prueth icssg1-eth: Enabling HSR offload mode
    [  531.421757] remoteproc remoteproc10: powering up 300b4000.pru
    [  531.425184] remoteproc remoteproc10: Booting fw image ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf, size 40436
    [  531.425223] remoteproc remoteproc10: unsupported resource 5
    [  531.425253] remoteproc remoteproc10: remote processor 300b4000.pru is now up
    [  531.425297] remoteproc remoteproc11: powering up 30084000.rtu
    [  531.429726] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-rtu0-pruhsr-fw.elf, size 32904
    [  531.430960] remoteproc remoteproc11: remote processor 30084000.rtu is now up
    [  531.431020] remoteproc remoteproc7: powering up 3008a000.txpru
    [  531.433865] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-pruhsr-fw.elf, size 35772
    [  531.433922] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [  531.434206] remoteproc remoteproc12: powering up 300b8000.pru
    [  531.437593] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf, size 40652
    [  531.437631] remoteproc remoteproc12: unsupported resource 5
    [  531.437661] remoteproc remoteproc12: remote processor 300b8000.pru is now up
    [  531.437707] remoteproc remoteproc13: powering up 30086000.rtu
    [  531.439056] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-rtu1-pruhsr-fw.elf, size 32120
    [  531.439113] remoteproc remoteproc13: remote processor 30086000.rtu is now up
    [  531.439153] remoteproc remoteproc8: powering up 3008c000.txpru
    [  531.440353] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-pruhsr-fw.elf, size 34280
    [  531.440411] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [  531.441889] pps pps1: new PPS source ptp2
    [  534.565930] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [  534.566001] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [  535.589628] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    [  535.590027] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  536.553661] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
    root@am64xx-evm:~# 
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500        1      0      0 0            68      0      0      0 BMRU
    eth2             1500       24      0      6 0            37      0      0      0 BMRU
    hsr0             1494        0      0      0 0            29      0      0      0 BMRU
    lo              65536     1259      0      0 0          1259      0      0      0 LRU
    root@am64xx-evm:~# 
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ping 192.168.2.20                                                                                                                                                                 
    PING 192.168.2.20 (192.168.2.20): 56 data bytes
    64 bytes from 192.168.2.20: seq=0 ttl=64 time=0.748 ms
    64 bytes from 192.168.2.20: seq=1 ttl=64 time=0.520 ms
    64 bytes from 192.168.2.20: seq=2 ttl=64 time=0.502 ms
    64 bytes from 192.168.2.20: seq=3 ttl=64 time=0.459 ms
    64 bytes from 192.168.2.20: seq=4 ttl=64 time=0.451 ms
    64 bytes from 192.168.2.20: seq=5 ttl=64 time=0.455 ms
    [  559.141409] icssg-prueth icssg1-eth eth2: Link is Down
    64 bytes from 192.168.2.20: seq=6 ttl=64 time=0.473 ms
    64 bytes from 192.168.2.20: seq=7 ttl=64 time=0.534 ms
    64 bytes from 192.168.2.20: seq=8 ttl=64 time=0.450 ms
    64 bytes from 192.168.2.20: seq=9 ttl=64 time=0.451 ms
    64 bytes from 192.168.2.20: seq=10 ttl=64 time=0.436 ms
    [  564.261621] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.20: seq=11 ttl=64 time=0.482 ms
    64 bytes from 192.168.2.20: seq=12 ttl=64 time=0.466 ms
    64 bytes from 192.168.2.20: seq=13 ttl=64 time=0.463 ms
    64 bytes from 192.168.2.20: seq=14 ttl=64 time=0.547 ms
    64 bytes from 192.168.2.20: seq=15 ttl=64 time=0.506 ms
    64 bytes from 192.168.2.20: seq=16 ttl=64 time=0.456 ms
    64 bytes from 192.168.2.20: seq=17 ttl=64 time=0.453 ms
    64 bytes from 192.168.2.20: seq=18 ttl=64 time=0.475 ms
    64 bytes from 192.168.2.20: seq=19 ttl=64 time=0.471 ms
    [  572.453429] icssg-prueth icssg1-eth eth1: Link is Down
    64 bytes from 192.168.2.20: seq=20 ttl=64 time=0.548 ms
    64 bytes from 192.168.2.20: seq=21 ttl=64 time=0.496 ms
    64 bytes from 192.168.2.20: seq=22 ttl=64 time=0.469 ms
    64 bytes from 192.168.2.20: seq=23 ttl=64 time=0.463 ms
    64 bytes from 192.168.2.20: seq=24 ttl=64 time=0.472 ms
    64 bytes from 192.168.2.20: seq=25 ttl=64 time=0.412 ms
    64 bytes from 192.168.2.20: seq=26 ttl=64 time=0.527 ms
    [  579.621615] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    64 bytes from 192.168.2.20: seq=27 ttl=64 time=0.450 ms
    64 bytes from 192.168.2.20: seq=28 ttl=64 time=0.458 ms
    64 bytes from 192.168.2.20: seq=29 ttl=64 time=0.490 ms
    64 bytes from 192.168.2.20: seq=30 ttl=64 time=0.473 ms
    ^C
    --- 192.168.2.20 ping statistics ---
    31 packets transmitted, 31 packets received, 0% packet loss
    round-trip min/avg/max = 0.412/0.485/0.748 ms
    root@am64xx-evm:~# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth1             1500       27      0      0 0           126      0      0      0 BMRU
    eth2             1500       50      0      6 0            53      0      0      0 BMRU
    hsr0             1494       34      0      0 0            92      0      0      0 BMRU
    lo              65536     1419      0      0 0          1419      0      0      0 LRU
    root@am64xx-evm:~# [  604.197422] icssg-prueth icssg1-eth eth2: Link is Down
    [  611.365601] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  619.557415] icssg-prueth icssg1-eth eth1: Link is Down
    [  629.797968] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# 
    root@am64xx-evm:~# 
    
    

    I think bringing the eth1 and eth2 up defeats the purpose of disabling the network services as I recall that the PRU firmware should not be loaded before HSR firmware as your requirement. It seems like with SDK 9.1, disabling the network services before HSR offload did not lead to ping packet loss (according to responses in https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1322236/processor-sdk-am64x-hsr-pru-firmware-load-issue/5110447#5110447). I am checking with the team regarding why this functionality appears to be broken now.

    -Daolin

  • To clear up any further misunderstandings or communication on your requirements, could you share specifically what your requirements are in terms of what HSR offloading functionality you need? 

    Is the requirement of disabling the network with the systemctl commands to ensure PRU firmware does not get loaded before HSR firmware gets loaded?

    If so, when you say PRU firmware not getting loaded, is the intention to make sure both eth1 and eth2 (PRU_ICSSG ethernet) are not immediately configured as standard ethernet interfaces upon boot-up before HSR firmware is loaded? Is this with eth1 and eth2 connected to the link partner EVM upon boot-up?

    My concern here is that the commands you run to disable network may have disabled services that HSR setup requires to configure HSR offloading correctly.

    -Daolin 

  • Copied Tianyi's response from https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1322236/processor-sdk-am64x-hsr-pru-firmware-load-issue#pifragment-323307=1 here

    Hello Daolin,

    Thank you for your fast response !

    The hardware setup is two EVMs with two cables that are already connected (eth1<->eth1)and (eth2<->eth2) before launching the script. (no disconnection of cables).

    I launch the script to load hsr firmware on pru . And startto ping. The result above is done with the latest patch you provided.

    on EVM1 :

    am64xx-evm login: root
    
    root@am64xx-evm:~# ./hsr_setup.sh hsr_hw eth1 eth2 192.168.200.1
    
    hsr_hw eth1 eth2 192.168.200.1
    
    ip=192.168.200.1
    
    if=hsr0
    
    mac=70:ff:76:1e:2e:2d
    
    slave-a=eth1
    
    slave-b=eth2
    
    device=platform/
    
    hsr-tag-ins-offload: off
    
    hsr-tag-rm-offload: off
    
    hsr-fwd-offload: off
    
    hsr-dup-offload: off
    
    hsr-tag-ins-offload: off
    
    hsr-tag-rm-offload: off
    
    hsr-fwd-offload: on
    
    hsr-dup-offload: off
    
    hsr-tag-ins-offload: off
    
    hsr-tag-rm-offload: off
    
    hsr-fwd-offload: off
    
    hsr-dup-offload: off
    
    hsr-tag-ins-offload: off
    
    hsr-tag-rm-offload: off
    
    hsr-fwd-offload: on
    
    hsr-dup-offload: off
    
    [  143.103318] remoteproc remoteproc7: unsupported resource 5
    
    [  143.114495] remoteproc remoteproc11: unsupported resource 5
    
    [  148.281029] hsr0: Slave B (eth2) is not up; please bring it up to get a fully working HSR network
    
    root@am64xx-evm:~# dmesg | grep -i pru
    
    [    5.824148] remoteproc remoteproc2: 3000a000.txpru is available
    
    [    5.824752] remoteproc remoteproc3: 3000c000.txpru is available
    
    [    5.825312] remoteproc remoteproc4: 3008a000.txpru is available
    
    [    5.825766] remoteproc remoteproc5: 3008c000.txpru is available
    
    [    6.436653] remoteproc remoteproc6: 30034000.pru is available
    
    [    6.437577] remoteproc remoteproc7: 300b4000.pru is available
    
    [    6.444695] remoteproc remoteproc10: 30038000.pru is available
    
    [    6.445597] remoteproc remoteproc11: 300b8000.pru is available
    
    [    6.553080] icssg-prueth icssg1-eth: TI PRU ethernet driver initialized: dual EMAC mode
    
    [  143.025979] icssg-prueth icssg1-eth: Enabling HSR offload mode
    
    [  143.101108] remoteproc remoteproc7: powering up 300b4000.pru
    
    [  143.103279] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf, size 404                                                                                                  6
    
    [  143.103349] remoteproc remoteproc7: remote processor 300b4000.pru is now up
    
    [  143.110106] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-rtu0-pruhsr-fw.elf, size 329                                                                                                  4
    
    [  143.110212] remoteproc remoteproc4: powering up 3008a000.txpru
    
    [  143.112547] remoteproc remoteproc4: Booting fw image ti-pruss/am65x-sr2-txpru0-pruhsr-fw.elf, size 3                                                                                                  2
    
    [  143.112612] remoteproc remoteproc4: remote processor 3008a000.txpru is now up
    
    [  143.112911] remoteproc remoteproc11: powering up 300b8000.pru
    
    [  143.114456] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf, size 40                                                                                                  2
    
    [  143.114526] remoteproc remoteproc11: remote processor 300b8000.pru is now up
    
    [  143.117074] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-rtu1-pruhsr-fw.elf, size 32                                                                                                  0
    
    [  143.117181] remoteproc remoteproc5: powering up 3008c000.txpru
    
    [  143.120539] remoteproc remoteproc5: Booting fw image ti-pruss/am65x-sr2-txpru1-pruhsr-fw.elf, size 3                                                                                                  0
    
    [  143.120599] remoteproc remoteproc5: remote processor 3008c000.txpru is now up
    
    [  146.208048] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    [  148.288155] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    
    [  151.327851] icssg-prueth icssg1-eth eth1: Link is Down
    
    [  152.387837] icssg-prueth icssg1-eth eth2: Link is Down
    
    [  154.400047] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    [  155.456035] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# ping 192.168.200.2
    
    PING 192.168.200.2 (192.168.200.2): 56 data bytes
    
    64 bytes from 192.168.200.2: seq=6 ttl=64 time=0.516 ms
    
    [  181.222018] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  181.222071] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [  182.061072] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  182.061117] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [  182.246071] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  182.246125] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [  183.061397] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  183.061476] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    64 bytes from 192.168.200.2: seq=14 ttl=64 time=0.472 ms
    
    [  191.063572] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  191.063649] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [  192.063903] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  192.063948] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [  193.064222] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  193.064304] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [  194.064582] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  194.064627] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [  195.064870] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [  195.064956] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    ^C
    
    --- 192.168.200.2 ping statistics ---
    
    22 packets transmitted, 2 packets received, 90% packet loss
    
    round-trip min/avg/max = 0.472/0.494/0.516 ms

    On EVM2 :

    am64xx-evm login: root
    
    root@am64xx-evm:~# ./hsr_setup.sh hsr_hw eth1 eth2 192.168.200.2
    
    hsr_hw eth1 eth2 192.168.200.2
    
    ip=192.168.200.2
    
    if=hsr0
    
    mac=70:ff:76:1e:2e:00
    
    slave-a=eth1
    
    slave-b=eth2
    
    device=platform/
    
    hsr-tag-ins-offload: off
    
    hsr-tag-rm-offload: off
    
    hsr-fwd-offload: off
    
    hsr-dup-offload: off
    
    hsr-tag-ins-offload: off
    
    hsr-tag-rm-offload: off
    
    hsr-fwd-offload: on
    
    hsr-dup-offload: off
    
    hsr-tag-ins-offload: off
    
    hsr-tag-rm-offload: off
    
    hsr-fwd-offload: off
    
    hsr-dup-offload: off
    
    hsr-tag-ins-offload: off
    
    hsr-tag-rm-offload: off
    
    hsr-fwd-offload: on
    
    hsr-dup-offload: off
    
    [   28.817122] remoteproc remoteproc10: unsupported resource 5
    
    [   28.825353] remoteproc remoteproc12: unsupported resource 5
    
    [   34.003371] hsr0: Slave B (eth2) is not up; please bring it up to get a fully working HSR network
    
    root@am64xx-evm:~# dmesg | grep -i pru
    
    [    5.701931] remoteproc remoteproc2: 3000a000.txpru is available
    
    [    5.707070] remoteproc remoteproc3: 3000c000.txpru is available
    
    [    5.707721] remoteproc remoteproc4: 3008a000.txpru is available
    
    [    5.708250] remoteproc remoteproc5: 3008c000.txpru is available
    
    [    6.379106] remoteproc remoteproc6: 30038000.pru is available
    
    [    6.381881] remoteproc remoteproc8: 30034000.pru is available
    
    [    6.401678] remoteproc remoteproc10: 300b4000.pru is available
    
    [    6.408313] remoteproc remoteproc12: 300b8000.pru is available
    
    [    6.529890] icssg-prueth icssg1-eth: TI PRU ethernet driver initialized: dual EMAC mode
    
    [   28.744914] icssg-prueth icssg1-eth: Enabling HSR offload mode
    
    [   28.812741] remoteproc remoteproc10: powering up 300b4000.pru
    
    [   28.817085] remoteproc remoteproc10: Booting fw image ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf, siz6
    
    [   28.817152] remoteproc remoteproc10: remote processor 300b4000.pru is now up
    
    [   28.818340] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-rtu0-pruhsr-fw.elf, siz4
    
    [   28.818428] remoteproc remoteproc4: powering up 3008a000.txpru
    
    [   28.823234] remoteproc remoteproc4: Booting fw image ti-pruss/am65x-sr2-txpru0-pruhsr-fw.elf, si2
    
    [   28.823294] remoteproc remoteproc4: remote processor 3008a000.txpru is now up
    
    [   28.823582] remoteproc remoteproc12: powering up 300b8000.pru
    
    [   28.825314] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf, siz2
    
    [   28.825384] remoteproc remoteproc12: remote processor 300b8000.pru is now up
    
    [   28.826710] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-rtu1-pruhsr-fw.elf, siz0
    
    [   28.826807] remoteproc remoteproc5: powering up 3008c000.txpru
    
    [   28.829417] remoteproc remoteproc5: Booting fw image ti-pruss/am65x-sr2-txpru1-pruhsr-fw.elf, si0
    
    [   28.829475] remoteproc remoteproc5: remote processor 3008c000.txpru is now up
    
    [   32.931626] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    
    [   34.016233] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    
    root@am64xx-evm:~# [   53.452627] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [   53.452685] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [   67.544792] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [   67.544830] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node
    
    [   68.456668] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node
    
    [   68.456705] icssg-prueth icssg1-eth eth2: hsr_addr_subst_dest: Unknown node

    We also did the same test with the release 09.02.00.08 (06 Feb 2024, without the latest patch you provided). And there is no packet lost !

    Moreover, has the most recent test you shared been conducted using the latest patch that you provided us with?

  • Hi Tianyi,

    >>>Moreover, has the most recent test you shared been conducted using the latest patch that you provided us with?

    The most recent test results were from the https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-rt-linux-6.1.y-cicd, same as the one you reported using in https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1341782/processor-sdk-am64x-hsr-offload-pru-firmware-functionalities-issue.

    I noticed that "device=platform/" shows up on the log for both EVMs which indicates that the device name was not the same as your previously hardcoded name?

    Are those packet loss with ping occurring when you disconnect the cable for either eth1 or eth2 or with no disconnection and there is packet loss?

    The "[  181.222018] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node" seems concerning, I do not see this when running ping on my tests. Are you still using https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-rt-linux-6.1.y-cicd? It may also be worth updating the HSR firmwares with the new ones at https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/commit/?h=ti-linux-firmware&id=3bf8a3177810aec64a41d3a20af507ab0becfc7c?

    I still see missing kernel messages from your launch of the script to load hsr firmware on pru. You should see the following messages as well without having to do "dmesg | grep -i pru"

    ...
    [  525.236370] icssg-prueth icssg1-eth: Enabling HSR offload mode
    [  525.277893] remoteproc remoteproc11: powering up 300b4000.pru
    [  525.283481] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf, size 40436
    [  525.283520] remoteproc remoteproc11: unsupported resource 5
    [  525.283550] remoteproc remoteproc11: remote processor 300b4000.pru is now up
    [  525.283589] remoteproc remoteproc12: powering up 30084000.rtu
    [  525.285289] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-rtu0-pruhsr-fw.elf, size 32904
    [  525.285343] remoteproc remoteproc12: remote processor 30084000.rtu is now up
    [  525.285384] remoteproc remoteproc7: powering up 3008a000.txpru
    [  525.287225] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-pruhsr-fw.elf, size 35772
    [  525.287283] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [  525.287567] remoteproc remoteproc13: powering up 300b8000.pru
    [  525.294279] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf, size 40652
    [  525.294319] remoteproc remoteproc13: unsupported resource 5
    [  525.294348] remoteproc remoteproc13: remote processor 300b8000.pru is now up
    [  525.294391] remoteproc remoteproc14: powering up 30086000.rtu
    [  525.297602] remoteproc remoteproc14: Booting fw image ti-pruss/am65x-sr2-rtu1-pruhsr-fw.elf, size 32120
    [  525.297655] remoteproc remoteproc14: remote processor 30086000.rtu is now up
    [  525.297697] remoteproc remoteproc8: powering up 3008c000.txpru
    [  525.298976] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-pruhsr-fw.elf, size 34280
    [  525.299035] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [  525.300594] pps pps1: new PPS source ptp2
    [  529.445720] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  529.446156] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    [  529.446708] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    [  529.446770] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    [  530.408689] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready

    Another test to try is HSR without offloading and see if disabling the network services still allows ping to work with HSR no HW offload set up.

    -Daolin

  • Hi Tianyi,

    April 4th Update: Since SDK 9.2 was fully released March 29th, go ahead and try your current tests on SDK 9.2 rather than the https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-rt-linux-6.1.y-cicd we've been using. If this issue still persists could you try the below?

    To reiterate things to try:

    1. Testing HSR without offloading and see if disabling the network services still allows ping to work with HSR no HW offload set up

    2. Try manually running each command in the hsr setup script and share what the corresponding messages that show up are. 

    3. Could you additionally share the full log output from running the script without the hardcode change AND share the resulting script with the hardcoded change?

    We are trying to gather more information as we cannot reproduce the ping loss issue you are seeing.

    It seems like you are currently running your tests with a 2 EVM setup, I'm assuming this is for test purposes and when you go into production, there might be cases of more than 2. Is this correct? Based on the biweekly call, Milan shared that the final testing will be done with 3 boards + profishark? 

    -Daolin

  • Hi Daolin,

    Thank you for sharing different steps !

    Pinging between two boards are working now for us when (not detached cable during the ping and loading hsr fw once + disable network)

    Right now, we are testing the latest hsr offload solution with different way of loading the hsr firmware ! If we have any issues we will come back to you !

    Tianyi

  • Hi Tianyi,

    I appreciate the update!

    To just clarify, you are only observing no ping packet loss between 2 boards when cable not detached during ping but are you still observing packet loss when you do detach the cable during ping?

    -Daolin