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/AM5726: Ethernet issues

Part Number: AM5726
Other Parts Discussed in Thread: AM5728,

Tool/software: Linux

Relevant information:

  • Output of uname -a: Linux am57xx-evm 4.14.40-g4796173fc5 #39 SMP PREEMPT Wed May 8 21:18:21 UTC 2019 armv7l GNU/Linux
  • File system: Arago/Yocto based filesystem
  • Custom board or TI board?: Custom board. See device tree files attached.
  • Console log of boot process: See attached.
  • ethtool output: See attached.
  • ifconfig output: See attached.

I am currently bringing up the network on our custom board largely based on the AM5728 IDK (we are using AM5726 processor). In our design, we swapped the KSZ9031RNX PHY (eth0 and eth1) for the DP83822 PHY and connected as MII. The same PHY/design was used for eth0, eth1, eth2, and eth3 (eth2 and eth3 are PRU ICSS Ethernet). The pinmux has been updated to reflect the new configuration, and is confirmed to work because I can run the NIMU Dual MAC Example project successfully. When running this app through Code Composer Debugger, both interfaces get link, are assigned IP addresses, and can be pinged from an external computer. The MDIO interface is also confirmed to be working as expected (1MHz clock). The only changes I made to the device tree to support this was to change the phy-mode from "rgmii" to "mii". With the new device tree, both PHYs are detected by MDIO (see boot console output attached) recognize link up/down when connecting/disconnecting Ethernet cables. Link status is seen both in hardware via LEDs and in the console. While they are configured for DHCP through systemd, they do not get an IP address. Setting static IP also does not work. The only way I am able to get an IP address is to run an M4 app that initializes (or maybe reinitializes) GPIO via the boardInit() function and resets the PHYs in hardware by toggling the reset pins. After running this app, both eth0 and eth1 get IP addresses. While this is technically a viable option, it is a hack and not the correct solution.

One thing that I noticed when comparing our custom board to the IDK board is that the MDIO seems to have some issues on our custom board. One issue that I am seeing is that MDC is 125kHz even though it is being set to 1MHz in the device tree. See the image below illustrating this:

In the above image, the first two signals pertain to the PRU ICSS Ethernet MDIO bus. The second two signals are for eth0 and eth1 MDIO. As you can see, MDC is at 125kHz for eth0 and eth1 but MDC for ICSS is 1MHz. Another issue I have observed is that the MDC and MDIO run in bursts. The following image is a zoomed out view of the same logic trace which shows the bursting:

There is about 600ms between bursts in this trace, but the time between bursts changes over time (increase and decrease) and I have seen over 1 second at times. Note that this MDIO behavior is only seen when running Linux. When running the NIMU example app, MDC/MDIO functions as expected at 1MHz with no bursts. It is also worth noting that although the MDIO is not functioning as expected, the data being read/written appears to be good. It just is running at a slower rate and in bursts. This weird behavior does not go away after the M4 app is run and the interfaces get IP addresses.

One hunch that I have is that this is somehow related to initialization being done in boardInit() call in the M4 app. Is the boardInit() call does something that the bootloader does not do? Another strange thing is that the network interfaces come up as expected after a reboot. This issue only occurs after a hardware power cycle. One thing I am going to try is to try to do a loopback test in uboot. In the mean time, if anyone has suggestions for what could be happening, that would be greatly appreciated.

6786.device_tree.zip

U-Boot SPL 2018.01-g131dc82830 (May 08 2019 - 17:25:32)
DRA752-GP ES2.0
Trying to boot from MMC1
no pinctrl state for default mode
i2c_write: error waiting for addr ACK (status=0x116)
tps65903x: could not set LDO1 voltage.
no pinctrl state for default mode
*** Warning - bad CRC, using default environment

reading u-boot.img
reading u-boot.img
reading u-boot.img
reading u-boot.img


U-Boot 2018.01-g131dc82830 (May 08 2019 - 17:25:32 +0000)

CPU  : DRA752-GP ES2.0
Model: TI AM5728 IDK
Board: Humatics ALB REV 
DRAM:  4 GiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment

