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.

AM3359: CPSW error

Part Number: AM3359

Hi all,

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

Although I've set both of phy_id and phy-handle values in the attached DTS file, I got the error "No slave[0] phy_id, phy-handle, or fixed-link property", and I cannot ping anywhere.

Attachments:

am335x-mgate-cpsw-sdk060300-kernel4.19.94.DTS.zip

dmesg-log-for-dts-v8.1.4_cpsw-modif4.txt
root@mgate-eth:~# dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.19.94-rt39-ga242ccf3f1 (muratboyar@kbcrossdev) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 PREEMPT RT Tue May 12 13:26:51 +03 2020
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: TI AM335x - Enabling CPSW (dts file v8.1.4 cpsw-modif4)
[    0.000000] Memory policy: Data cache writeback
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 48 MiB at 0x8b800000
[    0.000000] On node 0 totalpages: 65536
[    0.000000]   Normal zone: 576 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 65536 pages, LIFO batch:15
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (sgx neon)
[    0.000000] random: get_random_bytes called from start_kernel+0xa4/0x444 with crng_init=0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64960
[    0.000000] Kernel command line: console=ttyO1,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 197324K/262144K available (8192K kernel code, 319K rwdata, 2680K rodata, 1024K init, 259K bss, 15668K reserved, 49152K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xff800000   ( 752 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (9184 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 320 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 260 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU priority boosting: priority 1 delay 500 ms.
[    0.000000]  No expedited grace period (rcu_normal_after_boot).
[    0.000000]  Tasks RCU enabled.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000022] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000043] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000053] OMAP clocksource: timer1 at 24000000 Hz
[    0.000298] timer_probe: no matching timers found
[    0.000574] Console: colour dummy device 80x30
[    0.000813] WARNING: Your 'console=ttyO1' has been replaced by 'ttyS1'
[    0.000817] This ensures that you still see kernel messages. Please
[    0.000820] update your kernel commandline.
[    0.000869] Calibrating delay loop... 479.23 BogoMIPS (lpj=2396160)
[    0.118560] pid_max: default: 32768 minimum: 301
[    0.118872] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.118888] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.120315] CPU: Testing write buffer coherency: ok
[    0.120396] CPU0: Spectre v2: using BPIALL workaround
[    0.121835] Setting up static identity map for 0x80100000 - 0x80100060
[    0.122301] rcu: Hierarchical SRCU implementation.
[    0.123478] EFI services will not be available.
[    0.125894] devtmpfs: initialized
[    0.141513] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.142147] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.142187] futex hash table entries: 256 (order: 1, 8192 bytes)
[    0.147310] pinctrl core: initialized pinctrl subsystem
[    0.148757] DMI not present or invalid.
[    0.149563] NET: Registered protocol family 16
[    0.154370] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.188562] l4_wkup_cm:clk:0010:0: failed to disable
[    0.255153] gpio gpiochip0: (gpio-0-31): added GPIO chardev (254:0)
[    0.255318] gpiochip_setup_dev: registered GPIOs 0 to 31 on device: gpiochip0 (gpio-0-31)
[    0.255709] OMAP GPIO hardware version 0.1
[    0.257174] gpio gpiochip1: (gpio-32-63): added GPIO chardev (254:1)
[    0.257323] gpiochip_setup_dev: registered GPIOs 32 to 63 on device: gpiochip1 (gpio-32-63)
[    0.258923] gpio gpiochip2: (gpio-64-95): added GPIO chardev (254:2)
[    0.259089] gpiochip_setup_dev: registered GPIOs 64 to 95 on device: gpiochip2 (gpio-64-95)
[    0.260813] gpio gpiochip3: (gpio-96-127): added GPIO chardev (254:3)
[    0.260975] gpiochip_setup_dev: registered GPIOs 96 to 127 on device: gpiochip3 (gpio-96-127)
[    0.271589] No ATAGs?
[    0.271606] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.299288] edma 49000000.edma: TI EDMA DMA engine driver
[    0.300216] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator0[0]'
[    0.304438] SCSI subsystem initialized
[    0.305213] media: Linux media interface: v0.10
[    0.305295] videodev: Linux video capture interface: v2.00
[    0.305471] pps_core: LinuxPPS API ver. 1 registered
[    0.305487] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.305540] PTP clock support registered
[    0.305609] EDAC MC: Ver: 3.0.0
[    0.307367] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.308313] Advanced Linux Sound Architecture Driver Initialized.
[    0.310605] clocksource: Switched to clocksource timer1
[    0.326839] NET: Registered protocol family 2
[    0.328226] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 7168 bytes)
[    0.328294] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[    0.328363] TCP bind hash table entries: 2048 (order: 3, 49152 bytes)
[    0.328534] TCP: Hash tables configured (established 2048 bind 2048)
[    0.328713] UDP hash table entries: 256 (order: 2, 16384 bytes)
[    0.328784] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
[    0.329109] NET: Registered protocol family 1
[    0.330072] RPC: Registered named UNIX socket transport module.
[    0.330095] RPC: Registered udp transport module.
[    0.330108] RPC: Registered tcp transport module.
[    0.330121] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.330145] PCI: CLS 0 bytes, default 64
[    0.331897] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    0.334101] Initialise system trusted keyrings
[    0.334540] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[    0.345267] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.346647] NFS: Registering the id_resolver key type
[    0.346716] Key type id_resolver registered
[    0.346732] Key type id_legacy registered
[    0.346813] ntfs: driver 2.1.32 [Flags: R/O].
[    0.351239] Key type asymmetric registered
[    0.351270] Asymmetric key parser 'x509' registered
[    0.351391] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.351413] io scheduler noop registered
[    0.351428] io scheduler deadline registered
[    0.351901] io scheduler cfq registered (default)
[    0.351923] io scheduler mq-deadline registered
[    0.351939] io scheduler kyber registered
[    0.354921] pinctrl-single 44e10800.pinmux: 142 pins, size 568
[    0.456312] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    0.463029] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 30, base_baud = 3000000) is a 8250
[    1.116235] console [ttyS1] enabled
[    1.123241] omap_rng 48310000.rng: Random Number Generator ver. 20
[    1.130887] random: fast init done
[    1.134788] random: crng init done
[    1.161417] brd: module loaded
[    1.177914] loop: module loaded
[    1.186847] m25p80 spi0.0: is25lp128 (16384 Kbytes)
[    1.192199] 6 fixed-partitions partitions found on MTD device spi0.0
[    1.198860] Creating 6 MTD partitions on "spi0.0":
[    1.203899] 0x000000a00000-0x000001000000 : "userfs"
[    1.210957] 0x000000400000-0x000000a00000 : "ramdisk"
[    1.217784] 0x0000000e0000-0x0000003c0000 : "kernel"
[    1.224507] 0x0000003c0000-0x000000400000 : "device-tree"
[    1.231786] 0x0000000a0000-0x0000000e0000 : "u-boot-config"
[    1.239099] 0x000000000000-0x0000000a0000 : "u-boot"
[    1.247263] mdio_bus fixed-0: GPIO lookup for consumer reset
[    1.247281] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    1.247295] mdio_bus fixed-0: No GPIO consumer reset found
[    1.247341] libphy: Fixed MDIO Bus: probed
[    1.271053] mdio_bus 4a101000.mdio: GPIO lookup for consumer reset
[    1.271073] mdio_bus 4a101000.mdio: using device tree for GPIO lookup
[    1.271141] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]' - status (0)
[    1.271240] gpio gpiochip3: Persistence not supported for GPIO 16
[    1.271268] mdio_bus 4a101000.mdio: GPIO lookup for consumer reset
[    1.271278] mdio_bus 4a101000.mdio: using device tree for GPIO lookup
[    1.271311] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000[1]'
[    1.271338] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/ethernet@4a100000/mdio@4a101000[1]'
[    1.271354] mdio_bus 4a101000.mdio: using lookup tables for GPIO lookup
[    1.271367] mdio_bus 4a101000.mdio: No GPIO consumer reset found
[    1.330719] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    1.338763] libphy: 4a101000.mdio: probed
[    1.344197] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000/ethernet-phy@3[0]'
[    1.344698] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver Micrel KSZ8081 or KSZ8091
[    1.356078] cpsw 4a100000.ethernet: No slave[0] phy_id, phy-handle, or fixed-link property
[    1.364853] cpsw 4a100000.ethernet: Detected MACID = 10:ce:a9:92:ff:4f
[    1.371921] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    1.378584] cpsw 4a100000.ethernet: ALE Table size 1024
[    1.384155] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[    1.394388] i2c /dev entries driver
[    1.400263] sdhci: Secure Digital Host Controller Interface driver
[    1.406882] sdhci: Copyright(c) Pierre Ossman
[    1.412540] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
[    1.412556] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    1.412620] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/mmc@48060000[0]' - status (0)
[    1.412732] gpio gpiochip0: Persistence not supported for GPIO 6
[    1.412759] omap_gpio 44e07000.gpio: Could not set line 6 debounce to 200000 microseconds (-22)
[    1.421898] omap_hsmmc 48060000.mmc: Got CD GPIO
[    1.426748] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
[    1.426759] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    1.426790] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@48060000[0]'
[    1.426817] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@48060000[0]'
[    1.426833] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
[    1.426846] omap_hsmmc 48060000.mmc: No GPIO consumer wp found
[    1.427774] omap_hsmmc 48060000.mmc: Linked as a consumer to regulator.1
[    1.461475] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.476463] NET: Registered protocol family 10
[    1.483647] Segment Routing with IPv6
[    1.487710] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.493590] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.495501] mmc0: new high speed SDHC card at address 1234
[    1.501681] mmcblk0: mmc0:1234 SA32G 28.8 GiB
[    1.504196]  mmcblk0: p1 p2
[    1.522399] NET: Registered protocol family 17
[    1.527491] Key type dns_resolver registered
[    1.532385] omap_voltage_late_init: Voltage driver support not added
[    1.540504] Loading compiled-in X.509 certificates
[    1.603609] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    1.609347] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    1.616173] hctosys: unable to open rtc device (rtc0)
[    1.622299] ALSA device list:
[    1.625422]   No soundcards found.
[    1.633208] EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem
[    1.685725] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.694338] VFS: Mounted root (ext3 filesystem) on device 179:2.
[    1.710879] devtmpfs: mounted
[    1.716703] Freeing unused kernel memory: 1024K
[    1.722284] Run /sbin/init as init process
[    2.648741] udevd[99]: starting version 3.2.5
[    2.743919] udevd[100]: starting eudev-3.2.5
[    3.090259] omap_rtc 44e3e000.rtc: already running
[    3.098577] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    3.210051] omap_rtc 44e3e000.rtc: char device (253:0)
[    3.210098] omap_rtc 44e3e000.rtc: registered as rtc0
[    3.807621] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[    3.835734] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    3.874086] remoteproc remoteproc0: wkup_m3 is available
[    3.926188] remoteproc remoteproc0: powering up wkup_m3
[    3.936221] PM: Cannot get wkup_m3_ipc handle
[    3.954862] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 242888
[    3.955181] remoteproc remoteproc0: remote processor wkup_m3 is now up
[    3.955275] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
[    4.125101] omap-aes 53500000.aes: will run requests pump with realtime priority
[    4.178938] PM: bootloader does not support rtc-only!
[    5.687568] remoteproc remoteproc1: 4a334000.pru is available
[    5.693962] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed successfully
[    5.704061] remoteproc remoteproc2: 4a338000.pru is available
[    5.710220] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed successfully
[  142.960954] net eth0: initializing cpsw version 1.12 (0)
[  142.968561] libphy: PHY  not found
[  142.976126] net eth0: phy "" not found on slave 0, err -19
[  143.081842] Micrel KSZ8081 or KSZ8091 4a101000.mdio:03: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=4a101000.mdio:03, irq=POLL)
[  143.105426] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  145.201693] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
[  145.210130] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Have you any comments about the issue?

