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.

Linux/AM3359: HSR issue

Part Number: AM3359

Tool/software: Linux

Hardware:
HSR-network via:
1 Siemens Ruggedcom RS950G.
PC with windows 7 Pro SP1 license (pc), as the san-device connected via RJ45 cable into port "Local" of Siemens Ruggedcom RS950G.
1 AM3359 ICE 2.1 EVM on SDK 5.00.00.15 (sdk5) as HSR-device, communicated only by 1 patch cord RJ45 cable into port A or B.
The sceme of communication: PC <-> Siemens <-> AM3359.

Wireshark shows that sdk5 has stoped send the frames on arp-request (see atach "wireshark_ping_stoped.png").

But sdk3 (sd-card with image of sdk3, where no changes like the sdk5 ) always works fine.

So, according to wireshark:
- when AM3359 power is on, the ping-request from pc to sdk5 and ping-reply from sdk5 to pc is fine.
It works about ~1 minute than the ping is lost, and renews the same for a while every 10-30 minutes.

About the program code:

Frame analysis I did in module hsr_prp_forward.c in the procedure "void hsr_prp_forward_skb(struct sk_buff *skb, struct hsr_prp_port *port)".
Via printk I have print into the command line the data of skb. And this showed that the arp-request reaches the AM3359 finely (see atach "sdk5_reserved_arp.png", "sdk5_reserved_arp.png").
P.S. About "sdk5_reserved_arp.png": this screenshot is obtained when the cable disconnects from the AM3359 and connected in the pc with wireshark.

I understand from the fact that:
1. Sd-card with image of sdk3 works fine;
2. The frames are reaches the AM3359 finely;
- the bug is in sending the arp answer by sdk5.