i2c_write: error waiting for data ACK (status=0x116)
i2c_write: error waiting for data ACK (status=0x116)
i2c_write: error waiting for data ACK (status=0x116)
Warning: fastboot.board_rev: unknown board revision
GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645
part_get_info_efi: *** ERROR: Invalid GPT ***
GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
SCSI:  SATA link 0 timeout.
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst 
scanning bus for devices...
Found 0 device(s).
Net:   
Warning: ethernet@48484000 using MAC address from ROM
eth0: ethernet@48484000
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 **
reading uEnv.txt
574 bytes read in 3 ms (186.5 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc0 ...
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
4014592 bytes read in 266 ms (14.4 MiB/s)
104107 bytes read in 53 ms (1.9 MiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8ffe3000, end 8ffff6aa ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.40-g4796173fc5 (oe-user@oe-host) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #39 SMP PREEMPT Wed May 8 21:18:21 UTC 2019
[    0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=30c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: TI AM5728 IDK
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000095800000, size 56 MiB
[    0.000000] OF: reserved mem: initialized node ipu2-memory@95800000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000099000000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node dsp1-memory@99000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created CMA memory pool at 0x000000009d000000, size 32 MiB
[    0.000000] OF: reserved mem: initialized node ipu1-memory@9d000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created CMA memory pool at 0x000000009f000000, size 8 MiB
[    0.000000] OF: reserved mem: initialized node dsp2-memory@9f000000, compatible id shared-dma-pool
[    0.000000] cma: Reserved 24 MiB at 0x00000000fe400000
[    0.000000] OMAP4: Map 0x000000027fd00000 to fe600000 for dram barrier
[    0.000000] DRA752 ES2.0
[    0.000000] percpu: Embedded 15 pages/cpu @eff33000 s31372 r8192 d21876 u61440
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 996928
[    0.000000] Kernel command line: console=ttyO2,115200n8 root=PARTUUID=e681b4b1-02 rw rootfstype=ext4 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 3754820K/3994624K available (8192K kernel code, 291K rwdata, 2304K rodata, 2048K init, 289K bss, 51388K reserved, 188416K cma-reserved, 3380224K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0a00000   (10208 kB)
[    0.000000]       .init : 0xc0e00000 - 0xc1000000   (2048 kB)
[    0.000000]       .data : 0xc1000000 - 0xc1048e98   ( 292 kB)
[    0.000000]        .bss : 0xc104a000 - 0xc10925fc   ( 290 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] OMAP clockevent source: timer1 at 32786 Hz
[    0.000000] arch_timer: cp15 timer(s) running at 6.14MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns
[    0.000005] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns
[    0.000016] Switching to timer-based delay loop, resolution 162ns
[    0.000341] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
[    0.000349] OMAP clocksource: 32k_counter at 32768 Hz
[    0.000804] Console: colour dummy device 80x30
[    0.000822] WARNING: Your 'console=ttyO2' has been replaced by 'ttyS2'
[    0.000829] This ensures that you still see kernel messages. Please
[    0.000836] update your kernel commandline.
[    0.000857] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
[    0.000872] pid_max: default: 32768 minimum: 301
[    0.000992] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001004] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001541] CPU: Testing write buffer coherency: ok
[    0.001759] /cpus/cpu@0 missing clock-frequency property
[    0.001778] /cpus/cpu@1 missing clock-frequency property
[    0.001789] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.039873] Setting up static identity map for 0x80200000 - 0x80200060
[    0.059877] Hierarchical SRCU implementation.
[    0.080070] EFI services will not be available.
[    0.099939] smp: Bringing up secondary CPUs ...
[    0.170244] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.170338] smp: Brought up 1 node, 2 CPUs
[    0.170352] SMP: Total of 2 processors activated (24.59 BogoMIPS).
[    0.170359] CPU: All CPU(s) started in HYP mode.
[    0.170366] CPU: Virtualization extensions available.
[    0.170882] devtmpfs: initialized
[    0.187994] random: get_random_u32 called from bucket_table_alloc+0x108/0x230 with crng_init=0
[    0.188240] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[    0.188428] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.188445] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.192243] xor: measuring software checksum speed
[    0.290172]    arm4regs  :  2008.000 MB/sec
[    0.390246]    8regs     :  1618.800 MB/sec
[    0.490317]    32regs    :  1538.000 MB/sec
[    0.590387]    neon      :  2948.000 MB/sec
[    0.590396] xor: using function: neon (2948.000 MB/sec)
[    0.590409] pinctrl core: initialized pinctrl subsystem
[    0.590853] DMI not present or invalid.
[    0.591109] NET: Registered protocol family 16
[    0.592137] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.593052] omap_hwmod: l3_main_2 using broken dt data from ocp
[    0.767856] cpuidle: using governor ladder
[    0.767890] cpuidle: using governor menu
[    0.776033] OMAP GPIO hardware version 0.1
[    0.796908] platform 56000000.gpu: Cannot lookup hwmod 'gpu'
[    0.797192] platform 59000000.bb2d: Cannot lookup hwmod 'bb2d'
[    0.797439] platform 58000000.dss: Cannot lookup hwmod 'dss_core'
[    0.799452] platform 489d0000.vpe: Cannot lookup hwmod 'vpe'
[    0.803646] platform 58001000.dispc: Cannot lookup hwmod 'dss_dispc'
[    0.804008] platform 58040000.encoder: Cannot lookup hwmod 'dss_hdmi'
[    0.804112] No ATAGs?
[    0.804184] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.804197] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.804556] omap4_sram_init:Unable to allocate sram needed to handle errata I688
[    0.804567] omap4_sram_init:Unable to get sram pool needed to handle errata I688
[    0.805091] OMAP DMA hardware revision 0.0
[    0.980977] raid6: int32x1  gen()   225 MB/s
[    1.151071] raid6: int32x1  xor()   260 MB/s
[    1.321174] raid6: int32x2  gen()   325 MB/s
[    1.491293] raid6: int32x2  xor()   330 MB/s
[    1.661463] raid6: int32x4  gen()   426 MB/s
[    1.831513] raid6: int32x4  xor()   349 MB/s
[    2.001629] raid6: int32x8  gen()   420 MB/s
[    2.171813] raid6: int32x8  xor()   323 MB/s
[    2.341898] raid6: neonx1   gen()   946 MB/s
[    2.512004] raid6: neonx1   xor()   959 MB/s
[    2.682129] raid6: neonx2   gen()  1317 MB/s
[    2.852220] raid6: neonx2   xor()  1718 MB/s
[    3.022334] raid6: neonx4   gen()  1924 MB/s
[    3.192437] raid6: neonx4   xor()  1817 MB/s
[    3.362569] raid6: neonx8   gen()  1714 MB/s
[    3.532661] raid6: neonx8   xor()  1477 MB/s
[    3.532669] raid6: using algorithm neonx4 gen() 1924 MB/s
[    3.532676] raid6: .... xor() 1817 MB/s, rmw enabled
[    3.532683] raid6: using neon recovery algorithm
[    3.539817] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
[    3.541107] edma 43300000.edma: memcpy is disabled
[    3.544279] edma 43300000.edma: TI EDMA DMA engine driver
[    3.547041] omap-iommu 40d01000.mmu: 40d01000.mmu registered
[    3.547245] omap-iommu 40d02000.mmu: 40d02000.mmu registered
[    3.547486] omap-iommu 58882000.mmu: 58882000.mmu registered
[    3.547727] omap-iommu 55082000.mmu: 55082000.mmu registered
[    3.548074] omap-iommu 41501000.mmu: 41501000.mmu registered
[    3.548292] omap-iommu 41502000.mmu: 41502000.mmu registered
[    3.548522] iommu: Adding device 58820000.ipu to group 1
[    3.548599] iommu: Adding device 55020000.ipu to group 2
[    3.548739] iommu: Adding device 40800000.dsp to group 0
[    3.548983] iommu: Adding device 41000000.dsp to group 3
[    3.549811] omap_i2c 48070000.i2c: bus 0 rev0.12 at 100 kHz
[    3.550452] palmas 1-0058: Irq flag is 0x00000004
[    3.584247] palmas 1-0058: Muxing GPIO 2b, PWM 0, LED 0
[    3.585746] omap_i2c 48072000.i2c: bus 1 rev0.12 at 400 kHz
[    3.586149] omap_i2c 48060000.i2c: bus 2 rev0.12 at 100 kHz
[    3.586345] pps_core: LinuxPPS API ver. 1 registered
[    3.586355] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    3.586374] PTP clock support registered
[    3.586472] dmi: Firmware registration failed.
[    3.586837] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400
[    3.587111] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400
[    3.588053] clocksource: Switched to clocksource arch_sys_counter
[    3.595736] NET: Registered protocol family 2
[    3.596261] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    3.596300] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    3.596368] TCP: Hash tables configured (established 4096 bind 4096)
[    3.596433] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    3.596455] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    3.596568] NET: Registered protocol family 1
[    3.596891] RPC: Registered named UNIX socket transport module.
[    3.596901] RPC: Registered udp transport module.
[    3.596908] RPC: Registered tcp transport module.
[    3.596915] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    3.597779] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    3.597949] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    3.599012] workingset: timestamp_bits=14 max_order=20 bucket_order=6
[    3.603124] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    3.603624] NFS: Registering the id_resolver key type
[    3.603647] Key type id_resolver registered
[    3.603655] Key type id_legacy registered
[    3.603694] ntfs: driver 2.1.32 [Flags: R/O].
[    3.605008] bounce: pool size: 64 pages
[    3.605049] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    3.605144] io scheduler noop registered
[    3.605154] io scheduler deadline registered
[    3.605310] io scheduler cfq registered (default)
[    3.605320] io scheduler mq-deadline registered
[    3.605329] io scheduler kyber registered
[    3.609994] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
[    3.612601] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.1
[    3.612970] OF: PCI: host bridge /ocp/axi@0/pcie@51000000 ranges:
[    3.613009] OF: PCI:    IO 0x20003000..0x20012fff -> 0x00000000
[    3.613032] OF: PCI:   MEM 0x20013000..0x2fffffff -> 0x20013000
[    4.613307] dra7-pcie 51000000.pcie: phy link never came up
[    4.613441] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
[    4.613455] pci_bus 0000:00: root bus resource [bus 00-ff]
[    4.613466] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    4.613477] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
[    4.613786] PCI: bus0: Fast back to back transfers disabled
[    4.613875] PCI: bus1: Fast back to back transfers enabled
[    4.613913] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit]
[    4.613931] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    4.614241] pcieport 0000:00:00.0: Signaling PME with IRQ 176
[    4.614365] pcieport 0000:00:00.0: AER enabled with IRQ 176
[    4.664136] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    4.666739] 4806c000.serial: ttyS1 at MMIO 0x4806c000 (irq = 45, base_baud = 3000000) is a 8250
[    4.667524] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 46, base_baud = 3000000) is a 8250
[    5.783379] console [ttyS2] enabled
[    5.788724] omap_rng 48090000.rng: Random Number Generator ver. 20
[    5.802121] brd: module loaded
[    5.810732] loop: module loaded
[    5.817849] m25p80 spi0.0: unrecognized JEDEC id bytes: 00, 00, 00
[    5.824958] libphy: Fixed MDIO Bus: probed
[    5.888082] davinci_mdio 48485000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    5.895777] davinci_mdio 48485000.mdio: detected phy mask fffffffc
[    5.906246] libphy: 48485000.mdio: probed
[    5.910295] davinci_mdio 48485000.mdio: phy[0]: device 48485000.mdio:00, driver TI DP83822 10/100 Mbps PHY
[    5.920013] davinci_mdio 48485000.mdio: phy[1]: device 48485000.mdio:01, driver TI DP83822 10/100 Mbps PHY
[    5.930371] cpsw 48484000.ethernet: Detected MACID = 88:3f:4a:4b:70:ba
[    5.936981] cpsw 48484000.ethernet: initialized cpsw ale version 1.4
[    5.943387] cpsw 48484000.ethernet: ALE Table size 1024
[    5.948659] cpsw 48484000.ethernet: device node lookup for pps timer failed
[    5.955690] cpsw 48484000.ethernet: cpts: overflow check period 500 (jiffies)
[    5.963548] cpsw 48484000.ethernet: cpsw: Detected MACID = 88:3f:4a:4b:70:bb
[    5.971528] i2c /dev entries driver
[    5.979794] sdhci: Secure Digital Host Controller Interface driver
[    5.986001] sdhci: Copyright(c) Pierre Ossman
[    5.990900] sdhci-pltfm: SDHCI platform and OF driver helper
[    5.997450] sdhci-omap 4809c000.mmc: probing yall  !!!!
[    6.002885] sdhci-omap 4809c000.mmc: Got CD GPIO
[    6.007607] sdhci-omap 4809c000.mmc: mmc clock fmax=192000000
[    6.013795] sdhci-omap 4809c000.mmc: before sdhci_omap_set_capabilities!!!!
[    6.020814] sdhci-omap 4809c000.mmc: before vqmmc 
[    6.025626] sdhci-omap 4809c000.mmc: after get vqmmc  
[    6.030804] sdhci-omap 4809c000.mmc: before sdhci_omap_read  
[    6.036574] sdhci-omap 4809c000.mmc: before sdci_omap_write
[    6.042183] sdhci-omap 4809c000.mmc: after set capabilities
[    6.047779] sdhci-omap 4809c000.mmc: before setup host
[    6.053013] sdhci-omap 4809c000.mmc: after setup host
[    6.058102] sdhci-omap 4809c000.mmc: before iodelay pin ctrl
[    6.063792] sdhci-omap 4809c000.mmc: no pinctrl state for ddr_1_8v mode
[    6.070450] sdhci-omap 4809c000.mmc: after iodelay pin ctrl
[    6.076048] sdhci-omap 4809c000.mmc: before add host
[    6.081046] add host 1
[    6.083415] before sdhci_init
[    6.086395] after sdhci_init!
[    6.089387] after hostname
[    6.092105] host name pointer is -289248256
[    6.092110] hostname is mmc0
[    6.099205] host IRQ is 75
[    6.102041] before led register
[    6.105196] before mmciowb
[    6.107911] before mmc_add_host
[    6.168262] after mmc_add_host
[    6.171354] mmc0: SDHCI controller on 4809c000.mmc [4809c000.mmc] using ADMA
[    6.179488] sdhci-omap 4809c000.mmc: after add host 
[    6.186690] sdhci-omap 480b4000.mmc: probing yall  !!!!
[    6.192147] sdhci-omap 480b4000.mmc: mmc clock fmax=96000000
[    6.197903] sdhci-omap 480b4000.mmc: omap host bias error 2
[    6.203550] sdhci-omap 480b4000.mmc: before sdhci_omap_set_capabilities!!!!
[    6.210580] sdhci-omap 480b4000.mmc: before vqmmc 
[    6.215414] sdhci-omap 480b4000.mmc: after get vqmmc  
[    6.220609] sdhci-omap 480b4000.mmc: before sdhci_omap_read  
[    6.227416] sdhci-omap 480b4000.mmc: before sdci_omap_write
[    6.235067] sdhci-omap 480b4000.mmc: after set capabilities
[    6.240706] sdhci-omap 480b4000.mmc: before setup host
[    6.245919] sdhci-omap 480b4000.mmc: after setup host
[    6.251040] sdhci-omap 480b4000.mmc: no 1_8 V detected
[    6.256204] sdhci-omap 480b4000.mmc: before iodelay pin ctrl
[    6.261954] sdhci-omap 480b4000.mmc: after iodelay pin ctrl
[    6.267554] sdhci-omap 480b4000.mmc: before add host
[    6.272551] add host 1
[    6.274918] before sdhci_init
[    6.277896] after sdhci_init!
[    6.280888] after hostname
[    6.283607] host name pointer is -289244672
[    6.283614] hostname is mmc1
[    6.290727] host IRQ is 76
[    6.293564] before led register
[    6.296730] before mmciowb
[    6.299476] before mmc_add_host
[    6.307536] mmc0: host does not support reading read-only switch, assuming write-enable
[    6.317443] mmc0: new high speed SDXC card at address 0001
[    6.323367] mmcblk0: mmc0:0001 GD4QT 119 GiB 
[    6.329267]  mmcblk0: p1 p2
[    6.358107] after mmc_add_host
[    6.361270] mmc1: SDHCI controller on 480b4000.mmc [480b4000.mmc] using ADMA
[    6.369474] sdhci-omap 480b4000.mmc: after add host 
[    6.378796] ledtrig-cpu: registered to indicate activity on CPUs
[    6.391144] NET: Registered protocol family 10
[    6.396575] Segment Routing with IPv6
[    6.400334] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    6.406710] NET: Registered protocol family 17
[    6.411368] Key type dns_resolver registered
[    6.415760] omap_voltage_late_init: Voltage driver support not added
[    6.422188] Power Management for TI OMAP4+ devices.
[    6.427362] Registering SWP/SWPB emulation handler
[    6.433850] Btrfs loaded, crc32c=crc32c-generic
[    6.449713] mmc1: new DDR MMC card at address 0001
[    6.455821] mmcblk1: mmc1:0001 IS008G 7.28 GiB 
[    6.461741] hctosys: unable to open rtc device (rtc0)
[    6.467892] mmcblk1boot0: mmc1:0001 IS008G partition 1 4.00 MiB
[    6.474197] mmcblk1boot1: mmc1:0001 IS008G partition 2 4.00 MiB
[    6.480426] mmcblk1rpmb: mmc1:0001 IS008G partition 3 4.00 MiB
[    6.514784] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    6.522962] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    6.531138] devtmpfs: mounted
[    6.535386] Freeing unused kernel memory: 2048K
[    6.596677] random: fast init done
[    6.831389] systemd[1]: System time before build time, advancing clock.
[    6.873813] 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 -ID)
[    6.895039] systemd[1]: Detected architecture arm.