Additional info can be found below:

root@mgate-eth:~# uname -a
Linux mgate-eth 4.19.94-rt39-ga242ccf3f1 #1 PREEMPT RT Tue May 12 13:26:51 +03 2020 armv7l GNU/Linux
root@mgate-eth:~#
root@mgate-eth:~# ethtool -i eth0
driver: cpsw
version: 1.0
firmware-version:
expansion-rom-version:
bus-info: 4a100000.ethernet
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 10:ce:a9:92:ff:4f
          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:44

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

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

root@mgate-eth:~#
root@mgate-eth:~# ifconfig eth0 up
[  192.734501] net eth0: initializing cpsw version 1.12 (0)
[  192.841860] Micrel KSZ8081 or KSZ8091 4a101000.mdio:03: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=4a101000.mdio:03, irq=POLL)
[  192.856071] libphy: PHY  not found
[  192.859657] net eth0: phy "" not found on slave 1, err -19
[  192.871734] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  194.961743] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
[  194.970194] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~# 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 Receive-only
        Link partner advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 3
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000000 (0)

        Link detected: yes
root@mgate-eth:~# 

root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~# dmesg | grep davinci
[    1.330630] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    1.344586] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver Micrel KSZ8081 or KSZ8091
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~# dmesg | grep mdio
[    1.247706] mdio_bus fixed-0: GPIO lookup for consumer reset
[    1.247726] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    1.247739] mdio_bus fixed-0: No GPIO consumer reset found
[    1.271467] mdio_bus 4a101000.mdio: GPIO lookup for consumer reset
[    1.271487] mdio_bus 4a101000.mdio: using device tree for GPIO lookup
[    1.271553] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]' - status (0)
[    1.271676] mdio_bus 4a101000.mdio: GPIO lookup for consumer reset
[    1.271686] mdio_bus 4a101000.mdio: using device tree for GPIO lookup
[    1.271719] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000[1]'
[    1.271745] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/ethernet@4a100000/mdio@4a101000[1]'
[    1.271760] mdio_bus 4a101000.mdio: using lookup tables for GPIO lookup
[    1.271772] mdio_bus 4a101000.mdio: No GPIO consumer reset found
[    1.330630] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    1.338672] libphy: 4a101000.mdio: probed
[    1.344105] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000/ethernet-phy@3[0]'
[    1.344586] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver Micrel KSZ8081 or KSZ8091
[   65.611748] Micrel KSZ8081 or KSZ8091 4a101000.mdio:03: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=4a101000.mdio:03, irq=POLL)
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~# dmesg | grep phy
[    0.000000] Booting Linux on physical CPU 0x0
[    1.247788] libphy: Fixed MDIO Bus: probed
[    1.338672] libphy: 4a101000.mdio: probed
[    1.344105] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000/ethernet-phy@3[0]'
[    1.344586] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver Micrel KSZ8081 or KSZ8091
[    1.355979] cpsw 4a100000.ethernet: No slave[0] phy_id, phy-handle, or fixed-link property
[   65.498434] libphy: PHY  not found
[   65.507160] net eth0: phy "" not found on slave 0, err -19
[   65.611748] Micrel KSZ8081 or KSZ8091 4a101000.mdio:03: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=4a101000.mdio:03, irq=POLL)
root@mgate-eth:~#
root@mgate-eth:~#
root@mgate-eth:~# dmesg | grep cpsw
[    0.000000] OF: fdt: Machine model: TI AM335x Kunbus Modular Gateway - Enabling CPSW (dts file v8.1.4 cpsw-modif2)
[    1.355979] cpsw 4a100000.ethernet: No slave[0] phy_id, phy-handle, or fixed-link property
[    1.364788] cpsw 4a100000.ethernet: Detected MACID = 10:ce:a9:92:ff:4f
[    1.371845] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    1.378508] cpsw 4a100000.ethernet: ALE Table size 1024
[    1.384083] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[   65.490827] net eth0: initializing cpsw version 1.12 (0)
[   67.681602] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
root@mgate-eth:~#

  • Please describe your Ethernet hardware in more details.

  • Yes, of course, Biser

    • We have 3 ethernet interfaces.
      • 2 ports of them are used with PRUETH (not enabled for now)
      • and 1 port of them is used as CPSW (enabled in the DTS file)
      • Board has 3 PHY chips with same chip brand/model (KSZ8081MNXIA)
      • CPSW port is related to "PHY Address = 3" as mentioned in the board's scheme file
      • "RMII1_***"  pins of "AM3359BZCZA80" Soc are used for MII bus.
      • PHY Reset is represented as pulldown in the scheme, and I updated it as it is.

    If anything you want to learn more specifically, please inform me.

    Additionally, I am a bit suspicious of "reset-delay-us = <2>;" line in my DST file. How do you think about the value?

  • According to the KSZ8081MNXIA PHY chip datasheet, I've done some fine-tuning for 'reset-delay-us' in the 'davinci_mdio' block of the DTS file, but nothing changed, I got same error lines. 

  • As the additional information,

    Trying to ping and wdt crash messages are below;

    root@mgate-eth:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 10:ce:a9:92:ff:4f
              inet addr:10.10.10.111  Bcast:10.255.255.255  Mask:255.0.0.0
              inet6 addr: fe80::12ce:a9ff:fe92:ff4f/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:1286 (1.2 KiB)
              Interrupt:44
    
    root@mgate-eth:~#
    root@mgate-eth:~#
    root@mgate-eth:~# ping 10.10.10.1
    PING 10.10.10.1 (10.10.10.1): 56 data bytes
    [11366.080675] ------------[ cut here ]------------
    [11366.085582] WARNING: CPU: 0 PID: 10 at net/sched/sch_generic.c:466 dev_watchdog+0x27c/0x280
    [11366.094330] NETDEV WATCHDOG: eth0 (cpsw): transmit queue 0 timed out
    [11366.100985] Modules linked in: pru_rproc irq_pruss_intc pruss pm33xx wkup_m3_rproc wkup_m3_ipc remoteproc omap_aes_driver omap_sham crypto_engine omap_crypto pruss_soc_bus ti_emif_sram rtc_omap omap_wdt
    [11366.119880] CPU: 0 PID: 10 Comm: ktimersoftd/0 Not tainted 4.19.94-rt39-ga242ccf3f1 #1
    [11366.128170] Hardware name: Generic AM33XX (Flattened Device Tree)
    [11366.134550] Backtrace:
    [11366.137139] [<c010c7f0>] (dump_backtrace) from [<c010cb60>] (show_stack+0x18/0x1c)
    [11366.145075]  r7:00000009 r6:00000000 r5:c0b44ea0 r4:cf071de4
    [11366.151023] [<c010cb48>] (show_stack) from [<c08bacc8>] (dump_stack+0x24/0x28)
    [11366.158605] [<c08baca4>] (dump_stack) from [<c012a1f0>] (__warn+0xe0/0xf8)
    [11366.165816] [<c012a110>] (__warn) from [<c0129df0>] (warn_slowpath_fmt+0x50/0x6c)
    [11366.173662]  r9:00000480 r8:cf249000 r7:c0d17ec0 r6:cf249c2c r5:c0b44e64 r4:c0d05888
    [11366.181782] [<c0129da4>] (warn_slowpath_fmt) from [<c07b17cc>] (dev_watchdog+0x27c/0x280)
    [11366.190346]  r3:cf249000 r2:c0b44e64
    [11366.194094]  r5:cf2492b0 r4:00000000
    [11366.197853] [<c07b1550>] (dev_watchdog) from [<c0183bc0>] (expire_timers+0x78/0x180)
    [11366.205970]  r10:c07b1550 r9:c0d17f04 r8:00000000 r7:c0d17f00 r6:cf071e9c r5:00000000
    [11366.214169]  r4:ffffe000
    [11366.216835] [<c0183b48>] (expire_timers) from [<c0183f40>] (run_timer_softirq+0xc4/0x254)
    [11366.225406]  r10:00000001 r9:c0d05888 r8:c0d17ec0 r7:c0d17f00 r6:c0d17f00 r5:cf071e9c
    [11366.233605]  r4:cf071e9c
    [11366.236276] [<c0183e7c>] (run_timer_softirq) from [<c012d6b8>] (do_current_softirqs+0x1c8/0x27c)
    [11366.245482]  r9:00000000 r8:00000020 r7:04208140 r6:ffffe000 r5:c0d0fb24 r4:00000004
    [11366.253603] [<c012d4f0>] (do_current_softirqs) from [<c012d7a0>] (run_ksoftirqd+0x34/0x54)
    [11366.262266]  r10:cf051df0 r9:00000000 r8:c0d05888 r7:c0d0faf4 r6:00000001 r5:ffffe000
    [11366.270462]  r4:ffffe000
    [11366.273143] [<c012d76c>] (run_ksoftirqd) from [<c014c124>] (smpboot_thread_fn+0x2c0/0x2ec)
    [11366.281798]  r5:ffffe000 r4:cf02eb80
    [11366.285556] [<c014be64>] (smpboot_thread_fn) from [<c0147d58>] (kthread+0x158/0x160)
    [11366.293673]  r9:c014be64 r8:cf02eb80 r7:cf070000 r6:00000000 r5:cf02ec00 r4:cf02ec40
    [11366.301793] [<c0147c00>] (kthread) from [<c01010f0>] (ret_from_fork+0x14/0x24)
    [11366.309356] Exception stack(0xcf071fb0 to 0xcf071ff8)
    [11366.314653] 1fa0:                                     00000000 00000000 00000000 00000000
    [11366.323226] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [11366.331794] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
    [11366.338729]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c0147c00
    [11366.346927]  r4:cf02ec00
    [11366.349581] ---[ end trace 0000000000000002 ]---
    
    
    ^C
    --- 10.10.10.1 ping statistics ---
    286 packets transmitted, 0 packets received, 100% packet loss
    root@mgate-eth:~#
    

    And 'ethtool -S eth'' output after ping

    root@mgate-eth:~# 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: 84
         Tx DMA chan 0: tail_enqueue: 149
         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: 216
         Tx DMA chan 0: empty_dequeue: 82
         Tx DMA chan 0: busy_dequeue: 0
         Tx DMA chan 0: good_dequeue: 83
         Tx DMA chan 0: requeue: 1
         Tx DMA chan 0: teardown_dequeue: 127
    root@mgate-eth:~#

  • Hi Biser,

    I got the same errors on the ICEv2 board when using the attached DTS.

    I've modified it according to "software-dl.ti.com/.../CPSW.html", the section "Primary Interface on Second External Port".

    May you check it out and try out on your own ICEv2?

    Attachment:

    am335x-icev2-060300-singleemac-modifs.DTS.zip

    Note: Either "phy_id = <&davinci_mdio>, <1>;" or "phy_id = <&davinci_mdio>, <3>;" gives same result.

  • Hello Biser,

    Is there any progress in the issue at your side?

  • I've resolved the issue, but partially.

    After merging am335x-bone-common.dtsi and am335x-icev2.dts, I got rid of "net eth0: phy "" not found on slave 0, err -19"  error lines

    At now;

    root@mgate-eth:~# ifconfig eth0 up
    [  653.700476] net eth0: initializing cpsw version 1.12 (0)
    [  653.801800] Micrel KSZ8081 or KSZ8091 4a101000.mdio:03: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=4a101000.mdio:03, irq=POLL)
    [  653.822165] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [  655.921641] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
    [  655.930097] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    
    

    But I cannot get IP from DHCP, still. I will open IP issue on a separate thread as related to this