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/AM3358: Low performance on EMAC1

Part Number: AM3358

Tool/software: Linux

We have strange situation with AM3358BZCZA80. We made 2 designs on this SoC and got the same behavior on them. On first board we connect MAC0 to PHY and MAC1 to switch, in second design both MAC's to PHY. Schematics looks similar for both MAC's, but we catch some issues only on MAC1 in both design. Therefore we think that it may be system error.

  1. The Ethernet connection on MAC1 may not be established at power on sometimes. It's required to reboot to fix it.
  2. On MAC1 uplink speed is about 90-95 Mbps, while the downlink is low as 1-20 Mbps!
dop@dop-PC:~$ iperf -c 10.2.11.125 -i 1 -t 600
------------------------------------------------------------
Client connecting to 10.2.11.125, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 10.2.11.138 port 59678 connected with 10.2.11.125 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   640 KBytes  5.24 Mbits/sec
[  3]  1.0- 2.0 sec   512 KBytes  4.19 Mbits/sec
[  3]  2.0- 3.0 sec   256 KBytes  2.10 Mbits/sec
[  3]  3.0- 4.0 sec   384 KBytes  3.15 Mbits/sec
[  3]  4.0- 5.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  5.0- 6.0 sec   640 KBytes  5.24 Mbits/sec
[  3]  6.0- 7.0 sec   640 KBytes  5.24 Mbits/sec
[  3]  7.0- 8.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  8.0- 9.0 sec   384 KBytes  3.15 Mbits/sec
[  3]  9.0-10.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 10.0-11.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 11.0-12.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 12.0-13.0 sec   384 KBytes  3.15 Mbits/sec
[  3] 13.0-14.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 14.0-15.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 15.0-16.0 sec   384 KBytes  3.15 Mbits/sec
[  3] 16.0-17.0 sec   256 KBytes  2.10 Mbits/sec
[  3] 17.0-18.0 sec   384 KBytes  3.15 Mbits/sec
[  3] 18.0-19.0 sec   256 KBytes  2.10 Mbits/sec
[  3] 19.0-20.0 sec   384 KBytes  3.15 Mbits/sec
[  3] 20.0-21.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 21.0-22.0 sec   256 KBytes  2.10 Mbits/sec
[  3] 22.0-23.0 sec   640 KBytes  5.24 Mbits/sec
[  3] 23.0-24.0 sec   256 KBytes  2.10 Mbits/sec
[  3] 24.0-25.0 sec   896 KBytes  7.34 Mbits/sec
[  3] 25.0-26.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 26.0-27.0 sec   256 KBytes  2.10 Mbits/sec
[  3] 27.0-28.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 28.0-29.0 sec   256 KBytes  2.10 Mbits/sec
[  3] 29.0-30.0 sec   256 KBytes  2.10 Mbits/sec
[  3] 30.0-31.0 sec   256 KBytes  2.10 Mbits/sec
^C[  3] 31.0-32.0 sec   256 KBytes  2.10 Mbits/sec
[  3]  0.0-33.1 sec  9.88 MBytes  2.50 Mbits/sec
dop@dop-PC:~$ 