Welcome to Arago 2018.04!

[    6.928992] systemd[1]: Set hostname to <am57xx-evm>.
[    7.253103] random: systemd: uninitialized urandom read (16 bytes read)
[    7.260124] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[    7.298187] random: systemd: uninitialized urandom read (16 bytes read)
[    7.304967] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    7.338310] random: systemd: uninitialized urandom read (16 bytes read)
[    7.345032] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    7.378313] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    7.408184] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[    7.444825] systemd[1]: Listening on Process Core Dump Socket.
[  OK  ] Listening on Process Core Dump Socket.
[    7.480766] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[  OK  ] Reached target Remote File Systems.
[  OK  ] Listening on Journal Socket.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on Journal Socket (/dev/log).
[  OK  ] Listening on udev Kernel Socket.
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Reached target Paths.
[  OK  ] Created slice System Slice.
         Starting Journal Service...
[  OK  ] Created slice system-serial\x2dgetty.slice.
         Mounting POSIX Message Queue File System...
         Starting Load Kernel Modules...
[    7.895394] cryptodev: loading out-of-tree module taints kernel.
[  OK  ] Reached target Slices.
[    7.903215] cryptodev: driver 1.9 loaded.
         Mounting Kernel Debug File System...
         Mounting Temporary Directory (/tmp)...
