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-AM335X: PRU Ethernet issue on ICEv2

Part Number: PROCESSOR-SDK-AM335X

Hi all,

I am using TI SDK 06.03.00.106 with kernel vs 4.19.94 on my ICEv2 board.

I need to run the board as Single EMAC. Although I've followed Documentation/devicetree/bindings/ti-prueth.txt while modifying the attached DTS file, I got crash messages about prueth timer from ti_prueth driver (logs are attached)

Have you any comments about the issue?

By the way, I've already read and applied the below URLs contents and could not get helpful info from those topics

Attachments

4617.icev2-prueth-singleemac-crash-logs.txt
root@mgate-eth:~# uname -a
Linux mgate-eth 4.19.94-rt39-ga242ccf3f1 #1 PREEMPT RT Tue May 12 13:26:51 +03 2020 armv7l GNU/Linux
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~# cat /proc/device-tree/model; echo
TI AM3359 ICE-V2 - single PRUETH - v1.0
root@mgate-eth:~#
root@mgate-eth:~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 2c:6b:7d:49:cd:19
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          LOOPBACK  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

sit0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@mgate-eth:~#
root@mgate-eth:~# ethtool -i eth0
driver: PRUSS Ethernet driver
version: 0.2
firmware-version:
expansion-rom-version:
bus-info:
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
root@mgate-eth:~#
root@mgate-eth:~# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   100baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  100baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: Unknown!
        Duplex: Unknown! (255)
        Port: MII
        PHYAD: 3
        Transceiver: internal
        Auto-negotiation: on
        Link detected: no