We think, that it may be configuration bug.
Can anybody recommend how to fix it?

  • What Linux version are you using? Please post the boot log. Also refer to this guide: processors.wiki.ti.com/.../5x_CPSW and post the results.
  • Boot log

    U-Boot SPL 2016.05-00122-g36bd4bc-dirty (Sep 29 2017 - 16:07:28)
    Trying to boot from NAND
    
    
    U-Boot 2016.05-00124-g992db30-dirty (Oct 11 2017 - 18:42:34 +0300) (DOP VER-0.0.1)
    
    AM335X-GP rev 2.1
    DRAM:  256 MiB
    NAND:  256 MiB
    MMC:   OMAP SD/MMC: 0
    Net:   eth0: ethernet@4a100000
    Hit any key to stop autoboot:  0
    
    NAND read: device 0 offset 0x280000, size 0x500000
     5242880 bytes read: OK
    ## Booting kernel from Legacy Image at 80200000 ...
       Image Name:   Linux-4.4.85-rt92
       Created:      2017-10-11  12:31:09 UTC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    3031296 Bytes = 2.9 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 8ef11af8
       Booting using the fdt blob at 0x8ef11af8
       Loading Kernel Image ... OK
       Loading Device Tree to 8ef05000, end 8ef103c4 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    [    0.000000] Linux version 4.4.85-rt92 (build@build-System-Product-Name) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #3 PREEMPT RT Wed Oct 11 15:31:04 MSK 2017
    [    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] Machine model: PLC210
    [    0.000000] cma: Reserved 48 MiB at 0x8b800000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (sgx neon )
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64960
    [    0.000000] Kernel command line: console=ttyS0,115200n8 root=ubi0:rfs rootfstype=ubifs rw ubi.mtd=5,2048 ubi.mtd=6,2048 consoleblank=0
    [    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: 201804K/262144K available (5607K kernel code, 272K rwdata, 1940K rodata, 244K init, 294K bss, 11188K 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 - 0xc0766f74   (7548 kB)
    [    0.000000]       .init : 0xc0767000 - 0xc07a4000   ( 244 kB)
    [    0.000000]       .data : 0xc07a4000 - 0xc07e8340   ( 273 kB)
    [    0.000000]        .bss : 0xc07e8340 - 0xc0831bcc   ( 295 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000]  Build-time adjustment of leaf fanout to 32.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] OMAP clockevent source: timer2 at 25000000 Hz
    [    0.000013] sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 85899345900ns
    [    0.000026] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76450417870 ns
    [    0.000032] OMAP clocksource: timer1 at 25000000 Hz
    [    0.000174] clocksource_probe: no matching clocksources found
    [    0.000354] Console: colour dummy device 80x30
    [    0.089142] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)
    [    0.089146] pid_max: default: 32768 minimum: 301
    [    0.089277] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.089283] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.090053] Initializing cgroup subsys io
    [    0.090074] Initializing cgroup subsys memory
    [    0.090111] Initializing cgroup subsys devices
    [    0.090123] Initializing cgroup subsys freezer
    [    0.090135] Initializing cgroup subsys perf_event
    [    0.090144] Initializing cgroup subsys pids
    [    0.090223] CPU: Testing write buffer coherency: ok
    [    0.090616] Setting up static identity map for 0x80008200 - 0x80008260
    [    0.093397] devtmpfs: initialized
    [    0.105184] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.172589] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.172638] futex hash table entries: 256 (order: 1, 8192 bytes)
    [    0.176989] pinctrl core: initialized pinctrl subsystem
    [    0.178564] NET: Registered protocol family 16
    [    0.181246] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.209173] cpuidle: using governor ladder
    [    0.239157] cpuidle: using governor menu
    [    0.244542] OMAP GPIO hardware version 0.1
    [    0.253879] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nandflash_pins_s0, deferring probe
    [    0.255865] hw-breakpoint: debug architecture 0x4 unsupported.
    [    0.299881] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.302087] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [    0.302246] pps_core: LinuxPPS API ver. 1 registered
    [    0.302254] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.302286] PTP clock support registered
    [    0.302345] EDAC MC: Ver: 3.0.0
    [    0.303755] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.305340] clocksource: Switched to clocksource timer1
    [    0.318818] NET: Registered protocol family 2
    [    0.319745] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.319796] TCP bind hash table entries: 2048 (order: 3, 49152 bytes)
    [    0.319897] TCP: Hash tables configured (established 2048 bind 2048)
    [    0.319988] UDP hash table entries: 256 (order: 2, 16384 bytes)
    [    0.320027] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
    [    0.320256] NET: Registered protocol family 1
    [    0.320786] RPC: Registered named UNIX socket transport module.
    [    0.320803] RPC: Registered udp transport module.
    [    0.320810] RPC: Registered tcp transport module.
    [    0.320816] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.321764] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [    0.332809] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.333618] NFS: Registering the id_resolver key type
    [    0.333691] Key type id_resolver registered
    [    0.333700] Key type id_legacy registered
    [    0.333782] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.334831] aufs 4.4
    [    0.338581] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
    [    0.338615] io scheduler noop registered
    [    0.338630] io scheduler deadline registered
    [    0.338938] io scheduler cfq registered (default)
    [    0.340347] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    0.418902] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    0.423295] console [ttyS0] disabled
    [    0.423452] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
    [    1.000209] console [ttyS0] enabled
    [    1.005849] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    1.020350] loop: module loaded
    [    1.027535] libphy: Fixed MDIO Bus: probed
    [    1.031853] ksz8895 spi2.0: INFO: Micrel KSZ8895 driver version 1.0.5b
    [    1.038530] ksz8895 spi2.0: INFO: Using hardware reset (GPIO 60)
    [    1.055994] ksz8895 spi2.0: INFO: Family ID 0x95, chip ID 0x6, revision 0x0
    [    1.062993] ksz8895 spi2.0: INFO: IRQ 94
    [    1.066935] ksz8895 spi2.0: INFO: STP disabled
    [    1.071398] ksz8895 spi2.0: INFO: SMTXC clock phase normal
    [    1.076910] ksz8895 spi2.0: INFO: 5 ports, port 4 connected to host
    [    1.086268] libphy: KSZ8895 switch MII bus: probed
    [    1.136726] ksz8895 spi2.0: INFO: PHY[0] = 0xcf49e800 (whole switch)
    [    1.143124] ksz8895 spi2.0: INFO: PHY[1] = 0xcf49ec00 (port 0)
    [    1.148988] ksz8895 spi2.0: INFO: PHY[2] = 0xcf49f000 (port 1)
    [    1.154848] ksz8895 spi2.0: INFO: PHY[3] = 0xcf49f400 (port 2)
    [    1.160710] ksz8895 spi2.0: INFO: PHY[4] = 0xcf49f800 (port 3)
    [    1.166572] ksz8895 spi2.0: INFO: PHY[5] = 0xcf49fc00 (port 4)
    [    1.235369] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    1.241512] davinci_mdio 4a101000.mdio: detected phy mask ffffffc1
    [    1.250845] libphy: 4a101000.mdio: probed
    [    1.254891] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver Micrel KSZ8895 switch
    [    1.264208] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02, driver Micrel KSZ8895 switch
    [    1.273476] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver Micrel KSZ8895 switch
    [    1.282740] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver Micrel KSZ8895 switch
    [    1.292006] davinci_mdio 4a101000.mdio: phy[5]: device 4a101000.mdio:05, driver Micrel KSZ8895 switch
    [    1.302611] cpsw 4a100000.ethernet: Detected MACID = 60:64:05:3e:03:cf
    [    1.309394] cpsw 4a100000.ethernet: cpts: overflow check period 850
    [    1.316589] cpsw 4a100000.ethernet: cpsw: Detected MACID = 60:64:05:3e:03:d1
    [    1.325300] mousedev: PS/2 mouse device common for all mice
    [    1.331760] i2c /dev entries driver
    [    1.336248] cpuidle: enable-method property 'ti,am3352' found operations
    [    1.343807] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    1.352974] NET: Registered protocol family 10
    [    1.359234] sit: IPv6 over IPv4 tunneling driver
    [    1.364791] NET: Registered protocol family 17
    [    1.369741] Key type dns_resolver registered
    [    1.374218] omap_voltage_late_init: Voltage driver support not added
    [    1.383947] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [    1.389225] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.397168] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xda
    [    1.403554] nand: Macronix MX30LF2G18AC
    [    1.407417] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [    1.415053] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [    1.420472] 7 ofpart partitions found on MTD device 8000000.nand
    [    1.426511] Creating 7 MTD partitions on "8000000.nand":
    [    1.431856] 0x000000000000-0x000000080000 : "SPL"
    [    1.438538] 0x000000080000-0x000000220000 : "u-boot"
    [    1.446316] 0x000000220000-0x000000260000 : "logo"
    [    1.452655] 0x000000260000-0x000000280000 : "u-boot-env"
    [    1.459435] 0x000000280000-0x000000780000 : "kernel"
    [    1.469950] 0x000000780000-0x000006000000 : "rootfs"
    [    1.549127] 0x000006000000-0x000008000000 : "userfs"
    [    1.619863] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    1.626265] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    1.631599] vmmc: supplied by vbat
    [    1.676090] vdd_mpu: supplied by vbat
    [    1.684850] ubi0: attaching mtd5
    [    2.120538] ubi0: scanning is finished
    [    2.132338] ubi0: attached mtd5 (name "rootfs", size 88 MiB)
    [    2.138050] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
    [    2.144955] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [    2.151685] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
    [    2.158677] ubi0: good PEBs: 708, bad PEBs: 0, corrupted PEBs: 0
    [    2.164708] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
    [    2.171963] ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
    [    2.180352] ubi0: available PEBs: 0, total reserved PEBs: 708, PEBs reserved for bad PEB handling: 40
    [    2.189624] ubi0: background thread "ubi_bgt0d" started, PID 87
    [    2.195375] ubi1: attaching mtd6
    [    2.354515] ubi1: scanning is finished
    [    2.365740] ubi1: attached mtd6 (name "userfs", size 32 MiB)
    [    2.371438] ubi1: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
    [    2.378343] ubi1: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [    2.385074] ubi1: VID header offset: 2048 (aligned 2048), data offset: 4096
    [    2.392064] ubi1: good PEBs: 256, bad PEBs: 0, corrupted PEBs: 0
    [    2.398096] ubi1: user volume: 1, internal volumes: 1, max. volumes count: 128
    [    2.405351] ubi1: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
    [    2.413738] ubi1: available PEBs: 0, total reserved PEBs: 256, PEBs reserved for bad PEB handling: 40
    [    2.423005] ubi1: background thread "ubi_bgt1d" started, PID 88
    [    2.429373] pinctrl-single 44e10800.pinmux: pin 44e108d8.0 already requested by 44e10800.pinmux; cannot claim for gpio_keys
    [    2.440572] pinctrl-single 44e10800.pinmux: pin-54 (gpio_keys) status -22
    [    2.447398] pinctrl-single 44e10800.pinmux: could not request pin 54 (44e108d8.0) from group keys_s0  on device pinctrl-single
    [    2.458841] gpio-keys gpio_keys: Error applying setting, reverse things back
    [    2.466830] input: gpio_keys as /devices/platform/gpio_keys/input/input0
    [    2.474292] hctosys: unable to open rtc device (rtc0)
    [    2.495491] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 92
    [    2.545212] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rfs"
    [    2.552407] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [    2.562370] UBIFS (ubi0:0): FS size: 82915328 bytes (79 MiB, 653 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
    [    2.572850] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
    [    2.578715] UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID F85CCD67-00D3-474D-9D0A-2A39276E3492, small LPT model
    [    2.591795] VFS: Mounted root (ubifs filesystem) on device 0:14.
    [    2.599538] devtmpfs: mounted
    [    2.602923] Freeing unused kernel memory: 244K
    INIT: version 2.88 booting
    [    2.855532] UBIFS (ubi1:0): background thread "ubifs_bgt1_0" started, PID 103
    [    2.889289] UBIFS (ubi1:0): recovery needed
    [    2.957759] UBIFS (ubi1:0): recovery completed
    [    2.962371] UBIFS (ubi1:0): UBIFS: mounted UBI device 1, volume 0, name "ufs"
    [    2.969544] UBIFS (ubi1:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [    2.979506] UBIFS (ubi1:0): FS size: 25522176 bytes (24 MiB, 201 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
    [    2.989987] UBIFS (ubi1:0): reserved for root: 0 bytes (0 KiB)
    [    2.995852] UBIFS (ubi1:0): media format: w4/r0 (latest is w4/r0), UUID 77C31BB0-8E29-49DA-84FB-9769A0DEB9E5, small LPT model
    [    3.114865] aufs test_add:277:mount[106]: uid/gid/perm /mnt/etcro 0/0/0755, 0/0/01777
    Starting udev
    [    3.361843] udevd[125]: starting version 3.2
    [    3.390687] random: udevd: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
    [    3.403008] random: udevd: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
    [    3.419136] random: udevd: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
    [    3.428416] random: udevd: uninitialized urandom read (16 bytes read, 13 bits of entropy available)
    [    3.507171] udevd[126]: starting eudev-3.2
    [    4.030175] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
    [    4.097779] 47401300.usb-phy supply vcc not found, using dummy regulator
    [    4.145638] lm75 0-0048: hwmon0: sensor 'tmp75'
    [    4.163052] 47401b00.usb-phy supply vcc not found, using dummy regulator
    [    4.689123] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
    [    5.129755] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
    [    5.348051] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
    [    5.374741]  remoteproc0: wkup_m3 is available
    [    5.412297]  remoteproc0: Note: remoteproc is still under development and considered experimental.
    [    5.421719] PM: Cannot get wkup_m3_ipc handle
    [    5.533294]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [    5.671653] PM: bootloader does not support rtc-only!
    [    5.812185]  remoteproc0: powering up wkup_m3
    [    5.817914]  remoteproc0: Booting fw image am335x-pm-firmware.elf, size 224276
    [    5.919413]  remoteproc0: remote processor wkup_m3 is now up
    [    5.919473] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
    [    7.353947] usbcore: registered new interface driver usbfs
    [    7.369643] usbcore: registered new interface driver hub
    [    7.376700] usbcore: registered new device driver usb
    [    7.440762] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver
    [    7.446761] musb-hdrc musb-hdrc.0.auto: new USB bus registered, assigned bus number 1
    [    7.456966] hub 1-0:1.0: USB hub found
    [    7.460813] hub 1-0:1.0: 1 port detected
    [    7.473245] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
    [    7.479070] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 2
    [    7.489068] hub 2-0:1.0: USB hub found
    [    7.492919] hub 2-0:1.0: 1 port detected
    [    7.602847] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" stops
    sh: is: unknown operand
    mkdir: can't create directory '/var/lock/': Too many levels of symbolic links
    chown: /var/lock/subsys: Too many levels of symbolic links
    Failed to set owner -root- for -/var/lock/subsys-.
    chmod: /var/lock/subsys: Too many levels of symbolic links
    Failed to set mode -0755- for -/var/lock/subsys-.
    [    8.074846] musb-hdrc musb-hdrc.0.auto: VBUS_ERROR in a_wait_vrise (80, <SessEnd), retry #3, port1 0008010c
    urandom start: failed.
    Wed Oct 11 12:32:37 UTC 2017
    INIT: Entering runlevel: 5s: line 3: run-postinsts: not found
    Configuring network interfaces... [    9.096791] net eth0: initializing cpsw version 1.12 (0)
    [    9.102159] net eth0: initialized cpsw ale version 1.4
    [    9.107410] net eth0: ALE Table size 1024
    [    9.185935] net eth0: phy found : id is : 0x221450
    [    9.199680] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    udhcpc (v1.24.1) started
    Setting IP address 0.0.0.0 on eth0
    Sending discover...
    [   12.186360] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [   12.194508] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    Sending discover...
    Sending select for 10.2.4.9...
    Lease of 10.2.4.9 obtained, lease time 7320
    Setting ----- IP address 10.2.4.9 on eth0
    ifconfig: bad address '+'
    Deleting routers
    route: SIOCDELRT: No such process
    Adding router 10.2.1.1
    Recreating /etc/resolv.conf
     Adding DNS server 10.2.1.2
     Adding DNS server 10.2.1.4
    [   12.512039] net eth1: initializing cpsw version 1.12 (0)
    [   12.520268] net eth1: phy found : id is : 0x0
    [   12.529196] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
    done.
    [   12.639904] random: dbus-uuidgen: uninitialized urandom read (12 bytes read, 21 bits of entropy available)
    [   12.649869] random: dbus-uuidgen: uninitialized urandom read (8 bytes read, 21 bits of entropy available)
    Starting system message bus: [   12.703487] random: dbus-daemon: uninitialized urandom read (12 bytes read, 21 bits of entropy available)
    [   12.755091] random: dbus-daemon: uninitialized urandom read (12 bytes read, 21 bits of entropy available)
    dbus.
    Starting Dropbear SSH server: [   12.918606] random: dropbear: uninitialized urandom read (32 bytes read, 22 bits of entropy available)
    dropbear.
    starting DNS forwarder and DHCP server: dnsmasq... [   12.994841] random: dnsmasq: uninitialized urandom read (128 bytes read, 22 bits of entropy available)
    done.
    Starting network management services
    snmpd[721]: NET-SNMP version 5.7.3
    [   14.515638] cpsw 4a100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control off
    [   14.523574] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    
    
               PLC210
    
    plc210 login: root
    root@plc210:~#
    root@plc210:~#
    root@plc210:~#
    root@plc210:~#
    root@plc210:~# uname -a
    Linux plc210 4.4.85-rt92 #3 PREEMPT RT Wed Oct 11 15:31:04 MSK 2017 armv7l GNU/Linux
    root@plc210:~#
    root@plc210:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 60:64:05:3E:03:CF
              inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: fe80::6264:5ff:fe3e:3cf%759764/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:96810 errors:0 dropped:167 overruns:0 frame:0
              TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:6461758 (6.1 MiB)  TX bytes:3076 (3.0 KiB)
              Interrupt:173
    
    eth1      Link encap:Ethernet  HWaddr 60:64:05:3E:03:D1
              inet addr:10.2.11.125  Bcast:10.255.255.255  Mask:255.0.0.0
              inet6 addr: fe80::6264:5ff:fe3e:3d1%759764/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:97556 errors:0 dropped:167 overruns:0 frame:0
              TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:6551401 (6.2 MiB)  TX bytes:44148 (43.1 KiB)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%759764/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:8 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1
              RX bytes:488 (488.0 B)  TX bytes:488 (488.0 B)
    
    root@plc210:~#
    root@plc210:~# ethtool eth1
    Settings for eth1:
            Supported ports: [ TP AUI BNC MII FIBRE ]
            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
            Link partner advertised link modes:  100baseT/Full
            Link partner advertised pause frame use: No
            Link partner advertised auto-negotiation: No
            Speed: 100Mb/s
            Duplex: Full
            Port: MII
            PHYAD: 0
            Transceiver: external
            Auto-negotiation: on
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000000 (0)
    
            Link detected: yes
    root@plc210:~#
    root@plc210:~#
    root@plc210:~#
    root@plc210:~# ethtool -S eth1
    NIC statistics:
         Good Rx Frames: 272036
         Broadcast Rx Frames: 195954
         Multicast Rx Frames: 70419
         Pause Rx Frames: 0
         Rx CRC Errors: 0
         Rx Align/Code Errors: 0
         Oversize Rx Frames: 0
         Rx Jabbers: 0
         Undersize (Short) Rx Frames: 0
         Rx Fragments: 0
         Rx Octets: 23839989
         Good Tx Frames: 113
         Broadcast Tx Frames: 5
         Multicast Tx Frames: 24
         Pause Tx Frames: 0
         Deferred Tx Frames: 0
         Collisions: 0
         Single Collision Tx Frames: 0
         Multiple Collision Tx Frames: 0
         Excessive Collisions: 0
         Late Collisions: 0
         Tx Underrun: 0
         Carrier Sense Errors: 0
         Tx Octets: 99838
         Rx + Tx 64 Octet Frames: 171304
         Rx + Tx 65-127 Octet Frames: 67628
         Rx + Tx 128-255 Octet Frames: 29359
         Rx + Tx 256-511 Octet Frames: 3027
         Rx + Tx 512-1023 Octet Frames: 488
         Rx + Tx 1024-Up Octet Frames: 343
         Net Octets: 23939827
         Rx Start of Frame Overruns: 0
         Rx Middle of Frame Overruns: 0
         Rx DMA Overruns: 0
         Rx DMA chan: head_enqueue: 1
         Rx DMA chan: tail_enqueue: 196188
         Rx DMA chan: pad_enqueue: 0
         Rx DMA chan: misqueued: 0
         Rx DMA chan: desc_alloc_fail: 0
         Rx DMA chan: pad_alloc_fail: 0
         Rx DMA chan: runt_receive_buf: 0
         Rx DMA chan: runt_transmit_buf: 0
         Rx DMA chan: empty_dequeue: 0
         Rx DMA chan: busy_dequeue: 181208
         Rx DMA chan: good_dequeue: 196061
         Rx DMA chan: requeue: 0
         Rx DMA chan: teardown_dequeue: 0
         Tx DMA chan: head_enqueue: 107
         Tx DMA chan: tail_enqueue: 6
         Tx DMA chan: pad_enqueue: 0
         Tx DMA chan: misqueued: 6
         Tx DMA chan: desc_alloc_fail: 0
         Tx DMA chan: pad_alloc_fail: 0
         Tx DMA chan: runt_receive_buf: 0
         Tx DMA chan: runt_transmit_buf: 12
         Tx DMA chan: empty_dequeue: 107
         Tx DMA chan: busy_dequeue: 0
         Tx DMA chan: good_dequeue: 113
         Tx DMA chan: requeue: 0
         Tx DMA chan: teardown_dequeue: 0
    root@plc210:~#
    root@plc210:~#
    root@plc210:~#
    root@plc210:~# ethtool eth0
    Settings for eth0:
            Supported ports: [ TP MII ]
            Supported link modes:   10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
            Supported pause frame use: Symmetric
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
            Advertised pause frame use: Symmetric
            Advertised auto-negotiation: Yes
            Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                                 100baseT/Half 100baseT/Full
            Link partner advertised pause frame use: Symmetric
            Link partner advertised auto-negotiation: No
            Speed: 100Mb/s
            Duplex: Full
            Port: MII
            PHYAD: 5
            Transceiver: external
            Auto-negotiation: on
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000000 (0)
    
            Link detected: yes
    root@plc210:~#
    root@plc210:~#
    root@plc210:~#
    root@plc210:~# ethtool -S eth0
    NIC statistics:
         Good Rx Frames: 277097
         Broadcast Rx Frames: 199676
         Multicast Rx Frames: 71581
         Pause Rx Frames: 0
         Rx CRC Errors: 0
         Rx Align/Code Errors: 0
         Oversize Rx Frames: 0
         Rx Jabbers: 0
         Undersize (Short) Rx Frames: 0
         Rx Fragments: 0
         Rx Octets: 24379489
         Good Tx Frames: 202
         Broadcast Tx Frames: 5
         Multicast Tx Frames: 24
         Pause Tx Frames: 0
         Deferred Tx Frames: 0
         Collisions: 0
         Single Collision Tx Frames: 0
         Multiple Collision Tx Frames: 0
         Excessive Collisions: 0
         Late Collisions: 0
         Tx Underrun: 0
         Carrier Sense Errors: 0
         Tx Octets: 221622
         Rx + Tx 64 Octet Frames: 174578
         Rx + Tx 65-127 Octet Frames: 68782
         Rx + Tx 128-255 Octet Frames: 29837
         Rx + Tx 256-511 Octet Frames: 3099
         Rx + Tx 512-1023 Octet Frames: 492
         Rx + Tx 1024-Up Octet Frames: 511
         Net Octets: 24601111
         Rx Start of Frame Overruns: 0
         Rx Middle of Frame Overruns: 0
         Rx DMA Overruns: 0
         Rx DMA chan: head_enqueue: 1
         Rx DMA chan: tail_enqueue: 200001
         Rx DMA chan: pad_enqueue: 0
         Rx DMA chan: misqueued: 0
         Rx DMA chan: desc_alloc_fail: 0
         Rx DMA chan: pad_alloc_fail: 0
         Rx DMA chan: runt_receive_buf: 0
         Rx DMA chan: runt_transmit_buf: 0
         Rx DMA chan: empty_dequeue: 0
         Rx DMA chan: busy_dequeue: 184790
         Rx DMA chan: good_dequeue: 199874
         Rx DMA chan: requeue: 0
         Rx DMA chan: teardown_dequeue: 0
         Tx DMA chan: head_enqueue: 196
         Tx DMA chan: tail_enqueue: 6
         Tx DMA chan: pad_enqueue: 0
         Tx DMA chan: misqueued: 6
         Tx DMA chan: desc_alloc_fail: 0
         Tx DMA chan: pad_alloc_fail: 0
         Tx DMA chan: runt_receive_buf: 0
         Tx DMA chan: runt_transmit_buf: 17
         Tx DMA chan: empty_dequeue: 196
         Tx DMA chan: busy_dequeue: 0
         Tx DMA chan: good_dequeue: 202
         Tx DMA chan: requeue: 0
         Tx DMA chan: teardown_dequeue: 0
    root@plc210:~#
    root@plc210:~#
    root@plc210:~#
    

    And some config for information:
    ifconfig & Ipref

    root@plc210:~# uname -a
    Linux plc210 4.4.85-rt92 #2 PREEMPT RT Sat Sep 30 17:54:35 MSK 2017 armv7l GNU/Linux
    
    root@plc210:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr D0:5F:B8:9E:25:44
              UP 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)
              Interrupt:173
    
    eth1      Link encap:Ethernet  HWaddr D0:5F:B8:9E:25:46
              inet addr:192.168.0.1  Bcast:192.168.255.255  Mask:255.255.0.0
              inet6 addr: fe80::d25f:b8ff:fe9e:2546%759764/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:239 errors:0 dropped:1 overruns:0 frame:0
              TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:15612 (15.2 KiB)  TX bytes:578 (578.0 B)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%759764/128 Scope:Host
              UP LOOPBACK RUNNING  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:1
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    root@plc210:~# ifconfig eth1 10.2.11.125
    
    root@plc210:~# ping 10.2.1.1
    PING 10.2.1.1 (10.2.1.1): 56 data bytes
    64 bytes from 10.2.1.1: seq=0 ttl=255 time=1.822 ms
    64 bytes from 10.2.1.1: seq=1 ttl=255 time=0.872 ms
    64 bytes from 10.2.1.1: seq=2 ttl=255 time=0.873 ms
    ^C
    --- 10.2.1.1 ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 0.872/1.189/1.822 ms
    
    root@plc210:~# iperf -s
    ------------------------------------------------------------
    Server listening on TCP port 5001
    TCP window size: 85.3 KByte (default)
    ------------------------------------------------------------
    [  4] local 10.2.11.125 port 5001 connected with 10.2.11.138 port 59678
    [ ID] Interval       Transfer     Bandwidth
    [  4]  0.0-33.1 sec  9.88 MBytes  2.50 Mbits/sec
    
    root@plc210:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr D0:5F:B8:9E:25:44
              UP 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)
              Interrupt:173
    
    eth1      Link encap:Ethernet  HWaddr D0:5F:B8:9E:25:46
              inet addr:10.2.11.125  Bcast:10.255.255.255  Mask:255.0.0.0
              inet6 addr: fe80::d25f:b8ff:fe9e:2546%759764/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:13669 errors:0 dropped:22 overruns:0 frame:0
              TX packets:5343 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:11295111 (10.7 MiB)  TX bytes:371668 (362.9 KiB)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%759764/128 Scope:Host
              UP LOOPBACK RUNNING  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:1
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    root@plc210:~#

    DTSI

    IN am33xx.dtsi :
    
    		mac: ethernet@4a100000 {
    			compatible = "ti,am335x-cpsw","ti,cpsw";
    			ti,hwmods = "cpgmac0";
    			clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
    			clock-names = "fck", "cpts";
    			cpdma_channels = <8>;
    			ale_entries = <1024>;
    			bd_ram_size = <0x2000>;
    			no_bd_ram = <0>;
    			mac_control = <0x20>;
    			slaves = <2>;
    			active_slave = <0>;
    			cpts_clock_mult = <0x80000000>;
    			cpts_clock_shift = <29>;
    			reg = <0x4a100000 0x800
    			       0x4a101200 0x100>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			interrupt-parent = <&intc>;
    			/*
    			 * c0_rx_thresh_pend
    			 * c0_rx_pend
    			 * c0_tx_pend
    			 * c0_misc_pend
    			 */
    			interrupts = <40 41 42 43>;
    			ranges;
    			syscon = <&scm_conf>;
    			status = "disabled";
    
    			davinci_mdio: mdio@4a101000 {
    				compatible = "ti,cpsw-mdio";
    				#address-cells = <1>;
    				#size-cells = <0>;
    				ti,hwmods = "davinci_mdio";
    				bus_freq = <1000000>;
    				reg = <0x4a101000 0x100>;
    				status = "disabled";
    			};
    
    			cpsw_emac0: slave@4a100200 {
    				/* Filled in by U-Boot */
    				mac-address = [ 00 00 00 00 00 00 ];
    			};
    
    			cpsw_emac1: slave@4a100300 {
    				/* Filled in by U-Boot */
    				mac-address = [ 00 00 00 00 00 00 ];
    				
    				fixed-link {
            			    speed = <100>;
            			    full-duplex;
    				};
    
    			};
    
    			phy_sel: cpsw-phy-sel@44e10650 {
    				compatible = "ti,am3352-cpsw-phy-sel";
    				reg= <0x44e10650 0x4>;
    				reg-names = "gmii-sel";
    			};
    		};
    
    
    
    
    
    IN PLC210.dts :
    
    
    
    	cpsw_default_1: cpsw_default_1 {
    		pinctrl-single,pins = <	
    
    			/* Slave 1 */				
    			0x10c ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (H17) gmii1_crs.rmii1_crs_dv */
    			0x110 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (J15) gmii1_rxer.rmii1_rxer */
    			0x114 ( PIN_OUTPUT_PULLDOWN | MUX_MODE1 ) /* (J16) gmii1_txen.rmii1_txen */
    			0x128 ( PIN_OUTPUT_PULLDOWN | MUX_MODE1 ) /* (K17) gmii1_txd0.rmii1_txd0 */
    			0x124 ( PIN_OUTPUT_PULLDOWN | MUX_MODE1 ) /* (K16) gmii1_txd1.rmii1_txd1 */
    			0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
    			0x13c ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    			0x144 ( PIN_INPUT_PULLDOWN | MUX_MODE0 ) /* (H18) rmii1_refclk.rmii1_refclk */
    			
    			/* Slave 2 */
    			0x88 ( PIN_INPUT_PULLDOWN | MUX_MODE2 ) /* (T13) gpmc_csn3.rmii2_crs_dv */
    			0x74 ( PIN_INPUT_PULLDOWN | MUX_MODE3 ) /* (U17) gpmc_wpn.rmii2_rxer */
    			0x40 ( PIN_OUTPUT_PULLDOWN | MUX_MODE3 ) /* (R13) gpmc_a0.rmii2_txen */
    			0x54 ( PIN_OUTPUT_PULLDOWN | MUX_MODE3 ) /* (V15) gpmc_a5.rmii2_txd0 */
    			0x50 ( PIN_OUTPUT_PULLDOWN | MUX_MODE3 ) /* (R14) gpmc_a4.rmii2_txd1 */
    			0x6c ( PIN_INPUT_PULLDOWN | MUX_MODE3 ) /* (V17) gpmc_a11.rmii2_rxd0 */
    			0x68 ( PIN_INPUT_PULLDOWN | MUX_MODE3 ) /* (T16) gpmc_a10.rmii2_rxd1 */
    			0x108 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (H16) gmii1_col.rmii2_refclk */
    		>;
    	};
    
    
    	davinci_mdio_default: davinci_mdio_default {
    		pinctrl-single,pins = <
    			0x14c ( PIN_OUTPUT | MUX_MODE0 ) /* (M18) mdio_clk.mdio_clk */
    			0x148 ( PIN_INPUT | MUX_MODE0 ) /* (M17) mdio_data.mdio_data */
    		>;
    	};
    
    
    &phy_sel {
    	rmii-clock-ext; 
    };
    
    &mac {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&cpsw_default_1>;
    	dual_emac;
    	status = "okay";	
    };
    
    &davinci_mdio {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&davinci_mdio_default>;
    	pinctrl-1 = <&davinci_mdio_sleep>;	
    	status = "okay";	
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <0x05>;
    	phy-mode = "rmii";
    	dual_emac_res_vlan = <1>;
    };
    
    
    &cpsw_emac1 {
    
    	phy-mode = "rmii"; 	
    	dual_emac_res_vlan = <2>;
    };

  • Looking throught the interface port statistics I do not seen any issues with the packet ingress/egress such as overruns or CRC errors. I agree that is a really low bit rate but the interface looks to be operating correctly just slow. Check to see if the processor is being loaded by perhaps another task. If iperf is not taking much time then perhaps use wireshark on the link partnet if possible to see the rate at which packets are coming out.

    Another thing I see are the phy definitions are showing fixed phy but emac 0 is showing a phy address of 5 which is showing as one of the phys on the switch. emac 0 is not showing as a fixed phy. You may have to contact the switch manufacturer for DTS examples. They will also be able to explain if the results showing up in the console log are the expected messages.
  • Hello Schuyler,

    We made some additional research and got interested results.
    We replace RMII switch signals from MAC1 RMII to MAC0 RMII and all working good now. So we think, that it may be hardware issue in specific configuration : 2x RMII.
    We tried to found designs with 2 MAC in RMII configuration but couldn't. Are there any designs on AM3358 with 2 MAC? All that we can found using just 1 MAC or 2x RGMII.
    Can you approve the hypothesis?

  • Please re-run your test until it fails (reboot needed). Before rebooting, run ETHTOOL and provide the output here.

    My assumption based on what you've provided thus far is that the MAC1 PHY is latching an incorrect configuration.
  • Hello DK,

    We waiting for your comments.

  • It's need to be pointed that we identified the dependence between initial configuration of interface and stability of it.
    There are some boards working better, than other. At the same time if we'll run "ifconfig eth1 down" + "ifconfig eth1 up" some boards can start working correctly. But it works in both ways: same commands can lead to incorrect working on good started boards. So we think that it may be an issue in configuration at start moment.
  • Hi,

    The stability condition you point to could be related to the PHY latching the -DK- pointed too.

    I re-read the post again what is the source of the kernel that you are using? The TI kernel tree or mainline? The kernel configuration that comes with mainline is not the same one in the TI-SDK. You might try the latest kernel image from the TI SDK with your DTS file and see if you are still seeing the poor performance.

    Regards,
    Schuyler
  • We using last core from SDK:
    git clone -b ti-rt-linux-4.4.y git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
  • Hi,
    Which kernel config did you use?

    Below is the link that shows how to create the kernel configuration for the kernel:

    processors.wiki.ti.com/.../Linux_Kernel_Users_Guide

    Are you still seeing the low bit rates? As I mentioned earlier were you able to contact the switch manufacturer about an example DTS?

    TI is not able to answer detailed questions on AM processors MAC connections to an external switch as this not a supported interface connection method. Therefore I can only offer some suggestions.

    First I will note here is that the setup you have is that the mdio driver and cpsw MAC driver are expecting a 1 to 1 basis, one MAC talks to one PHY. Secondly you might try changing the MAC phy mode to fixed instead of rmii, there are examples in the kernel documentation on how to do this. I would offer that essentially the MDIO between the switch and the processor should not be used but that is just an opinion.

    Best Regards,
    Schuyler
  • Hello Schuyler,
    The main question here, that we use same config for both MAC with same external PHY, but MAC1 working much slower that MAC0. We dont' understand why it happens.
  • Hi,
    I re-read the post so I want to make sure I understand what the current configuration, both macs are in use, in RMII mode, and connected to single PHYs not a switch. You are still seeing the < 10Mbps performance on both ports?

    Let's look at these registers with devmem2 for 0x4a100D84 and 0x4a100Dc4, this is the mac control register for eth0 and eth1. This looks like the MAC interfaces are operating at 10Mbps instead of 100Mbps. Could you look at RX Clk and TX clks with an oscilloscope for both interfaces and attach the scope captures to this thread?

    Thanks,
    Schuyler
  • Please also post the PHY you are using and the total trace-length of each signal in the problematic RMII interface.

  • Signal Color legend:        RX1       RX0        REFCLK

    Signal Color legend:    TX1       TX0        REFCLK

    These signals scoped on switch pins.

    Routes length:

    Route Length [mm]
    REFCLK 85,777
    RX0 74,268
    RX1 76,298
    CRS_DV 82,474
    TX0 72,824
    TX1 84,16
    TX_EN 67,773

     

  • Some configs in addition:

    root@plc:/mnt/ufs/home/root# ifconfig
    eth0      Link encap:Ethernet  HWaddr 60:64:05:3E:66:28
              inet addr:10.2.5.15  Bcast:10.2.255.255  Mask:255.255.0.0
              inet6 addr: fe80::6264:5ff:fe3e:6628%759764/64 Scope:Link
              inet6 addr: fd42:49f7:c362:630:6264:5ff:fe3e:6628%759764/64 Scope:Global
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:1457 errors:0 dropped:2 overruns:0 frame:0
              TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:96371 (94.1 KiB)  TX bytes:1974 (1.9 KiB)
              Interrupt:176
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%759764/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:8 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1
              RX bytes:488 (488.0 B)  TX bytes:488 (488.0 B)
    
    root@plc:/mnt/ufs/home/root# devmem2 0x4a100D84
    /dev/mem opened.
    Memory mapped at address 0xb6f19000.
    Read at address  0x4A100D84 (0xb6f19d84): 0x00008021
    root@plc:/mnt/ufs/home/root# devmem2 0x4a100Dc4
    /dev/mem opened.
    Memory mapped at address 0xb6fdf000.
    Read at address  0x4A100DC4 (0xb6fdfdc4): 0x00000000
    
    root@plc:/mnt/ufs/home/root# ifconfig eth1 192.168.10.1
    [  111.314943] net eth1: initializing cpsw version 1.12 (0)
    [  111.323311] net eth1: phy found : id is : 0x0
    [  111.333193] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
    root@plc:/mnt/ufs/home/root# 
    [  113.313421] cpsw 4a100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
    [  113.321520] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    
    root@plc:/mnt/ufs/home/root# ifconfig
    eth0      Link encap:Ethernet  HWaddr 60:64:05:3E:66:28
              inet addr:10.2.5.15  Bcast:10.2.255.255  Mask:255.255.0.0
              inet6 addr: fe80::6264:5ff:fe3e:6628%759764/64 Scope:Link
              inet6 addr: fd42:49f7:c362:630:6264:5ff:fe3e:6628%759764/64 Scope:Global
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:7865 errors:0 dropped:17 overruns:0 frame:0
              TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:519281 (507.1 KiB)  TX bytes:3414 (3.3 KiB)
              Interrupt:176
    
    eth1      Link encap:Ethernet  HWaddr 60:64:05:3E:66:2A
              inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
              inet6 addr: fe80::6264:5ff:fe3e:662a%759764/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%759764/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:8 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1
              RX bytes:488 (488.0 B)  TX bytes:488 (488.0 B)
    
    root@plc:/mnt/ufs/home/root# devmem2 0x4a100D84
    /dev/mem opened.
    Memory mapped at address 0xb6fe9000.
    Read at address  0x4A100D84 (0xb6fe9d84): 0x00008021
    
    root@plc:/mnt/ufs/home/root# devmem2 0x4a100Dc4
    /dev/mem opened.
    Memory mapped at address 0xb6f8b000.
    Read at address  0x4A100DC4 (0xb6f8bdc4): 0x00008021
    root@plc:/mnt/ufs/home/root#

  • Hello,

    We got error logs. Here are no RxErr, because this signal on ground.
    As you can see there are Rx Align/Code Errors only on MAC1.

    root@plc:/mnt/ufs/home/root# ifconfig eth0 down
    root@plc:/mnt/ufs/home/root# ifconfig
    eth1      Link encap:Ethernet  HWaddr 60:64:05:3E:66:2A
              inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
              inet6 addr: fe80::6264:5ff:fe3e:662a%759764/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:4703 errors:0 dropped:27 overruns:0 frame:0
              TX packets:114 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:288369 (281.6 KiB)  TX bytes:10998 (10.7 KiB)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1%759764/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:8 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1
              RX bytes:488 (488.0 B)  TX bytes:488 (488.0 B)
    
    root@plc:/mnt/ufs/home/root#
    root@plc:/mnt/ufs/home/root# ethtool -S eth1
    NIC statistics:
         Good Rx Frames: 5630
         Broadcast Rx Frames: 4968
         Multicast Rx Frames: 652
         Pause Rx Frames: 0
         Rx CRC Errors: 0
         Rx Align/Code Errors: 33059
         Oversize Rx Frames: 0
         Rx Jabbers: 0
         Undersize (Short) Rx Frames: 0
         Rx Fragments: 766
         Rx Octets: 379514
         Good Tx Frames: 114
         Broadcast Tx Frames: 1
         Multicast Tx Frames: 8
         Pause Tx Frames: 0
         Deferred Tx Frames: 0
         Collisions: 0
         Single Collision Tx Frames: 0
         Multiple Collision Tx Frames: 0
         Excessive Collisions: 0
         Late Collisions: 0
         Tx Underrun: 0
         Carrier Sense Errors: 0
         Tx Octets: 11454
         Rx + Tx 64 Octet Frames: 23041
         Rx + Tx 65-127 Octet Frames: 10531
         Rx + Tx 128-255 Octet Frames: 4025
         Rx + Tx 256-511 Octet Frames: 982
         Rx + Tx 512-1023 Octet Frames: 168
         Rx + Tx 1024-Up Octet Frames: 56
         Net Octets: 3681127
         Rx Start of Frame Overruns: 0
         Rx Middle of Frame Overruns: 0
         Rx DMA Overruns: 0
         Rx DMA chan: head_enqueue: 2
         Rx DMA chan: tail_enqueue: 507758
         Rx DMA chan: pad_enqueue: 0
         Rx DMA chan: misqueued: 86
         Rx DMA chan: desc_alloc_fail: 0
         Rx DMA chan: pad_alloc_fail: 0
         Rx DMA chan: runt_receive_buf: 0
         Rx DMA chan: runt_transmit_buf: 0
         Rx DMA chan: empty_dequeue: 0
         Rx DMA chan: busy_dequeue: 823552
         Rx DMA chan: good_dequeue: 507505
         Rx DMA chan: requeue: 1
         Rx DMA chan: teardown_dequeue: 127
         Tx DMA chan: head_enqueue: 188
         Tx DMA chan: tail_enqueue: 5
         Tx DMA chan: pad_enqueue: 0
         Tx DMA chan: misqueued: 5
         Tx DMA chan: desc_alloc_fail: 0
         Tx DMA chan: pad_alloc_fail: 0
         Tx DMA chan: runt_receive_buf: 0
         Tx DMA chan: runt_transmit_buf: 17
         Tx DMA chan: empty_dequeue: 189
         Tx DMA chan: busy_dequeue: 0
         Tx DMA chan: good_dequeue: 193
         Tx DMA chan: requeue: 0
         Tx DMA chan: teardown_dequeue: 0
    root@plc:/mnt/ufs/home/root#
    
    

  • Vladimir,
    Did you answer my previous question as to which PHY is being used on the problematic interface? I don't see it here.
  • Hello,

    There are no question about PHY, because we use some varianats with the same result.
    Diagrams above are captured not on PHY but Switch IC.
  • Vladimir,

    Please note that the supported Ethernet interface configuration is MAC-to-PHY. TI does not support any other Ethernet topology (MAC-to-switch, MAC-to-MAC, etc.) for AM-class devices so let's focus debug on the platform that is 2x MAC-to-PHY.

    • I asked for the PHY because I strongly suspect that there is a timing violation on this interface...the alignment errors you are seeing are CRC errors with a dribble nibble. My suggestion is that the PCB interface timing analysis of this interface be reviewed for errors. Please post your results.
    • How is REFCLK being sourced?