[  OK  ] Created slice system-getty.slice.
         Starting Remount Root and Kernel File Systems...
[    8.039921] 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).
[  OK  ] Started Journal Service.
[  OK  ] Started Load Kernel Modules.
[  OK  ] Started Remount Root and Kernel File Systems.
         Starting udev Coldplug all Devices...
         Starting Create Static Device Nodes in /dev...
         Mounting Kernel Configuration File System...
         Starting Apply Kernel Variables...
         Starting Flush Journal to Persistent Storage...
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Started Apply Kernel Variables.
[    8.530412] systemd-journald[81]: Received request to flush runtime journal from PID 1
[  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.
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Flush Journal to Persistent Storage.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[    9.165674] omap-rproc 58820000.ipu: assigned reserved memory node ipu1-memory@9d000000
[  OK  ] Started udev Coldplug all Devices.
[    9.184604] remoteproc remoteproc0: 58820000.ipu is available
[  OK  ] Reached target System Initialization.
[    9.250466] remoteproc remoteproc0: Direct firmware load for dra7-ipu1-fw.xem4 failed with error -2
[    9.269596] remoteproc remoteproc0: powering up 58820000.ipu
[    9.275325] remoteproc remoteproc0: Direct firmware load for dra7-ipu1-fw.xem4 failed with error -2
[    9.287679] omap-rproc 55020000.ipu: assigned reserved memory node ipu2-memory@95800000
[    9.287785] remoteproc remoteproc1: 55020000.ipu is available
[    9.290138] omap-rproc 40800000.dsp: assigned reserved memory node dsp1-memory@99000000
[    9.290230] remoteproc remoteproc2: 40800000.dsp is available
[    9.290716] omap-rproc 41000000.dsp: assigned reserved memory node dsp2-memory@9f000000
[    9.290809] remoteproc remoteproc3: 41000000.dsp is available
[[    9.354705] remoteproc remoteproc0: request_firmware failed: -2
  OK  ] Listening on D-Bus System Message Bus Socket.
[    9.366494] remoteproc remoteproc1: Direct firmware load for dra7-ipu2-fw.xem4 failed with error -2
[    9.379221] remoteproc remoteproc1: powering up 55020000.ipu
[    9.384961] remoteproc remoteproc1: Direct firmware load for dra7-ipu2-fw.xem4 failed with error -2
[[    9.401111] remoteproc remoteproc1: request_firmware failed: -2
  OK  ] Listening on RPCbind Server Activation Socket[    9.409944] remoteproc remoteproc2: Direct firmware load for dra7-dsp1-fw.xe66 failed with error -2
.
[    9.429133] remoteproc remoteproc2: powering up 40800000.dsp
[    9.429170] remoteproc remoteproc2: Direct firmware load for dra7-dsp1-fw.xe66 failed with error -2
[    9.429177] remoteproc remoteproc2: request_firmware failed: -2
[    9.429229] remoteproc remoteproc3: Direct firmware load for dra7-dsp2-fw.xe66 failed with error -2
[    9.429236] remoteproc remoteproc3: powering up 41000000.dsp
[    9.429263] remoteproc remoteproc3: Direct firmware load for dra7-dsp2-fw.xe66 failed with error -2
[    9.429270] remoteproc remoteproc3: request_firmware failed: -2
         Starting sshd.socket.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
         Starting Network Service...
         Starting Docker Socket for the API.
[    9.706730] palmas-rtc 48072000.i2c:tps659038@58:tps659038_rtc: rtc core: registered 48072000.i2c:tps659038@58:tps659038_rtc as rtc0
[    9.737839] omap-des 480a5000.des: OMAP DES hw accel rev: 2.2
[    9.740152] omap-des 480a5000.des: will run requests pump with realtime priority
[  OK  ] Listening on sshd.socket.
[    9.876352] omap_gpio 48057000.gpio: Could not set line 16 debounce to 20000 microseconds (-22)
[  OK  ] Listening on Docker Socket for the API.
[    9.925190] omap_rtc 48838000.rtc: registered as rtc1
[  OK  ] Found device /dev/ttyS2.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting RPC Bind Service...
[  OK  ] Reached target Containers.
[  OK  ] Started Kernel Logging Service.
         Starting telnetd.service...
[  OK  ] Started System Logging Service.
         Starting Print notice about GPLv3 packages...
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
         Starting Network Time Service (one-shot ntpdate mode)...
[   10.397950] net eth1: initializing cpsw version 1.15 (0)
[   10.421688] random: crng init done
[   10.425112] random: 7 urandom warning(s) missed due to ratelimiting
[  OK  ] Started Periodic Command Scheduler.
         Starting tiipclad-daemon.service...
[  OK  ] Started Job spooling tools.
[   10.521247] TI DP83822 10/100 Mbps PHY 48485000.mdio:01: attached PHY driver [TI DP83822 10/100 Mbps PHY] (mii_bus:phy_addr=48485000.mdio:01, irq=POLL)
         Starting Login Service...
[  OK  ] Started Network Service.
[  OK  ] Started RPC Bind Service.
[  OK  ] Started telnetd.service.
[   10.581714] cpts ptp bc clkid 0
[  OK  ] Started Network Time Service (one-shot ntpdate mode).
[   10.595001] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
         Starting NTP client/server...
         Starting Wait for Network to be Configured...
[  OK  ] Reached target Network.
[   10.639746] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[   10.647740] net eth0: initializing cpsw version 1.15 (0)
         Starting Network Name Resolution...
         Starting DNS forwarder and DHCP server...
         Starting Permit User Sessions...
[  OK  ] Started Login Service.
[  OK  ] Started tiipclad-daemon.service.
         Starting thttpd.service...
[   10.761456] TI DP83822 10/100 Mbps PHY 48485000.mdio:00: attached PHY driver [TI DP83822 10/100 Mbps PHY] (mii_bus:phy_addr=48485000.mdio:00, irq=POLL)
[   10.779575] omap-sham 4b101000.sham: hw accel on OMAP rev 4.3
[  OK  ] Started Permit User Sessions.
[  OK  ] Started NTP client/server.
[  OK  ] Started Serial Getty on ttyS2.
[  OK  ] Started Getty on tty1.
[  OK  ] Reached target Login Prompts.
         Starting Synchronize System and HW clocks...
[   10.854678] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  OK  ] Started thttpd.service.
         Starting rng-tools.service...