root@mgate-eth:~#
root@mgate-eth:~# ifconfig eth0 up
[  235.981255] iep ptp bc clkid -1
[  235.984575] remoteproc remoteproc2: powering up 4a338000.pru
[  235.998709] remoteproc remoteproc2: Booting fw image ti-pruss/am335x-pru1-prueth-fw.elf, size 7712
[  236.008036] pruss 4a300000.pruss: configured system_events[63-0] = 00600000,08a00000
[  236.015853] pruss 4a300000.pruss: configured intr_channels = 0x0000032a host_intr = 0x000002aa
[  236.024520] remoteproc remoteproc2: remote processor 4a338000.pru is now up
[  236.031962] net eth0: started
[  236.035300] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  236.042004] Unable to handle kernel NULL pointer dereference at virtual address 00000064
[  236.050159] pgd = c992a842
[  236.052882] [00000064] *pgd=00000000
[  236.056489] Internal error: Oops: 17 [#1] PREEMPT ARM
[  236.056494] Modules linked in: ti_am335x_adc ti_prueth pru_rproc pruss pm33xx irq_pruss_intc wkup_m3_ipc wkup_m3_rproc omap_aes_driver crypto_engine omap_sham remoteproc omap_crypto pruss_soc_bus ti_emif_sram gpio_pisosr rtc_omap omap_wdt gpio_tpic2810 ti_am335x_tscadc gpio_decoder input_polldev
[  236.056566] CPU: 0 PID: 10 Comm: ktimersoftd/0 Not tainted 4.19.94-rt39-ga242ccf3f1 #1
[  236.056571] Hardware name: Generic AM33XX (Flattened Device Tree)
[  236.056673] PC is at prueth_timer+0x94/0x1d8 [ti_prueth]
[  236.056678] LR is at 0x36
[  236.056684] pc : [<bf0c362c>]    lr : [<00000036>]    psr: a00b0013
[  236.056689] sp : cf071e38  ip : 00000000  fp : cf071e6c
[  236.056694] r10: 600b0013  r9 : ce072cc4  r8 : 0000000c
[  236.056700] r7 : ce072cc0  r6 : 0000000a  r5 : ce072d00  r4 : 00000000
[  236.056706] r3 : 00000004  r2 : 00000036  r1 : 00000000  r0 : 00000001
[  236.056715] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[  236.056721] Control: 10c5387d  Table: 8e32c019  DAC: 00000051
[  236.056729] Process ktimersoftd/0 (pid: 10, stack limit = 0x2a6e64e1)
[  236.056735] Stack: (0xcf071e38 to 0xcf072000)
[  236.056744] 1e20:                                                       00989680 00000000
[  236.056757] 1e40: cf071e6c c0d19130 ce072d00 c0d190e0 ffffe000 00000000 00000000 600b0013
[  236.056771] 1e60: cf071ec4 cf071e70 c0185d08 bf0c35a4 c018a84c c0ac2da4 c0d4fb16 00000036
[  236.056785] 1e80: f537d4a3 c0d19040 f537d4a3 c0d19144 f537d4a3 00000036 00000000 93a5301f
[  236.056798] 1ea0: 160a2ec4 c0d19040 600b0013 00000100 00000000 00000008 cf071ee4 cf071ec8
[  236.056812] 1ec0: c0185ffc c0185c30 00000020 c0d0fb24 ffffe000 04208140 cf071f2c cf071ee8
[  236.056825] 1ee0: c012d6b8 c0185f88 cf02ec40 c08d01d0 c0902b18 c0d12810 c0d50b2c c0d4f840
[  236.056839] 1f00: c0d0faf4 ffffe000 ffffe000 00000001 c0d0faf4 c0d05888 00000000 cf051df0
[  236.056852] 1f20: cf071f44 cf071f30 c012d7a0 c012d4fc cf02eb80 ffffe000 cf071f74 cf071f48
[  236.056866] 1f40: c014c124 c012d778 cf071f74 960c0f54 cf02ec40 cf02ec00 00000000 cf070000
[  236.056880] 1f60: cf02eb80 c014be64 cf071fac cf071f78 c0147d58 c014be70 cf02ec58 cf02ec58
[  236.056893] 1f80: 00000000 cf02ec00 c0147c00 00000000 00000000 00000000 00000000 00000000
[  236.056906] 1fa0: 00000000 cf071fb0 c01010f0 c0147c0c 00000000 00000000 00000000 00000000
[  236.056918] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  236.056931] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[  236.056933] Backtrace:
[  236.056994] [<bf0c3598>] (prueth_timer [ti_prueth]) from [<c0185d08>] (__hrtimer_run_queues.constprop.3+0xe4/0x230)
[  236.057009]  r10:600b0013 r9:00000000 r8:00000000 r7:ffffe000 r6:c0d190e0 r5:ce072d00
[  236.057013]  r4:c0d19130
[  236.057027] [<c0185c24>] (__hrtimer_run_queues.constprop.3) from [<c0185ffc>] (hrtimer_run_softirq+0x80/0x10c)
[  236.057040]  r10:00000008 r9:00000000 r8:00000100 r7:600b0013 r6:c0d19040 r5:160a2ec4
[  236.057044]  r4:93a5301f
[  236.057070] [<c0185f7c>] (hrtimer_run_softirq) from [<c012d6b8>] (do_current_softirqs+0x1c8/0x27c)
[  236.057080]  r7:04208140 r6:ffffe000 r5:c0d0fb24 r4:00000020
[  236.057094] [<c012d4f0>] (do_current_softirqs) from [<c012d7a0>] (run_ksoftirqd+0x34/0x54)
[  236.057107]  r10:cf051df0 r9:00000000 r8:c0d05888 r7:c0d0faf4 r6:00000001 r5:ffffe000
[  236.057111]  r4:ffffe000
[  236.057138] [<c012d76c>] (run_ksoftirqd) from [<c014c124>] (smpboot_thread_fn+0x2c0/0x2ec)
[  236.057145]  r5:ffffe000 r4:cf02eb80
[  236.057159] [<c014be64>] (smpboot_thread_fn) from [<c0147d58>] (kthread+0x158/0x160)
[  236.057171]  r9:c014be64 r8:cf02eb80 r7:cf070000 r6:00000000 r5:cf02ec00 r4:cf02ec40
[  236.057184] [<c0147c00>] (kthread) from [<c01010f0>] (ret_from_fork+0x14/0x24)
[  236.057190] Exception stack(0xcf071fb0 to 0xcf071ff8)
[  236.057199] 1fa0:                                     00000000 00000000 00000000 00000000
[  236.057211] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  236.057222] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[  236.057234]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c0147c00
[  236.057238]  r4:cf02ec00
[  236.057252] Code: e1590007 0a000027 e515301c e4974004 (e5942064)
[  236.443775] ---[ end trace 0000000000000002 ]---
r

1346.icev2-prueth-singleemac-startup-logs.txt
U-Boot 2019.01-g333c3e72d3 (Apr 20 2020 - 19:58:51 +0000)

CPU  : AM335X-GP rev 2.1
Model: TI AM3359 ICE-V2
DRAM:  256 MiB
ETH0, PRU
ETH1, PRU
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment

<ethaddr> not set. Validating first E-fuse MAC
Net:   eth0: ethernet@4a100000
Hit any key to stop autoboot:  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
4211200 bytes read in 354 ms (11.3 MiB/s)
36946 bytes read in 5 ms (7 MiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8df2d000, end 8df39051 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.19.94-rt39-ga242ccf3f1 (kunbus@kbcrossdev) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 PREEMPT RT Tue May 12 13:26:51 +03 2020
[    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 - single PRUETH - v1.0
[    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] random: get_random_bytes called from start_kernel+0xa4/0x444 with crng_init=0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64960
[    0.000000] Kernel command line: console=ttyO3,115200n8 root=PARTUUID=d5545cd7-02 rw rootfstype=ext4 rootwait
[    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: 197308K/262144K available (8192K kernel code, 319K rwdata, 2680K rodata, 1024K init, 259K bss, 15684K 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 : 0x(ptrval) - 0x(ptrval)   (9184 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 320 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 260 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     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 0x(ptrval) (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000020] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000038] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000046] OMAP clocksource: timer1 at 24000000 Hz
[    0.000271] timer_probe: no matching timers found
[    0.000511] Console: colour dummy device 80x30
[    0.000706] WARNING: Your 'console=ttyO3' has been replaced by 'ttyS3'
[    0.000710] This ensures that you still see kernel messages. Please
[    0.000713] update your kernel commandline.
[    0.000756] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
[    0.058720] pid_max: default: 32768 minimum: 301
[    0.058998] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.059013] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.060224] CPU: Testing write buffer coherency: ok
[    0.060292] CPU0: Spectre v2: using BPIALL workaround
[    0.061527] Setting up static identity map for 0x80100000 - 0x80100060
[    0.061922] rcu: Hierarchical SRCU implementation.
[    0.062899] EFI services will not be available.
[    0.064876] devtmpfs: initialized
[    0.078624] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.079340] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.079377] futex hash table entries: 256 (order: 1, 8192 bytes)
[    0.083903] pinctrl core: initialized pinctrl subsystem
[    0.084929] DMI not present or invalid.
[    0.085591] NET: Registered protocol family 16
[    0.089745] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.119907] l4_wkup_cm:clk:0010:0: failed to disable
[    0.183225] OMAP GPIO hardware version 0.1
[    0.187201] GPIO line 100 (PR1_MII_CTRL) hogged as output/high
[    0.187244] GPIO line 106 (MUX_MII_CTL1) hogged as output/low
[    0.196829] No ATAGs?
[    0.196844] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.219576] edma 49000000.edma: TI EDMA DMA engine driver
[    0.224604] SCSI subsystem initialized
[    0.225266] media: Linux media interface: v0.10
[    0.225338] videodev: Linux video capture interface: v2.00
[    0.225497] pps_core: LinuxPPS API ver. 1 registered
[    0.225511] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.225547] PTP clock support registered
[    0.225600] EDAC MC: Ver: 3.0.0
[    0.227110] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.227931] Advanced Linux Sound Architecture Driver Initialized.
[    0.229874] clocksource: Switched to clocksource timer1
[    0.243254] NET: Registered protocol family 2
[    0.244435] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 7168 bytes)
[    0.244493] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[    0.244550] TCP bind hash table entries: 2048 (order: 3, 49152 bytes)
[    0.244687] TCP: Hash tables configured (established 2048 bind 2048)
[    0.244839] UDP hash table entries: 256 (order: 2, 16384 bytes)
[    0.244897] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
[    0.245170] NET: Registered protocol family 1
[    0.245993] RPC: Registered named UNIX socket transport module.
[    0.246013] RPC: Registered udp transport module.
[    0.246023] RPC: Registered tcp transport module.
[    0.246034] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.247249] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    0.249095] Initialise system trusted keyrings
[    0.249530] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[    0.258236] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.259460] NFS: Registering the id_resolver key type
[    0.259522] Key type id_resolver registered
[    0.259535] Key type id_legacy registered
[    0.259610] ntfs: driver 2.1.32 [Flags: R/O].
[    0.263296] Key type asymmetric registered
[    0.263323] Asymmetric key parser 'x509' registered
[    0.263433] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.263450] io scheduler noop registered
[    0.263462] io scheduler deadline registered
[    0.263852] io scheduler cfq registered (default)
[    0.263872] io scheduler mq-deadline registered
[    0.263883] io scheduler kyber registered
[    0.266423] pinctrl-single 44e10800.pinmux: 142 pins, size 568
[    0.349039] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    0.354790] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 30, base_baud = 3000000) is a 8250
[    0.990504] console [ttyS3] enabled
[    0.996875] omap_rng 48310000.rng: Random Number Generator ver. 20
[    1.000116] random: fast init done
[    1.009999] random: crng init done
[    1.030575] brd: module loaded
[    1.044760] loop: module loaded
[    1.053107] m25p80 spi0.0: found s25fl064k, expected w25q64
[    1.058747] m25p80 spi0.0: s25fl064k (8192 Kbytes)
[    1.063710] 4 fixed-partitions partitions found on MTD device spi0.0
[    1.070103] Creating 4 MTD partitions on "spi0.0":
[    1.074934] 0x000000000000-0x000000080000 : "u-boot-spl"
[    1.081782] 0x000000080000-0x000000180000 : "u-boot"
[    1.088038] 0x000000180000-0x0000001a0000 : "u-boot-env"
[    1.094660] 0x0000001a0000-0x000000800000 : "misc"
[    1.102127] libphy: Fixed MDIO Bus: probed
[    1.109765] i2c /dev entries driver
[    1.115073] sdhci: Secure Digital Host Controller Interface driver
[    1.121295] sdhci: Copyright(c) Pierre Ossman
[    1.127904] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.142217] NET: Registered protocol family 10
[    1.148482] Segment Routing with IPv6
[    1.152420] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.159402] NET: Registered protocol family 17
[    1.164329] Key type dns_resolver registered
[    1.168935] omap_voltage_late_init: Voltage driver support not added
[    1.176610] Loading compiled-in X.509 certificates
[    1.220218] tps65910 0-002d: No interrupt support, no core IRQ
[    1.228624] vrtc: supplied by vbat
[    1.235967] vio: supplied by vbat
[    1.240982] vdd1: supplied by vbat
[    1.246416] vdd2: supplied by vbat
[    1.253397] vdig1: supplied by vbat
[    1.258425] vdig2: supplied by vbat
[    1.263483] vpll: supplied by vbat
[    1.268419] vdac: supplied by vbat
[    1.273376] vaux1: supplied by vbat
[    1.278422] vaux2: supplied by vbat
[    1.283466] vaux33: supplied by vbat
[    1.288586] vmmc: supplied by vbat
[    1.293564] vbb: supplied by vbat
[    1.299118] pca953x 0-0041: 0-0041 supply vcc not found, using dummy regulator
[    1.306544] pca953x 0-0041: Linked as a consumer to regulator.0
[    1.313577] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    1.321346] omap_hsmmc 48060000.mmc: Linked as a consumer to regulator.15
[    1.354796] hctosys: unable to open rtc device (rtc0)
[    1.361092] ALSA device list:
[    1.364098]   No soundcards found.
[    1.369173] Waiting for root device PARTUUID=d5545cd7-02...
[    1.392292] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.402316] mmc0: new high speed SDHC card at address 1234
[    1.409206] mmcblk0: mmc0:1234 SA32G 28.8 GiB
[    1.416090]  mmcblk0: p1 p2
[    1.473754] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.482024] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.497783] devtmpfs: mounted
[    1.502975] Freeing unused kernel memory: 1024K
[    1.508198] Run /sbin/init as init process
INIT: version 2.88 booting
Starting udev
[    2.347551] udevd[95]: starting version 3.2.5
[    2.434981] udevd[96]: starting eudev-3.2.5
[    2.738166] input: gpio-decoder as /devices/platform/gpio-decoder/input/input0
[    2.885527] omap_rtc 44e3e000.rtc: already running
[    2.890128] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    3.011104] omap_rtc 44e3e000.rtc: registered as rtc0
[    3.364580] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    3.393300] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[    3.417894] omap-aes 53500000.aes: will run requests pump with realtime priority
[    3.459525] remoteproc remoteproc0: wkup_m3 is available
[    3.500390] remoteproc remoteproc0: powering up wkup_m3
[    3.522976] PM: Cannot get wkup_m3_ipc handle
[    3.530353] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 242888
[    3.530643] remoteproc remoteproc0: remote processor wkup_m3 is now up
[    3.530704] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
[    3.551979] PM: bootloader does not support rtc-only!
[    3.630273] davinci_mdio 4a332400.mdio: davinci mdio revision 1.6, bus freq 1000000
[    3.630293] libphy: 4a332400.mdio: probed
[    3.851994] davinci_mdio 4a332400.mdio: phy[3]: device 4a332400.mdio:03, driver TI TLK10X 10/100 Mbps PHY
[    3.895150] remoteproc remoteproc1: 4a334000.pru is available
[    3.933415] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[    3.970837] remoteproc remoteproc2: 4a338000.pru is available
[    3.976737] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
[    4.181230] prueth pruss_eth: pruss_fw_drop_untagged_vlan 0
[    4.186866] prueth pruss_eth: pruss MC Mask (Port 1) ff:ff:ff:ff:ff:ff
[    4.226329] prueth pruss_eth: TI PRU ethernet (type 0) driver initialized
INIT: Entering runlevel: 5
"onfiguring network interfaces... ifup: unknown method "static
Starting Lighttpd Web Server: daemonized server failed to start; check error log for details
lighttpd.
Starting internet superserver: inetd.