And, I stood in a dead end. So I ask to understand it or at least to prompt what modules should be studied for the solution of this bug.



  • Thank you for your post.

    VLeshka VV said:
    But sdk3 (sd-card with image of sdk3, where no changes like the sdk5 ) always works fine.

    What changes are you referring to for SDK5?

    Could you please attach an entire boot log and associated commands from the AM335x as a file?

    Thank you.

  • About changes in SDK5: there are only one change - comment same code - according to www.spinics.net/.../msg444860.html
    Note that removing this fix does not solve the problem.
    All other changes - for display information by printk like your see at screenshot of am3359 console.

    About boot log: there are no any /var/log/boot file. So I get the copy of command line via putty (atach bootLog.txt).

    About associated commands from the AM335x: what utility would you recommend to perform your task?

    Note: there are no other lan-devices in my lan except listed above.

     0
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    ** Unable to read file boot.scr **
    ** Unable to read file uEnv.txt **
    switch to partitions #0, OK
    mmc0 is current device
    Scanning mmc 0:1...
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3809792 bytes read in 370 ms (9.8 MiB/s)
    37192 bytes read in 18 ms (2 MiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8df02000, end 8df0e147 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.14.40-rt29-gd5443cbd3b (root@VLVIRTUAL) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #460 PREEMPT RT Wed Sep 26 16:43:47 MSK 2018
    [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt: Machine model: TI AM3359 ICE-V2 - dual CPSW
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0x8a800000
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (sgx neon)
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64960
    [    0.000000] Kernel command line: console=ttyO3,115200n8 root=PARTUUID=541bb3d9-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Memory: 197212K/262144K available (8192K kernel code, 333K rwdata, 2404K rodata, 1024K init, 320K bss, 15780K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xd0800000 - 0xff800000   ( 752 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0900000   (9184 kB)
    [    0.000000]       .init : 0xc0c00000 - 0xc0d00000   (1024 kB)
    [    0.000000]       .data : 0xc0d00000 - 0xc0d535c0   ( 334 kB)
    [    0.000000]        .bss : 0xc0d535c0 - 0xc0da3874   ( 321 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  RCU priority boosting: priority 1 delay 500 ms.
    [    0.000000]  No expedited grace period (rcu_normal_after_boot).
    [    0.000000]  Tasks RCU enabled.
    [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000017] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000034] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000042] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000270] timer_probe: no matching timers found
    [    0.000521] Console: colour dummy device 80x30
    [    0.000704] WARNING: Your 'console=ttyO3' has been replaced by 'ttyS3'
    [    0.000708] This ensures that you still see kernel messages. Please
    [    0.000710] update your kernel commandline.
    [    0.000743] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
    [    0.058772] pid_max: default: 32768 minimum: 301
    [    0.059041] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.059052] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.060137] CPU: Testing write buffer coherency: ok
    [    0.061050] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.061377] Hierarchical SRCU implementation.
    [    0.062230] EFI services will not be available.
    [    0.064077] devtmpfs: initialized
    [    0.076221] random: get_random_u32 called from bucket_table_alloc+0x124/0x27c with crng_init=0
    [    0.076817] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.077217] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.077252] futex hash table entries: 256 (order: 1, 8192 bytes)
    [    0.081746] pinctrl core: initialized pinctrl subsystem
    [    0.082697] DMI not present or invalid.
    [    0.083313] NET: Registered protocol family 16
    [    0.086968] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.105369] omap_hwmod: debugss: _wait_target_disable failed
    [    0.166445] OMAP GPIO hardware version 0.1
    [    0.170348] GPIO line 100 (PR1_MII_CTRL) hogged as output/high
    [    0.170382] GPIO line 106 (MUX_MII_CTL1) hogged as output/high
    [    0.180525] No ATAGs?
    [    0.180548] hw-breakpoint: debug architecture 0x4 unsupported.
    [    0.201141] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.205711] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins_default, deferring probe
    [    0.205887] media: Linux media interface: v0.10
    [    0.205955] Linux video capture interface: v2.00
    [    0.206112] pps_core: LinuxPPS API ver. 1 registered
    [    0.206125] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.206156] PTP clock support registered
    [    0.206208] EDAC MC: Ver: 3.0.0
    [    0.206866] dmi: Firmware registration failed.
    [    0.207363] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.207825] Advanced Linux Sound Architecture Driver Initialized.
    [    0.209691] clocksource: Switched to clocksource timer1
    [    0.222545] NET: Registered protocol family 2
    [    0.223632] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.223694] TCP bind hash table entries: 2048 (order: 3, 49152 bytes)
    [    0.223829] TCP: Hash tables configured (established 2048 bind 2048)
    [    0.223973] UDP hash table entries: 256 (order: 2, 16384 bytes)
    [    0.224028] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
    [    0.224295] NET: Registered protocol family 1
    [    0.224934] RPC: Registered named UNIX socket transport module.
    [    0.224953] RPC: Registered udp transport module.
    [    0.224962] RPC: Registered tcp transport module.
    [    0.224972] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.226090] hw perfevents: no interrupt-affinity property for /pmu, guessing.
    [    0.226246] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [    0.228198] workingset: timestamp_bits=14 max_order=16 bucket_order=2
    [    0.235231] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.236422] NFS: Registering the id_resolver key type
    [    0.236481] Key type id_resolver registered
    [    0.236493] Key type id_legacy registered
    [    0.236562] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.239418] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [    0.239445] io scheduler noop registered
    [    0.239458] io scheduler deadline registered
    [    0.239641] io scheduler cfq registered (default)
    [    0.239657] io scheduler mq-deadline registered
    [    0.239668] io scheduler kyber registered
    [    0.241572] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    0.319081] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    0.323319] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 30, base_baud = 3000000) is a 8250
    [    0.955432] console [ttyS3] enabled
    [    0.961495] omap_rng 48310000.rng: Random Number Generator ver. 20
    [    0.983354] brd: module loaded
    [    0.996609] loop: module loaded
    [    1.003586] m25p80 spi0.0: unrecognized JEDEC id bytes: ff, ff, ff
    [    1.011178] libphy: Fixed MDIO Bus: probed
    [    1.089783] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
    [    1.097501] libphy: 4a101000.mdio: probed
    [    1.104162] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver TI TLK10X 10/100 Mbps PHY
    [    1.113869] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver TI TLK10X 10/100 Mbps PHY
    [    1.124529] cpsw 4a100000.ethernet: Detected MACID = 84:eb:18:94:38:23
    [    1.131285] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
    [    1.137676] cpsw 4a100000.ethernet: ALE Table size 1024
    [    1.142985] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    [    1.151315] cpsw 4a100000.ethernet: cpsw: Detected MACID = 84:eb:18:94:38:25
    [    1.160579] i2c /dev entries driver
    [    1.164643] IR NEC protocol handler initialized
    [    1.169203] IR RC5(x/sz) protocol handler initialized
    [    1.174343] IR RC6 protocol handler initialized
    [    1.178899] IR JVC protocol handler initialized
    [    1.183450] IR Sony protocol handler initialized
    [    1.188091] IR SANYO protocol handler initialized
    [    1.192816] IR Sharp protocol handler initialized
    [    1.197543] IR MCE Keyboard/mouse protocol handler initialized
    [    1.203417] IR XMP protocol handler initialized
    [    1.209262] sdhci: Secure Digital Host Controller Interface driver
    [    1.215478] sdhci: Copyright(c) Pierre Ossman
    [    1.221697] sdhci-pltfm: SDHCI platform and OF driver helper
    [    1.234344] NET: Registered protocol family 10
    [    1.241153] Segment Routing with IPv6
    [    1.244948] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    1.251975] NET: Registered protocol family 17
    [    1.256790] Key type dns_resolver registered
    [    1.261465] omap_voltage_late_init: Voltage driver support not added
    [    1.300017] tps65910 0-002d: No interrupt support, no core IRQ
    [    1.308486] vrtc: supplied by vbat
    [    1.315846] vio: supplied by vbat
    [    1.320864] vdd1: supplied by vbat
    [    1.326280] vdd2: supplied by vbat
    [    1.333311] vdig1: supplied by vbat
    [    1.338357] vdig2: supplied by vbat
    [    1.343399] vpll: supplied by vbat
    [    1.348330] vdac: supplied by vbat
    [    1.353294] vaux1: supplied by vbat
    [    1.358319] vaux2: supplied by vbat
    [    1.363367] vaux33: supplied by vbat
    [    1.368479] vmmc: supplied by vbat
    [    1.373452] vbb: supplied by vbat
    [    1.405295] Console: switching to mono frame buffer device 12x2
    [    1.438263] ssd1307fb 0-003c: fb0: Solomon SSD1307 framebuffer device registered, using 192 bytes of video memory
    [    1.448696] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    1.510489] hctosys: unable to open rtc device (rtc0)
    [    1.516511] ALSA device list:
    [    1.522484]   No soundcards found.
    [    1.530402] Waiting for root device PARTUUID=541bb3d9-02...
    [    1.568151] mmc0: host does not support reading read-only switch, assuming write-enable
    [    1.579352] mmc0: new high speed SDHC card at address 0007
    [    1.585549] mmcblk0: mmc0:0007 APUSD 7.42 GiB
    [    1.591829]  mmcblk0: p1 p2
    [    2.250483] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    2.258720] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    2.272943] devtmpfs: mounted
    [    2.278595] Freeing unused kernel memory: 1024K
    [    2.686326] systemd[1]: System time before build time, advancing clock.
    [    2.773974] systemd[1]: systemd 234 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN default-hierarchy=hybrid)
    [    2.795748] systemd[1]: Detected architecture arm.
    
    Welcome to Arago 2018.04!
    
    [    2.831456] systemd[1]: Set hostname to <am335x-evm>.
    [    3.242710] mmcblk0: error -5 sending stop command, original cmd response 0x900, card status 0x900
    [    3.251743] mmcblk0: error -110 transferring data, sector 15564672, nr 8, cmd response 0x900, card status 0x200b00
    [    3.262274] mmcblk0: retrying using single block read
    [    3.442254] mmcblk0: error -110 transferring data, sector 15564672, nr 8, cmd response 0x900, card status 0x0
    [    3.452356] print_req_error: I/O error, dev mmcblk0, sector 15564672
    [    3.658677] mmcblk0: error -110 transferring data, sector 15564673, nr 7, cmd response 0x900, card status 0x0
    [    3.668772] print_req_error: I/O error, dev mmcblk0, sector 15564673
    [    3.875080] mmcblk0: error -110 transferring data, sector 15564674, nr 6, cmd response 0x900, card status 0x0
    [    3.885175] print_req_error: I/O error, dev mmcblk0, sector 15564674
    [    4.091502] mmcblk0: error -110 transferring data, sector 15564675, nr 5, cmd response 0x900, card status 0x0
    [    4.101597] print_req_error: I/O error, dev mmcblk0, sector 15564675
    [    4.307903] mmcblk0: error -110 transferring data, sector 15564676, nr 4, cmd response 0x900, card status 0x0
    [    4.317997] print_req_error: I/O error, dev mmcblk0, sector 15564676
    [    4.524314] mmcblk0: error -110 transferring data, sector 15564677, nr 3, cmd response 0x900, card status 0x0
    [    4.534410] print_req_error: I/O error, dev mmcblk0, sector 15564677
    [    4.740848] mmcblk0: error -110 transferring data, sector 15564678, nr 2, cmd response 0x900, card status 0x0
    [    4.740984] print_req_error: I/O error, dev mmcblk0, sector 15564678
    [    4.940918] mmcblk0: error -110 transferring data, sector 15564679, nr 1, cmd response 0x900, card status 0x0
    [    4.951011] print_req_error: I/O error, dev mmcblk0, sector 15564679
    [    5.191598] mmcblk0: error -5 sending stop command, original cmd response 0x900, card status 0x900
    [    5.200631] mmcblk0: error -110 transferring data, sector 15564672, nr 8, cmd response 0x900, card status 0x200b00
    [    5.211038] mmcblk0: retrying using single block read
    [    5.416067] mmcblk0: error -110 transferring data, sector 15564672, nr 8, cmd response 0x900, card status 0x0
    [    5.426045] print_req_error: I/O error, dev mmcblk0, sector 15564672
    [    5.632378] mmcblk0: error -110 transferring data, sector 15564673, nr 7, cmd response 0x900, card status 0x0
    [    5.642352] print_req_error: I/O error, dev mmcblk0, sector 15564673
    [    5.848660] mmcblk0: error -110 transferring data, sector 15564674, nr 6, cmd response 0x900, card status 0x0
    [    6.058550] mmcblk0: error -110 transferring data, sector 15564675, nr 5, cmd response 0x900, card status 0x0
    [    6.268437] mmcblk0: error -110 transferring data, sector 15564676, nr 4, cmd response 0x900, card status 0x0
    [    6.478326] mmcblk0: error -110 transferring data, sector 15564677, nr 3, cmd response 0x900, card status 0x0
    [    6.688259] mmcblk0: error -110 transferring data, sector 15564678, nr 2, cmd response 0x900, card status 0x0
    [    6.898167] mmcblk0: error -110 transferring data, sector 15564679, nr 1, cmd response 0x900, card status 0x0
    [    6.908149] Buffer I/O error on dev mmcblk0, logical block 1945584, async page read
    [    6.916136] systemd-gpt-auto-generator[68]: Failed to dissect: Input/output error
    [    6.934283] systemd[64]: /lib/systemd/system-generators/systemd-gpt-auto-generator failed with error code 1.
    [    7.120227] systemd[1]: /lib/systemd/system/gadget-init.service:15: Unknown lvalue 'ExecStopPre' in section 'Service'
    [    7.904822] random: systemd: uninitialized urandom read (16 bytes read)
    [    7.912561] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password Requests to Wall Directory Watch.
    [    7.950192] random: systemd: uninitialized urandom read (16 bytes read)
    [    7.957414] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password Requests to Console Directory Watch.
    [    8.000084] random: systemd: uninitialized urandom read (16 bytes read)
    [    8.007234] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
    [  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
    [    8.050554] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    8.080622] systemd[1]: Listening on Syslog Socket.
    [  OK  ] Listening on Syslog Socket.
    [    8.110208] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    8.140587] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    8.174209] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    8.212181] systemd[1]: Created slice System Slice.
    [  OK  ] Created slice System Slice.
    [    8.257077] systemd[1]: Mounting Temporary Directory (/tmp)...
             Mounting Temporary Directory (/tmp)...
             Mounting POSIX Message Queue File System...
             Mounting Kernel Debug File System...
    [  OK  ] Listening on Process Core Dump Socket.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [  OK  ] Reached target Paths.
    [  OK  ] Reached target Remote File Systems.
    [  OK  ] Created slice system-getty.slice.
             Starting Load Kernel Modules...
    [  OK  ] Listening on udev Control Socket.
    [    8.665031] cryptodev: loading out-of-tree module taints kernel.
    [  OK  ] Reached target Slices.
    [    8.675487] cryptodev: driver 1.9 loaded.
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    8.718274] usbcore: registered new interface driver usbfs
    [    8.724098] usbcore: registered new interface driver hub
    [    8.729665] usbcore: registered new device driver usb
             Starting Journal Service...
    [    8.762586] usbcore: registered new interface driver usbserial
             Starting Remount Root and Kernel File Systems...
    [  OK  ] Listening on Network Service Netlink Socket.
    [[    8.943588] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
      OK  ] Mounted Kernel Debug File System.
    [  OK  ] Mounted POSIX Message Queue File System.
    [  OK  ] Mounted Temporary Directory (/tmp).
    [FAILED] Failed to start Load Kernel Modules.
    See 'systemctl status systemd-modules-load.service' for details.
    [  OK  ] Started Remount Root and Kernel File Systems.
    [  OK  ] Started Journal Service.
             Starting Create System Users...
             Starting Flush Journal to Persistent Storage...
             Starting Rebuild Hardware Database...
             Mounting Kernel Configuration File System...
             Starting Apply Kernel Variables...
    [  OK  ] Mounted Kernel Configuration File System.
    [  OK  ] Started Create System Users.
    [  OK  ] Started Apply Kernel Variables.
    [    9.676552] systemd-journald[79]: Received request to flush runtime journal from PID 1
             Starting Create Static Device Nodes in /dev...
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Create Static Device Nodes in /dev.
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
             Starting udev Kernel Device Manager...
    [  OK  ] Mounted /var/volatile.
    [  OK  ] Mounted /media/ram.
             Starting Load/Save Random Seed...
    [  OK  ] Reached target Local File Systems.
             Starting Create Volatile Files and Directories...
             Starting Rebuild Dynamic Linker Cache...
             Starting Rebuild Journal Catalog...
    [  OK  ] Started Load/Save Random Seed.
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Started Create Volatile Files and Directories.
             Starting Update UTMP about System Boot/Shutdown...
             Starting Network Time Synchronization...
    [  OK  ] Started Rebuild Journal Catalog.
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Started Rebuild Dynamic Linker Cache.
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Reached target System Time Synchronized.
    [  OK  ] Started Rebuild Hardware Database.
             Starting Update is Completed...
             Starting udev Coldplug all Devices...
    [  OK  ] Started Update is Completed.
    [  OK  ] Started udev Coldplug all Devices.
    [  OK  ] Reached target System Initialization.
    [   18.577115] gpio-decoder gpio-decoder: unable to acquire input gpios
    [   18.660684] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [  OK  ] Listening on dropbear.socket.
    [   18.704065] PM: Cannot get wkup_m3_ipc handle
    [  OK  ] Listening on D-Bus System Message Bus Socket.
    [  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [  OK  ] Reached target Sockets.
    [   18.909154] gpio-decoder gpio-decoder: unable to acquire input gpios
    [   18.917861] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [   18.960833] omap_rtc 44e3e000.rtc: registered as rtc0
             Starting Network Service...
    [  OK  ] Reached target Basic System.
    [   19.078013] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [   19.078706] PM: Cannot get wkup_m3_ipc handle
    [   19.100307] gpio-decoder gpio-decoder: unable to acquire input gpios
    [  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
    [  OK  ] Started D-Bus System Message Bus.
    [   19.453733] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [   19.509100] PM: Cannot get wkup_m3_ipc handle
    [   19.538174] gpio-decoder gpio-decoder: unable to acquire input gpios
    [   19.604806] pca953x 0-0041: 0-0041 supply vcc not found, using dummy regulator
    [   19.741853] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [   19.743449] PM: Cannot get wkup_m3_ipc handle
    [   19.758558] input: gpio-decoder as /devices/platform/gpio-decoder/input/input0
    [   19.775410] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [   19.776004] PM: Cannot get wkup_m3_ipc handle
    [   20.156998] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [   20.218418] PM: Cannot get wkup_m3_ipc handle
    [   20.420311] mmcblk0: error -5 sending stop command, original cmd response 0x900, card status 0x900
    [   20.429351] mmcblk0: error -110 transferring data, sector 15564672, nr 8, cmd response 0x900, card status 0x200b00
    [   20.448960] mmcblk0: retrying using single block read
    [   20.702033] mmcblk0: error -110 transferring data, sector 15564672, nr 8, cmd response 0x900, card status 0x0
    [   20.702058] print_req_error: 6 callbacks suppressed
    [   20.702069] print_req_error: I/O error, dev mmcblk0, sector 15564672
    [   20.902374] mmcblk0: error -110 transferring data, sector 15564673, nr 7, cmd response 0x900, card status 0x0
    [   20.942492] print_req_error: I/O error, dev mmcblk0, sector 15564673
    [   21.149101] mmcblk0: error -110 transferring data, sector 15564674, nr 6, cmd response 0x900, card status 0x0
    [   21.149128] print_req_error: I/O error, dev mmcblk0, sector 15564674
    [   21.349669] mmcblk0: error -110 transferring data, sector 15564675, nr 5, cmd response 0x900, card status 0x0
    [   21.349847] print_req_error: I/O error, dev mmcblk0, sector 15564675
    [   21.550328] mmcblk0: error -110 transferring data, sector 15564676, nr 4, cmd response 0x900, card status 0x0
    [   21.550355] print_req_error: I/O error, dev mmcblk0, sector 15564676
    [   21.725389] mmcblk0: error -110 transferring data, sector 15564677, nr 3, cmd response 0x900, card status 0x0
    [   21.745380] print_req_error: I/O error, dev mmcblk0, sector 15564677
    [   21.962046] mmcblk0: error -110 transferring data, sector 15564678, nr 2, cmd response 0x900, card status 0x0
    [   21.981988] print_req_error: I/O error, dev mmcblk0, sector 15564678
    [   22.188691] mmcblk0: error -110 transferring data, sector 15564679, nr 1, cmd response 0x900, card status 0x0
    [   22.188717] print_req_error: I/O error, dev mmcblk0, sector 15564679
    [   22.188736] Buffer I/O error on dev mmcblk0, logical block 1945584, async page read
    [   22.227070] remoteproc remoteproc0: wkup_m3 is available
    [   22.240385] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
    [   22.396971] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
    [   22.400242] omap-aes 53500000.aes: will run requests pump with realtime priority
    [  OK  ] Started Periodic Command Scheduler.
    [[   23.100450] PM: Cannot get wkup_m3_ipc handle
    [   23.104965] remoteproc remoteproc0: powering up wkup_m3
      OK  ] Started Job spooling tools.
    [   23.170181] net eth1: initializing cpsw version 1.12 (0)
    [   23.182337] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 224628
             Starting Print notice about GPLv3 packages...
    [   23.305909] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
    [   23.312998] remoteproc remoteproc0: remote processor wkup_m3 is now up
    [   23.330701] TI TLK10X 10/100 Mbps PHY 4a101000.mdio:03: attached PHY driver [TI TLK10X 10/100 Mbps PHY] (mii_bus:phy_addr=4a101000.mdio:03, irq=POLL)
    [  OK  ] Reached target Containers.
             Starting RPC Bind Service...
    [   23.623750] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
    [  OK  ] Started System Logging Service.
             Starting uim-sysfs.service...
    [  OK  ] Started Daily rotation of log files.
    [  OK  ] Reached target Timers.
    [[   24.240330] net eth0: initializing cpsw version 1.12 (0)
      OK  ] Started Kernel Logging Service.
             Starting Login Service...
    [   24.420740] TI TLK10X 10/100 Mbps PHY 4a101000.mdio:01: attached PHY driver [TI TLK10X 10/100 Mbps PHY] (mii_bus:phy_addr=4a101000.mdio:01, irq=POLL)
             Starting Avahi mDNS/DNS-SD Stack...
    [   24.720494] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [  OK  ] Started Network Service.
    [  OK  ] Started RPC Bind Service.
    [  OK  ] Found device /dev/ttyS3.
    [  OK  ] Found device /dev/ttyS0.
    [   26.722691] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
    [   26.791725] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [   27.542792] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [  OK  ] Started Avahi mDNS/DNS-SD Stack.
    [  OK  ] Started Login Service.
    [  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
    [  OK  ] Created slice system-systemd\x2dbacklight.slice.
             Starting Load/Save Screen Backlight�ghtness of backlight:ssd1307fb0...
    [  OK  ] Reached target Network.
             Starting Lightning Fast Webserver With Light System Requirements...
             Starting Simple Network Management Protocol (SNMP) Daemon....
             Starting Permit User Sessions...
    [  OK  ] Started Redis In-Memory Data Store.
             Starting Enable and configure wl18xx bluetooth stack...
             Starting Network Name Resolution...
             Starting Wait for Network to be Configured...
    [  OK  ] Started Load/Save Screen Backlight Brightness of backlight:ssd1307fb0.
    [  OK  ] Started Lightning Fast Webserver With Light System Requirements.
    [  OK  ] Started Permit User Sessions.
    [  OK  ] Started Enable and configure wl18xx bluetooth stack.
    [  OK  ] Found device /dev/mmcblk0p1.
    [  OK  ] Started Network Name Resolution.
    [   32.516631] hrtimer: interrupt took 55709 ns
    [  OK  ] Started Simple Network Management Protocol (SNMP) Daemon..
    [   34.106915] PM: bootloader does not support rtc-only!
    [  OK  ] Started uim-sysfs.service.
    [   34.301320] pruss 4a300000.pruss: creating PRU cores and other child platform devices
    [   34.812755] remoteproc remoteproc1: 4a334000.pru is available
    [   34.818666] pru-rproc 4a334000.pru: PRU rproc node /ocp/pruss_soc_bus@4a326004/pruss@0/pru@34000 probed successfully
    [   34.919237] remoteproc remoteproc2: 4a338000.pru is available
    [   34.926833] pru-rproc 4a338000.pru: PRU rproc node /ocp/pruss_soc_bus@4a326004/pruss@0/pru@38000 probed successfully
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
            autoconf
            bash-dev
            bash
            binutils
            cifs-utils
            cpio
            cpp-symlinks
            cpp
            dosfstools
            elfutils
            findutils
            g++-symlinks
            g++
            gawk
            gcc-symlinks
            gcc
            gdb
            gdbserver
            gettext
            gstreamer1.0-libav
            gzip
            hidapi
            libdw1
            libelf1
            libgdbm-compat4
            libgdbm-dev
            libgdbm4
            libgettextlib
            libgettextsrc
            libgmp10
            libidn11
            libmavconn
            libmpc3
            libmpfr4
            libreadline-dev
            libreadline7
            libunistring2
            m4-dev
            m4
            make
            mavlink
            mavros-extras
            mavros-msgs
            mavros
            nettle
            python3-pycairo
            socketcan-interface
            which
    
    If you do not wish to distribute GPLv3 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
    ***************************************************************
    ***************************************************************
    [  OK  ] Started Print notice about GPLv3 packages.
             Starting rc.pvr.service...
    [  OK  ] Reached target Host and Network Name Lookups.
    [  OK  ] Started NFS status monitor for NFSv2/3 locking..
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
             Starting Start USB gadget...
    [  OK  ] Started Serial Getty on ttyS3.
    [  OK  ] Started Getty on tty1.
    [  OK  ] Started Serial Getty on ttyS0.
    [   40.060540] udc-core: couldn't find an available UDC - added [g_multi] to list of pending drivers
    [  OK  ] Started rc.pvr.service.
    [FAILED] Failed to start Start USB gadget.
    See 'systemctl status gadget-init.service' for details.
             Starting weston.service...
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
    [  OK  ] Started weston.service.
             Starting telnetd.service...
    [  OK  ] Started telnetd.service.
             Starting thttpd.service...
             Starting busybox-udhcpd.service...
             Starting CS61850.service...
    [  OK  ] Started thttpd.service.
    [  OK  ] Started busybox-udhcpd.service.
    [  OK  ] Stopped Redis In-Memory Data Store.
    [   41.031079] device eth0 entered promiscuous mode
    [  OK  ] Started Redis In-Memory Data Store.
    [   41.080500] device eth1 entered promiscuous mode
    [   41.238396] hsr0: HSR/PRP: Please bringup Slave B (eth1)
    [   41.289034] IPv6: ADDRCONF(NETDEV_UP): hsr0: link is not ready
    [   41.318522] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
    [  OK  ] Started CS61850.service.
             Starting rng-tools.service...
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
    [  OK  ] Started rng-tools.service.
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
    [  OK  ] Stopped Redis In-Memory Data Store.
    [  OK  ] Started Redis In-Memory Data Store.
    [  OK  ] Stopped Redis In-Memory Data Store.
    [FAILED] Failed to start Redis In-Memory Data Store.
    See 'systemctl status redis.service' for details.
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project http://arago-project.org am335x-evm ttyS3
    
    Arago 2018.04 am335x-evm ttyS3
    
    am335x-evm login:
    

  • One more fact about "sdk5 has stoped send the frames on arp-reques":

    When ping is lost the arp-table (command arp -a) show, that there are no any record about am3359 (in pc).

    After restart the am3359: the record of am3359 in arp-table exists (in pc), and ping is ok. Then, after the short time (~1 minute) ping is lost, and arp-table shows that there are no any record about am3359 again.

    And when a static record about am3359 was added into the arp-table (command arp -s), the ping with am3359 is stable.

  • VLeshka,

    How are you setting up the HSR link? I see it coming up, but I don't see the commands. Is this something you've added to init?

    Do you see the problem if you don't use HSR?

    Also, would you confirm what DTS file you are using? From your logs and comments, you are using the PHYs connected to the CPSW in dual-emac mode, but I wanted to confirm.

    Thanks.

  • Hi!

    The commands are (for "etho0" & "eth1"):

    ip link add name hsr0 type hsr slave1 eth0 slave2 eth1 version 1

    ip addr add 192.168.12.211/24 brd + dev hsr0

    ifconfig hsr0 netmask 255.255.255.0

    ip link set dev hsr0 up

  • I have use the am3359 as hsr and prp. The prp have bag too, such as: when the command "ping" don't works, the frame does not pass the "if" (module hsr_prp_forward.c -> hsr_prp_forward_do() ):

                    // if L2 forward is offloaded, don't forward frame
                    // across slaves
                    //
                    if ((port->priv->l2_fwd_offloaded ||
                         port->priv->prot_ver == PRP_V1) &&
                         ((frame->port_rcv->type == HSR_PRP_PT_SLAVE_A &&
                         port->type ==  HSR_PRP_PT_SLAVE_B) ||
                         (frame->port_rcv->type == HSR_PRP_PT_SLAVE_B &&
                         port->type ==  HSR_PRP_PT_SLAVE_A)))
                            continue;
    

    Сonversely, the ping is ok when frame passes that "if".

    The scheme is: am3359 <-> switch <-> am3359. Only by 1 cable into port A or B, and am3359 pings am3359.

    Note: in prp mode, there are off the changes according to www.spinics.net/.../msg444860.html (with that changes for sdk3, the prp does not work propetly).

  • Just to be clear, you are not using the ICEv2 board from TI? You are using a custom board as detailed in the referenced post?
  • I didn't. Of course, first we develop on the debug Board, then the firmware is transferred to the custom board, which has a different interface (optic). Bugs are the same everywhere.
  • About bug in prp: I have been prepared the two micro-sd with clear sdk5 (for two ICEv2, on clear sdk5 boot), then connect the ICEv2 by one RJ45 cable (only port A or B). After simple start, the ICEv2 pings are normal. Then, after restart (in 5 minutes) one ICEv2, the ping to the reatarted ICEv2 is lost. And the frames to the restarted ICEv2  are all arp-requests (in atach: the data of sk_buff, that printk in module hsr_prp_forward.c -> hsr_prp_forward_skb() ).

  • Thank you for replicating your tests with the ICEv2 and a simpler set up. Let me set this up and see if I can reproduce it. I will try to get back to you early next week with my results, if not sooner.
  • I set this up using an ICEv2. Using our instructions documented here:

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

    I was not able to reproduce your results with PRP. I pinged from another board with one cabled connected, took down the interface and brought it back up, and the pings resumed just fine.

    One step I noticed that was different from what I've seen in your posts was setting the MAC Address of both interfaces to the same address before configuring the link. Have you done that?
  • I will look for setup interfaces on monday.
    Note that there are no any network devices in my am3359 lan (if network devices exists, the arp with their help works fine).
  • There are 4 commands for setup prp (for "etho0" & "eth1"):

    ip link add name prp0 type prp slave1 eth0 slave2 eth1

    ip addr add 192.168.12.211/24 brd + dev prp0

    ifconfig prp0 netmask 255.255.255.0

    ip link set dev prp0 up
  • Let's see what is the difference between our prp network configurations. I have two am3359 (192.168.12.211 & 192.168.12.212) with clear sdk5 (for two ICEv2, on clear sdk5 boot). Atfer the start, I have make only that 4 commands for setup prp (for "etho0" & "eth1"):

    ip link add name prp0 type prp slave1 eth0 slave2 eth1

    ip addr add 192.168.12.211/24 brd + dev prp0

    ifconfig prp0 netmask 255.255.255.0

    ip link set dev prp0 up

    Then ping them both each other. The ICEv2 boards are communicated each other only by 1 patch cord RJ45 cable into port A or B. Then, after restart (in more then 5 minutes) one ICEv2, the ping to the reatarted ICEv2 is lost.

    What is different from your configuration?

  • I hope you're promoting the case.
    I study the bug, and I found one: the hardware sniffer shows, that the answer for arp-request sends by cable finally. But it does not receives by am3359.

  • VLeshka,

    I believe this is because you are not setting the MAC address for both of the interfaces the same. If you switch the cable, does the ARP start working?

    Thanks.
  • If I switch the cable, the ARP does not start.
    When I setting the MAC address for both of the interfaces the same, the ARP does not start too.

  • VLeshka,

    Thank you for trying the above test. I"m sorry it did not resolve the issue.

    In my setup, I have another board connected via 1 cable to 1 port of an ICE board. The other board is configured and provides the ping. I used your commands to set up a prp link.

    How are you taking down the link on the the ICE board? What interface are you using?
  • Did I understand correctly that you can't reproduce my bug because you have only 1 AM3359 ICE 2.1 EVM ?

    About taking down the link on the the ICE board: the hardware sniffer is a PC (with program wireshark) with 2 RJ-45 lan cards, that are programly merged. That bridge is placed between 2 ICE, so it is a transparent hardware sniffer.

  • How could the source of the ping, rather it is an ICE or something else, be a contributing factor? In your test, you see the ping come out, but you state that it is not received. Therefore, one ICE board seems to be sufficient. If I'm missing something, please help me understand.

    I'm using "ifconfig down prp0" and "ifconfig up prp0" to take down the interface. Is this what you are using?
  • Yes, I have use "ifconfig prp0 down/up". But I reboot the prp0 of ICE by power OFF-ON, and have a bug. If I reboot the prp0 by software, it works fine.

    About test: you are right if the bug is that ICE is not able to accept arp-reply.

    As I see: as if arp-reply is not accepted by ICE, because:

    - a wrong package sent by ICE.

    - or the ICE cannot correctly identify a packet (arp-reply) sent by another ICE, as if some non-standard packet of arp-reply is required.

    The photo of my stand is in atach.

  • Yes, and I based my test on the fact that your "sniffer" saw the ARP reply, and therefore was valid, but the ICE did not "see" it. Was this incorrect?

    VLeshka VV said:
    Yes, I have use "ifconfig prp0 down/up". But I reboot the prp0 of ICE by power OFF-ON, and have a bug. If I reboot the prp0 by software, it works fine.

    Could you please clarify this statement. 

  • "Yes, and I based my test on the fact that your "sniffer" saw the ARP reply, and therefore was valid, but the ICE did not "see" it."

    Yes it is.

    "Could you please clarify this statement."

    How do I reboot the prp0, after which I have no any bug: I use the command "ifconfig prp0 down", then the command "ifconfig prp0 up".

    How do I reboot the prp0, after which I have a bug: I pull out the power cable, then stick the power cable back to ICE, then raise the interface prp0. I'm only rebooting one device.

  • May I have your help? Or should I clarify something else?

  • VLeshka,

    I am not able to reproduce your results. I'm still not using two ICE boards, but I don't believe that has been confirmed to be part of your issue. I use another IDK board that uses PRU Eth ports just like the ICE to send the pings.

    As best I can, I've set up your test. Ping from the IDK to the ICE for a period of time greater than 5 minutes. Pull the power on the ICE. This of course kills the PRP connection. It also kills the connection on the IDK board. I power on the ICE board again. Set up the connection on the IDK and the ICE and resume pings, and everything works fine.

    Do you also lose the connection on the other ICE board? If so, I assume you re-establish it in order to get the pings going again.

    Do you see something different in my testing?
  • "Do you also lose the connection on the other ICE board? If so, I assume you re-establish it in order to get the pings going again."

    Yes, I completely lose the connection to the restarted ICE and from restarted ICE for some time (1-2 hours).

    "Do you see something different in my testing?"

    Yes. You use another IDK board. What board do you use?

  • OK, to remove that variable, I repeated the test with two ICEv2 Boards (my set up is not as neat as yours):

    I let the ping run from one board for 30 minutes or so. I unplugged the other board. I lost the link as shown below:


    64 bytes from 192.168.12.10: seq=3111 ttl=64 time=1.661 ms
    64 bytes from 192.168.12.10: seq=3112 ttl=64 time=1.658 ms
    64 bytes from 192.168.12.10: seq=3113 ttl=64 time=1.674 ms
    64 bytes from 192.168.12.10: seq=3114 ttl=64 time=1.672 ms
    64 bytes from 192.168.12.10: seq=3115 ttl=64 time=1.657 ms
    64 bytes from 192.168.12.10: seq=3116 ttl=64 time=1.724 ms
    64 bytes from 192.168.12.10: seq=3117 ttl=64 time=1.658 ms
    64 bytes from 192.168.12.10: seq=3118 ttl=64 time=1.815 ms
    64 bytes from 192.168.12.10: seq=3119 ttl=64 time=1.917 ms
    64 bytes from 192.168.12.10: seq=3120 ttl=64 time=1.721 ms
    64 bytes from 192.168.12.10: seq=3121 ttl=64 time=1.657 ms
    64 bytes from 192.168.12.10: seq=3122 ttl=64 time=1.621 ms
    64 bytes from 192.168.12.10: seq=3123 ttl=64 time=1.660 ms
    64 bytes from 192.168.12.10: seq=3124 ttl=64 time=1.660 ms
    64 bytes from 192.168.12.10: seq=3125 ttl=64 time=1.657 ms
    64 bytes from 192.168.12.10: seq=3126 ttl=64 time=1.654 ms
    [ 3827.370177] cpsw 4a100000.ethernet eth1: Link is Down
    ping: sendto: Network is unreachable
    root@am335x-evm:~# [ 3841.930426] cpsw 4a100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control off
    [ 3848.170161] cpsw 4a100000.ethernet eth1: Link is Down
    [ 3850.250409] cpsw 4a100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control off
    ifconfig eth1 192.168.12.12 up
    root@am335x-evm:~# ping 192.168.12.10
    PING 192.168.12.10 (192.168.12.10): 56 data bytes
    64 bytes from 192.168.12.10: seq=36 ttl=64 time=1025.592 ms
    64 bytes from 192.168.12.10: seq=37 ttl=64 time=25.119 ms
    64 bytes from 192.168.12.10: seq=38 ttl=64 time=1.794 ms
    64 bytes from 192.168.12.10: seq=39 ttl=64 time=0.815 ms
    64 bytes from 192.168.12.10: seq=40 ttl=64 time=1.931 ms
    64 bytes from 192.168.12.10: seq=41 ttl=64 time=1.778 ms
    64 bytes from 192.168.12.10: seq=42 ttl=64 time=1.889 ms
    64 bytes from 192.168.12.10: seq=43 ttl=64 time=1.655 ms
    64 bytes from 192.168.12.10: seq=44 ttl=64 time=1.652 ms
    64 bytes from 192.168.12.10: seq=45 ttl=64 time=1.657 ms
    64 bytes from 192.168.12.10: seq=46 ttl=64 time=1.679 ms
    64 bytes from 192.168.12.10: seq=47 ttl=64 time=1.665 ms
    64 bytes from 192.168.12.10: seq=48 ttl=64 time=1.660 ms
    64 bytes from 192.168.12.10: seq=49 ttl=64 time=1.657 ms
    64 bytes from 192.168.12.10: seq=50 ttl=64 time=1.656 ms
    64 bytes from 192.168.12.10: seq=51 ttl=64 time=1.653 ms
    64 bytes from 192.168.12.10: seq=52 ttl=64 time=1.659 ms
    64 bytes from 192.168.12.10: seq=53 ttl=64 time=1.656 ms
    64 bytes from 192.168.12.10: seq=54 ttl=64 time=1.839 ms
    64 bytes from 192.168.12.10: seq=55 ttl=64 time=1.080 ms
    64 bytes from 192.168.12.10: seq=56 ttl=64 time=1.640 ms
    64 bytes from 192.168.12.10: seq=57 ttl=64 time=1.657 ms


    As you can see, the link resumes as soon as the other board is brought back up.

    Am I doing anything different that might impact the test?

  • Just to be thorough, I noticed you were using the other eth port, eth0, while I was using eth1 above. While it shouldn't matter, I wanted to be as sure as I could that I'd done my best to replicate your test.

    So, I switched to the other port, eth0, and re-ran the test. I got the same result; the ping resumed. The log basically looked identical to above.
  • "Am I doing anything different that might impact the test?"

    You use only simple ethernet interfaces eth0 and eth1.
    You have to use the prp connection.

    Note that prp differs significantly from simple ethernet.


    The setup of hsr interface her e2e.ti.com/.../2714185

    The setup of prp interface:

    ip link add name prp0 type prp slave1 eth0 slave2 eth1

    ip addr add 192.168.12.211/24 brd + dev prp0

    ifconfig prp0 netmask 255.255.255.0

    ip link set dev prp0 up

  • I am using a PRP interface on the board that I reboot. That was the original issue and what I have been testing.

    To be clear, I do not use a prp interface on the sending board. I will try that today to see if it makes any difference.
  • OK, I think I've reproduced what you are seeing. I've put this in front of our development team to get their input. I will provide it here when I have it.

    As a workaround, if I delete the PRP link on the sender and recreate it, the ping completes successfully. Is that the same for you and is that acceptable as a work around?

    Thank you.
  • "As a workaround, if I delete the PRP link on the sender and recreate it, the ping completes successfully. Is that the same for you and is that acceptable as a work around?"

    In my task, it is important to have a HSR/PRP interface everywhere.

  • Can I ask specific programming questions here? In particular, about the module socket.c
  • I'm afraid we can't help with generic socket.c questions on this forum.
  • VLeshka,

    I just wanted to follow-up and let you know we believe we've fixed this issue in the upcoming v5.3 release in early April.