[   10.930641] omap-aes 4b500000.aes: OMAP AES hw accel rev: 3.3
[FAILED] Failed to start DNS forwarder and DHCP serv[   10.939746] CAN device driver interface
er.
See 'systemctl status dnsmasq.service' for details.
[  OK  ] Started Synchronize System and HW clocks.
[   10.966046] omap-aes 4b500000.aes: will run requests pump with realtime priority
[  OK  ] Started Network Name Resolution.
[  OK  ] Started rng-tools.service.
         Starting thermal-zone-init.service...
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
[  OK  ] Started thermal-zone-init.service.
[   11.153186] omap-aes 4b700000.aes: OMAP AES hw accel rev: 3.3
[   11.159294] omap-aes 4b700000.aes: will run requests pump with realtime priority
[   11.182571] c_can_platform 4ae3c000.can: c_can_platform device registered (regs=fce3c000, irq=91)
[   11.346757] pruss 4b200000.pruss: creating PRU cores and other child platform devices
[   11.379718] pruss 4b280000.pruss: creating PRU cores and other child platform devices
[   11.468656] davinci_mdio 4b2b2400.mdio: davinci mdio revision 1.6, bus freq 1000000
[   11.483592] libphy: 4b2b2400.mdio: probed
[   11.522981] davinci_mdio 4b2b2400.mdio: phy[0]: device 4b2b2400.mdio:00, driver TI DP83822 10/100 Mbps PHY
[   11.544690] davinci_mdio 4b2b2400.mdio: phy[1]: device 4b2b2400.mdio:01, driver TI DP83822 10/100 Mbps PHY
[   11.725071] remoteproc remoteproc4: 4b234000.pru is available
[   11.739478] pru-rproc 4b234000.pru: PRU rproc node /ocp/pruss_soc_bus@4b226004/pruss@0/pru@34000 probed successfully
[   11.764809] remoteproc remoteproc5: 4b238000.pru is available
[   11.776079] pru-rproc 4b238000.pru: PRU rproc node /ocp/pruss_soc_bus@4b226004/pruss@0/pru@38000 probed successfully
[   11.792553] remoteproc remoteproc6: 4b2b4000.pru is available
[   11.801722] pru-rproc 4b2b4000.pru: PRU rproc node /ocp/pruss_soc_bus@4b2a6004/pruss@0/pru@34000 probed successfully
[   11.879945] remoteproc remoteproc7: 4b2b8000.pru is available
[   11.896439] pru-rproc 4b2b8000.pru: PRU rproc node /ocp/pruss_soc_bus@4b2a6004/pruss@0/pru@38000 probed successfully
[   11.943893] prueth pruss2_eth: pruss MC Mask 0:0:0:0:0:0
[   11.959071] prueth pruss2_eth: port 1: using random MAC addr: aa:74:33:f8:25:c1
[   12.099652] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[   12.132168] prueth pruss2_eth: port 2: using random MAC addr: 0e:d6:f3:e3:83:e3
[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[   12.246732] prueth pruss2_eth: request for sync latch pins failed: -19
[   12.295310] prueth pruss2_eth: TI PRU ethernet (type 0) driver initialized
***************************************************************
***************************************************************
NOTICE: This file system contains the following GPLv3 packages:
        bash
        binutils
        cifs-utils
        cpio
        cpp-symlinks
        cpp
        dnsmasq
        dosfstools
        elfutils
        gawk
        gdb
        gdbserver
        gzip
        libdw1
        libelf1
        libgdbm-compat4
        libgdbm4
        libgmp10
        libidn11
        libmpc3
        libmpfr4
        libreadline7
        libunistring2
        m4
        nettle
        python3-rfc3987
        python3-strict-rfc3339
        rsync
        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.
[   12.883865] cpsw 48484000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   12.895726] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   13.137951] dwc3 48890000.usb: failed to initialize core
[   13.163615] dwc3 488d0000.usb: failed to initialize core
[   13.517417] remoteproc remoteproc6: powering up 4b2b4000.pru
[   13.526980] remoteproc remoteproc6: Booting fw image ti-pruss/am57xx-pru0-prueth-fw.elf, size 5028
[   13.548521] pruss 4b280000.pruss: configured system_events = 0x0000060000500000 intr_channels = 0x00000095 host_intr = 0x00000115
[   13.568256] remoteproc remoteproc6: remote processor 4b2b4000.pru is now up
[   13.575469] net eth2: started
[   13.582362] IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready
[   13.616598] remoteproc remoteproc7: powering up 4b2b8000.pru
[   13.623837] remoteproc remoteproc7: Booting fw image ti-pruss/am57xx-pru1-prueth-fw.elf, size 5060
[   13.636222] pruss 4b280000.pruss: configured system_events = 0x0060000000a00000 intr_channels = 0x0000012a host_intr = 0x0000022a
[   13.650191] remoteproc remoteproc7: remote processor 4b2b8000.pru is now up
[   13.657465] net eth3: started
[   13.664287] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready

 _____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project http://arago-project.org am57xx-evm ttyS2