Poky (Yocto Project Reference Distro) 2.5.1 mgate-eth /dev/ttyS3

mgate-eth login:

8154.am335x-icev2-prueth-sdk060300-kernel4.19.94-singleemac.DTS.zip

  • Hello Murat,

    I am able to replicate your results on an AM437x. Give me a day or so to look at this.

    Regards,

    Nick

  • Hello Nick,

    Is there any progress in the issue at your side?

  • Hello Nick,

    Sorry for making pressure but the issue is in urgent status at my side. Is there any progress in the issue at your side?

  • Hello Murat,

    Understood. I will have another reply in a day or so.

    Regards,

    Nick

  • Hello Murat,

    It looks like the driver is missing a check for the emac pointer. This patch seems to fix the single EMAC issue on Linux Processor SDK 6.3 (Linux 4.19.94) when bringing the PRUETH port up with "ifconfig eth1 up":

    diff --git a/drivers/net/ethernet/ti/prueth.c
    b/drivers/net/ethernet/ti/prueth.c
    index a3b596f746aa..38e8a2507cbf 100644
    --- a/drivers/net/ethernet/ti/prueth.c
    +++ b/drivers/net/ethernet/ti/prueth.c
    @@ -1532,6 +1532,9 @@ static enum hrtimer_restart prueth_timer(struct hrtimer *timer)
    
             for (mac = PRUETH_MAC0; mac <= PRUETH_MAC1; mac++) {
                     emac = prueth->emac[mac];
    +               if (!emac)
    +                       continue;
    +
                     if (!(prueth->emac_configured & BIT(emac->port_id)))
                             break; /* port not enabled */
    

    Note that I did not try sending and receiving packets since I do not have physical access to my boards right now, so there may be other hidden single emac issues that I was not able to test.

    Regards,

    Nick

  • It seems as working, everything is ok for now after applying the patch you shared. Thanks for your valuable support!

    root@mgate-eth:~# ifconfig -a
    eth0      Link encap:Ethernet  HWaddr 2c:6b:7d:49:cd:19
              inet addr:10.10.10.209  Bcast:10.10.10.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:351 errors:0 dropped:0 overruns:0 frame:0
              TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:461214 (450.4 KiB)  TX bytes:460286 (449.4 KiB)
    
    lo        Link encap:Local Loopback
              LOOPBACK  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    sit0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
              NOARP  MTU:1480  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    root@mgate-eth:~# ethtool -i eth0
    driver: PRUSS Ethernet driver
    version: 0.2
    firmware-version:
    expansion-rom-version:
    bus-info:
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: no
    supports-priv-flags: no
    root@mgate-eth:~#
    root@mgate-eth:~# ping  -s 50000 -l 4 10.10.10.195
    PING 10.10.10.195 (10.10.10.195) 50000(50028) bytes of data.
    50008 bytes from 10.10.10.195: icmp_seq=1 ttl=128 time=9.50 ms
    50008 bytes from 10.10.10.195: icmp_seq=2 ttl=128 time=10.0 ms
    50008 bytes from 10.10.10.195: icmp_seq=3 ttl=128 time=9.58 ms
    50008 bytes from 10.10.10.195: icmp_seq=4 ttl=128 time=10.3 ms
    50008 bytes from 10.10.10.195: icmp_seq=5 ttl=128 time=9.96 ms
    50008 bytes from 10.10.10.195: icmp_seq=6 ttl=128 time=9.96 ms
    ^C
    --- 10.10.10.195 ping statistics ---
    6 packets transmitted, 6 received, 0% packet loss, time 2002ms
    rtt min/avg/max/mdev = 9.505/9.904/10.351/0.308 ms, pipe 4
    root@mgate-eth:~#