Arago 2018.04 am57xx-evm ttyS2

am57xx-evm login:

am57xx-evm:~$ ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:DC:57:D6:60  
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          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:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 88:3F:4A:4B:70:BA  
          inet6 addr: fe80::8a3f:4aff:fe4b:70ba%775872/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:5998 (5.8 KiB)
          Interrupt:88 

eth1      Link encap:Ethernet  HWaddr 88:3F:4A:4B:70:BB  
          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)

eth2      Link encap:Ethernet  HWaddr AA:74:33:F8:25:C1  
          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)

eth3      Link encap:Ethernet  HWaddr 0E:D6:F3:E3:83:E3  
          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)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1%775872/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1844 (1.8 KiB)  TX bytes:1844 (1.8 KiB)

0;root@am57xx-evm: /root@am57xx-evm:/# 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 Receive-only
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Advertised pause frame use: No
        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: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: external
        Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
        Current message level: 0x00000000 (0)
                               
        Link detected: yes
0;root@am57xx-evm: /root@am57xx-evm:/# ethtool -S eth0
NIC statistics:
     Good Rx Frames: 0
     Broadcast Rx Frames: 0
     Multicast Rx Frames: 0
     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: 0
     Good Tx Frames: 0
     Broadcast Tx Frames: 0
     Multicast Tx Frames: 0
     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: 0
     Rx + Tx 64 Octet Frames: 0
     Rx + Tx 65-127 Octet Frames: 0
     Rx + Tx 128-255 Octet Frames: 0
     Rx + Tx 256-511 Octet Frames: 0
     Rx + Tx 512-1023 Octet Frames: 0
     Rx + Tx 1024-Up Octet Frames: 0
     Net Octets: 0
     Rx Start of Frame Overruns: 0
     Rx Middle of Frame Overruns: 0
     Rx DMA Overruns: 0
     Rx DMA chan 0: head_enqueue: 1
     Rx DMA chan 0: tail_enqueue: 127
     Rx DMA chan 0: pad_enqueue: 0
     Rx DMA chan 0: misqueued: 0
     Rx DMA chan 0: desc_alloc_fail: 0
     Rx DMA chan 0: pad_alloc_fail: 0
     Rx DMA chan 0: runt_receive_buf: 0
     Rx DMA chan 0: runt_transmit_bu: 0
     Rx DMA chan 0: empty_dequeue: 0
     Rx DMA chan 0: busy_dequeue: 0
     Rx DMA chan 0: good_dequeue: 0
     Rx DMA chan 0: requeue: 0
     Rx DMA chan 0: teardown_dequeue: 0
     Tx DMA chan 0: head_enqueue: 38
     Tx DMA chan 0: tail_enqueue: 16
     Tx DMA chan 0: pad_enqueue: 0
     Tx DMA chan 0: misqueued: 0
     Tx DMA chan 0: desc_alloc_fail: 0
     Tx DMA chan 0: pad_alloc_fail: 0
     Tx DMA chan 0: runt_receive_buf: 0
     Tx DMA chan 0: runt_transmit_bu: 0
     Tx DMA chan 0: empty_dequeue: 37
     Tx DMA chan 0: busy_dequeue: 0
     Tx DMA chan 0: good_dequeue: 37
     Tx DMA chan 0: requeue: 0
     Tx DMA chan 0: teardown_dequeue: 0
0;root@am57xx-evm: /root@am57xx-evm:/# 
0;root@am57xx-evm: /root@am57xx-evm:/# 
0;root@am57xx-evm: /root@am57xx-evm:/# 
0;root@am57xx-evm: /root@am57xx-evm:/# 
0;root@am57xx-evm: /root@am57xx-evm:/# ethtool eth1
Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 10Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 1
        Transceiver: external
        Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
        Current message level: 0x00000000 (0)
                               
        Link detected: no
0;root@am57xx-evm: /root@am57xx-evm:/# ethtool -S eth1
NIC statistics:
     Good Rx Frames: 0
     Broadcast Rx Frames: 0
     Multicast Rx Frames: 0
     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: 0
     Good Tx Frames: 0
     Broadcast Tx Frames: 0
     Multicast Tx Frames: 0
     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: 0
     Rx + Tx 64 Octet Frames: 0
     Rx + Tx 65-127 Octet Frames: 0
     Rx + Tx 128-255 Octet Frames: 0
     Rx + Tx 256-511 Octet Frames: 0
     Rx + Tx 512-1023 Octet Frames: 0
     Rx + Tx 1024-Up Octet Frames: 0
     Net Octets: 0
     Rx Start of Frame Overruns: 0
     Rx Middle of Frame Overruns: 0
     Rx DMA Overruns: 0
     Rx DMA chan 0: head_enqueue: 1
     Rx DMA chan 0: tail_enqueue: 127
     Rx DMA chan 0: pad_enqueue: 0
     Rx DMA chan 0: misqueued: 0
     Rx DMA chan 0: desc_alloc_fail: 0
     Rx DMA chan 0: pad_alloc_fail: 0
     Rx DMA chan 0: runt_receive_buf: 0
     Rx DMA chan 0: runt_transmit_bu: 0
     Rx DMA chan 0: empty_dequeue: 0
     Rx DMA chan 0: busy_dequeue: 0
     Rx DMA chan 0: good_dequeue: 0
     Rx DMA chan 0: requeue: 0
     Rx DMA chan 0: teardown_dequeue: 0
     Tx DMA chan 0: head_enqueue: 38
     Tx DMA chan 0: tail_enqueue: 17
     Tx DMA chan 0: pad_enqueue: 0
     Tx DMA chan 0: misqueued: 0
     Tx DMA chan 0: desc_alloc_fail: 0
     Tx DMA chan 0: pad_alloc_fail: 0
     Tx DMA chan 0: runt_receive_buf: 0
     Tx DMA chan 0: runt_transmit_bu: 0
     Tx DMA chan 0: empty_dequeue: 37
     Tx DMA chan 0: busy_dequeue: 0
     Tx DMA chan 0: good_dequeue: 37
     Tx DMA chan 0: requeue: 0
     Tx DMA chan 0: teardown_dequeue: 0

  • Update: I tried to ping from uboot to see if either interface was coming up successfully in the bootloader stage. Unfortunately this did not work. I also noticed that the MDIO clock is running at 490-500kHz, as seen in the below image.

    I have also attached the output of the ping test (and other relevant commands) run in uboot on both the IDKAM5728 board and our custom board. I have also attached the uboot device tree files. The device tree files in my original post are for Linux.

    uboot_device_tree.zip

    => print
    arch=arm
    args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
    baudrate=115200
    board=am57xx
    board_name=am572x_idk
    boot_fdt=try
    boot_fit=0
    bootargs=androidboot.serialno=${serial#} console=ttyS2,115200 androidboot.console=ttyS2 androidboot.hardware=am57xevmboard
    bootcmd=if test ${dofastboot} -eq 1; then echo Boot fastboot requested, resetting dofastboot ...;setenv dofastboot 0; saveenv;echo Booting into fastboot ...; fastboot 1; fi;if test ${boot_fit} -eq 1; the 
    bootdelay=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    bootfile=zImage
    bootm_size=0x10000000
    bootpart=0:2
    bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
    console=ttyO2,115200n8
    cpu=armv7
    dfu_alt_info_emmc=rawemmc raw 0 3751936;boot part 1 1;rootfs part 1 2;MLO fat 1 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-o1
    dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 1
    dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
    dfu_bufsiz=0x10000
    dofastboot=0
    emmc_android_boot=echo Trying to boot Android from eMMC ...; run update_to_fit; setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; ;
    emmc_linux_boot=echo Trying to boot Linux from eMMC ...; setenv mmcdev 1; setenv bootpart 1:2; setenv mmcroot /dev/mmcblk1p2 rw; run mmcboot;
    envboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run impor;
    ethact=ethernet@48484000
    ethaddr=88:3f:4a:4b:70:ba
    fastboot.cpu=DRA752
    fastboot.secure=GP
    fdt_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontroladdr=fcf14e18
    fdtfile=undefined
    findfdt=if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x-revc; then setenv fdtfile 
    finduuid=part uuid mmc ${bootpart} uuid
    fit_bootfile=fitImage
    fit_loadaddr=0x87000000
    idk_lcd=no
    importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
    ipaddr=192.168.2.33
    kernel_addr_r=0x82000000
    loadaddr=0x82000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
    loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
    loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
    loadfit=run args_mmc; bootm ${loadaddr}#${fdtfile};
    loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
    mmcboot=mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else ;
    mmcdev=0
    mmcloados=run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot l;
    mmcrootfstype=ext4 rootwait
    netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
    netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
    netloadfdt=tftp ${fdtaddr} ${fdtfile}
    netloadimage=tftp ${loadaddr} ${bootfile}
    netmask=255.255.255.0
    nfsopts=nolock
    partitions=uuid_disk=${uuid_gpt_disk};name=bootloader,start=384K,size=1792K,uuid=${uuid_gpt_bootloader};name=rootfs,start=2688K,size=-,uuid=${uuid_gpt_rootfs}
    partitions_android=uuid_disk=${uuid_gpt_disk};name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};name=bootloader,size=1792K,uuid=${uuid_gpt_bootloader};name=environment,size=128K,uuid=${uuid_gpt_}
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    rdaddr=0x88080000
    rootpath=/export/rootfs
    scriptaddr=0x80000000
    scsidevs=0
    serial#=1800901a0e760122
    soc=omap5
    static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
    stderr=serial@48020000
    stdin=serial@48020000
    stdout=serial@48020000
    update_to_fit=setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}
    usbtty=cdc_acm
    vendor=ti
    ver=U-Boot 2018.01-g131dc82830 (May 10 2019 - 14:36:04 +0000)
    vram=16M
    
    Environment size: 7778/131067 bytes
    => mii read 0 0
    3000
    => mii read 0 1
    786D
    => mii device
    MII devices: 'ethernet@48484000' 
    Current device: 'ethernet@48484000'
    => mii info
    PHY 0x00: OUI = 0x80028, Model = 0x24, Rev = 0x00, 100baseT, FDX
    PHY 0x01: OUI = 0x80028, Model = 0x24, Rev = 0x00,  10baseT, HDX
    => ping 192.168.2.11
    link up on port 0, speed 100, full duplex
    Using ethernet@48484000 device
    
    ARP Retry count exceeded; starting again
    ping failed; host 192.168.2.11 is not alive
    

    => print
    arch=arm
    args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
    baudrate=115200
    board=am57xx
    board_name=am572x_idk
    board_rev=1.3B
    board_serial=44184P470103
    boot_fdt=try
    boot_fit=0
    bootargs=androidboot.serialno=${serial#} console=ttyS2,115200 androidboot.console=ttyS2 androidboot.hardware=am57xevmboard
    bootcmd=if test ${dofastboot} -eq 1; then echo Boot fastboot requested, resetting dofastboot ...;setenv dofastboot 0; saveenv;echo Booting into fastboot ...; fastboot 1; fi;if test ${boot_fit} -eq 1; the 
    bootdelay=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    bootfile=zImage
    bootm_size=0x10000000
    bootpart=0:2
    bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
    console=ttyO2,115200n8
    cpu=armv7
    dfu_alt_info_emmc=rawemmc raw 0 3751936;boot part 1 1;rootfs part 1 2;MLO fat 1 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-o1
    dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x1000;u-env.raw raw 0x1300 0x200;spl-os-args.raw raw 0x1500 0x200;spl-os-image.raw raw 0x1700 1
    dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
    dfu_bufsiz=0x10000
    dofastboot=0
    emmc_android_boot=echo Trying to boot Android from eMMC ...; run update_to_fit; setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; ;
    emmc_linux_boot=echo Trying to boot Linux from eMMC ...; setenv mmcdev 1; setenv bootpart 1:2; setenv mmcroot /dev/mmcblk0p2 rw; run mmcboot;
    envboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run impor;
    eth2addr=70:ff:76:1c:2b:6b
    eth3addr=70:ff:76:1c:2b:6c
    eth4addr=70:ff:76:1c:2b:6d
    eth5addr=70:ff:76:1c:2b:6e
    eth6addr=70:ff:76:1c:2b:6f
    eth7addr=70:ff:76:1c:2b:70
    ethact=ethernet@48484000
    ethaddr=94:e3:6d:35:e1:60
    fastboot.board_rev=1.3B
    fastboot.cpu=DRA752
    fastboot.secure=GP
    fdt_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontroladdr=fdf14e98
    fdtfile=undefined
    findfdt=if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x-revc; then setenv fdtfile 
    finduuid=part uuid mmc ${bootpart} uuid
    fit_bootfile=fitImage
    fit_loadaddr=0x87000000
    idk_lcd=no
    importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
    ipaddr=192.168.2.33
    kernel_addr_r=0x82000000
    loadaddr=0x82000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
    loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr
    loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
    loadfit=run args_mmc; bootm ${loadaddr}#${fdtfile};
    loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
    mmcboot=mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else ;
    mmcdev=0
    mmcloados=run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot l;
    mmcrootfstype=ext4 rootwait
    netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
    netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
    netloadfdt=tftp ${fdtaddr} ${fdtfile}
    netloadimage=tftp ${loadaddr} ${bootfile}
    netmask=255.255.255.0
    nfsopts=nolock
    partitions=uuid_disk=${uuid_gpt_disk};name=bootloader,start=384K,size=1792K,uuid=${uuid_gpt_bootloader};name=rootfs,start=2688K,size=-,uuid=${uuid_gpt_rootfs}
    partitions_android=uuid_disk=${uuid_gpt_disk};name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};name=bootloader,size=1792K,uuid=${uuid_gpt_bootloader};name=environment,size=128K,uuid=${uuid_gpt_}
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    rdaddr=0x88080000
    rootpath=/export/rootfs
    scriptaddr=0x80000000
    scsidevs=0
    serial#=0700400968240122
    soc=omap5
    static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
    stderr=serial@48020000
    stdin=serial@48020000
    stdout=serial@48020000
    update_to_fit=setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}
    usbtty=cdc_acm
    vendor=ti
    ver=U-Boot 2018.01-g131dc82830 (Jan 28 2019 - 20:34:57 +0000)
    vram=16M
    
    Environment size: 8023/131067 bytes
    => mii read 0 0
    1140
    => mii read 0 1
    796D
    => mii device
    MII devices: 'ethernet@48484000' 
    Current device: 'ethernet@48484000'
    => mii info
    PHY 0x00: OUI = 0x0885, Model = 0x22, Rev = 0x02, 1000baseT, FDX
    PHY 0x01: OUI = 0x0885, Model = 0x22, Rev = 0x02,  10baseT, HDX
    => ping 192.168.2.11
    link up on port 0, speed 1000, full duplex
    Using ethernet@48484000 device
    host 192.168.2.11 is alive
    

  • Hi,
    Let's work on the Linux use case first and eth0 first.

    The MAC level statistics from ethtool are showing that no packets are leaving the interface. This points to looking and resolving why the MAC is not transmitting packets to the PHY. While the link is showing as detected, the PHY may not be in a completely known state.

    Is the am572x-idk.dts the DTS file for you board?

    Could you please attach a snippet of the schematic. Based on your test code and your observation concerning reset of the PHYs is one area I think that needs to be looked at. A gpio reset line may need to be added like the ones on the PHYs for the PRU. Please refer to reset gpio property in the PRU mdio node in the am572x-idk.dts as an example.

    Concerning the other observation and your question about the MDIO clock. The Linux driver I believe turns on the MDIO clock as needed to poll the PHYs and then turns it off again.

    Best Regards,
    Schuyler
  • Yes, the am572x-idk.dts is the DTS file for our board.

    Take a look at our schematic here: e2e.ti.com/.../2957242
    Note the following hardware/software changes that we have made:

    Hardware mods:
    Remove R41 and R45 (PHY reset pull down resistors)

    Software mods:
    Update pinmux to change mode of SW0 and SW1 to be GMII/MII
    Update pinmux such that 5 port switch, PHY0, and PHY1 reset signals are inputs with internal pull up

    We will try to add the gpio reset line as per your advice. I notice that the reset-gpios property is inside pruss2_mdio in am572x-idk.dts. Should I just add the reset lines to this group or should I make a new tag for eth0 and eth1 mdio? Better yet, would you be able to provide me with a diff of the required changes?
  • I tried adding the following lines to the bottom of am572x-idk.dts:

    &davinci_mdio {
    reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>,
    <&gpio5 6 GPIO_ACTIVE_LOW>,
    <&gpio5 7 GPIO_ACTIVE_LOW>;
    reset-delay-us = <1500>; /* PHY datasheet states 10uS min, 5-port switch min reset time is 10ms */
    };

    But this does not seem to make a difference. Is this the correct way to do this? Is there anything else I need to do/change?

  • Hi,

    Do you have an external ethernet switch on your board?

    The one thing I need to point out is that the davinci-mdio is for cpsw ports and the pruss-mdio is for PRU ports. I recommend splitting the respective resets lines for the phys between those mdio nodes.

    Are the reset lines toggling on your scope at all as the interfaces come up?

    Best Regards,
    Schuyler
  • Hi,
    Since we have not heard back we will assume that you were able to move past the issue.
    Best Regards,
    Schuyler