Custom board with AM335x PHY not found

Hi All,

I have a custom board using AM3358, which is very similar to beaglebone. I am having trouble with bringing up ethernet.

This is what I get when I execute dmesg | grep mdio

[ 4.412295] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 4.418430] davinci_mdio 4a101000.mdio: no live phy, scanning all
[ 4.424791] davinci_mdio: probe of 4a101000.mdio failed with error -5
[ 10.044897] libphy: PHY 4a101000.mdio:00 not found
[ 10.049713] net eth0: phy 4a101000.mdio:00 not found on slave 0
[ 12.258086] libphy: PHY 4a101000.mdio:00 not found
[ 12.262928] net eth0: phy 4a101000.mdio:00 not found on slave 0

I am using a custom linux image which was built using buildroot. I am able to get ethernet working with my same linux image on beaglebone. To me it seems like its a hardware issue.
Please see my Ethernet schematics. I am using a SI-52003-F as my ethernet connector for my POE circuit (which is not shown here).

Any help would be greatly appreciated.

Thank you,
Samer

Smells like:

https://github.com/RobertCNelson/bb-kernel/blob/am33x-v4.14/patches/drivers/ti/cpsw/0001-cpsw-search-for-phy.patch

If you have more board changes in the works, route the lan8710a to a gpio so you can reset it in the kernel…

see the mdio binding: reset-gpios/reset-delay-us…

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/mdio.txt

Regards,

Hi Robert,

How do I apply this patch?

https://github.com/RobertCNelson/bb-kernel/blob/am33x-v4.14/patches/drivers/ti/cpsw/0001-cpsw-search-for-phy.patch

I will definitely make the hardware changes in my 2nd board.

Thank you,
Samer

So I cut the trace for reset pin on Lan8710 and jumpered a wire to a gpio pin. And I added the reset gpio/reset-delay-us as shown in this link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/mdio.txt

I added following commands in am335x.dtsi on line 1057

reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
		reset-delay-us = <100>;

After adding these lines, I rebuilt my device tree and booted the board with new dtb. But I do not get a low signal on GPIO1_16.

What am I doing wrong here? Do I need to initialize GPIO1_16 as high somewhere? Currently GPIO1_16 gives 1.5V constantly.

Any help would be greatly appreciated. 

I had a similar problem. I believe that you need to specify the phy as
a child node to trigger the reset GPIO logic in the mdio driver.
Here's the relevant section of my device tree:

&davinci_mdio {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&davinci_mdio_default>;
        pinctrl-1 = <&davinci_mdio_sleep>;
        status = "okay";

        reset-gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
        reset-delay-us = <100>;
        ethphy0: @cpsw_emac0 {};
};

I've only done some quick tests, but it appears to be working.

-Frank

Hi Frank,

Where exactly do I need to put this code in the device tree?

I tried adding this code in am33xx.dtsi, but my GPIO is not getting triggered. It looks like this:

mac: ethernet@4a100000 {
compatible = “ti,am335x-cpsw”,“ti,cpsw”;
ti,hwmods = “cpgmac0”;
clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
clock-names = “fck”, “cpts”;
cpdma_channels = <8>;
ale_entries = <1024>;
bd_ram_size = <0x2000>;
mac_control = <0x20>;
slaves = <2>;
active_slave = <0>;
cpts_clock_mult = <0x80000000>;
cpts_clock_shift = <29>;
reg = <0x4a100000 0x800
0x4a101200 0x100>;
#address-cells = <1>;
#size-cells = <1>;
/*

  • c0_rx_thresh_pend
  • c0_rx_pend
  • c0_tx_pend
  • c0_misc_pend
    */
    interrupts = <40 41 42 43>;
    ranges;
    syscon = <&scm_conf>;
    status = “disabled”;

davinci_mdio: mdio@4a101000 {
compatible = “ti,cpsw-mdio”,“ti,davinci_mdio”;
#address-cells = <1>;
#size-cells = <0>;
ti,hwmods = “davinci_mdio”;
bus_freq = <1000000>;
reg = <0x4a101000 0x100>;

status = “disabled”;
};

&davinci_mdio {
pinctrl-names = “default”, “sleep”;
pinctrl-0 = <&davinci_mdio_default>;
pinctrl-1 = <&davinci_mdio_sleep>;
status = “okay”;

reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
reset-delay-us = <100>;
ethphy0: @cpsw_emac0 {};
};

cpsw_emac0: slave@4a100200 {
/* Filled in by U-Boot */
mac-address = [ 00 00 00 00 00 00 ];
};

cpsw_emac1: slave@4a100300 {
/* Filled in by U-Boot */
mac-address = [ 00 00 00 00 00 00 ];
};

phy_sel: cpsw-phy-sel@44e10650 {
compatible = “ti,am3352-cpsw-phy-sel”;
reg= <0x44e10650 0x4>;
reg-names = “gmii-sel”;
};
};

Thank you,
Samer

Hi Samer,

Where exactly do I need to put this code in the device tree?

In my setup, I didn't modify am33xx.dtsi. I modified the main .dts
file for my board by adding the fragment that I posted. The analogous
file for the beaglebones is am335x-bone-common.dtsi and if you look
down in it, you can see the existing reference to davinci_mdio.

I get confused frequently with what is actually in device tree files,
so I almost always run `dtc -o out.dts am335x-<name>.dtb` to decompile
the device tree and see what actually got added to it.

My other idea for you is to try adding printk's to
<kernel>/drivers/net/phy/mdio_bus.c to verify that the phy reset code
is being called. If you open mdio_bus.c and search for the
__mdiobus_register function, there's a line about it getting the
"reset" GPIO from the device tree and then if it's successful, you can
see calls to gpiod_set_valud_cansleep. I put 'printk(KERN_ERR
"Resetting phy!!!");` calls throughout this code when I didn't see the
gpio working. At least this way, you can know whether the GPIO is
actually being toggled in software.

-Frank

Hi Frank,

I tried modifying am335x-bone-common.dtsi but it did not toggle the gpio pin.

I was also not able to find gpiod_set_valud_cansleep, in my mdio_bus.c.

Following is my _mdiobus_register function:

`
int __mdiobus_register(struct mii_bus *bus, struct module *owner)
{
int i, err;

if (NULL == bus || NULL == bus->name ||
NULL == bus->read || NULL == bus->write)
return -EINVAL;

BUG_ON(bus->state != MDIOBUS_ALLOCATED &&
bus->state != MDIOBUS_UNREGISTERED);

bus->owner = owner;
bus->dev.parent = bus->parent;
bus->dev.class = &mdio_bus_class;
bus->dev.groups = NULL;
dev_set_name(&bus->dev, “%s”, bus->id);

err = device_register(&bus->dev);
if (err) {
pr_err(“mii_bus %s failed to register\n”, bus->id);
put_device(&bus->dev);
return -EINVAL;
}

mutex_init(&bus->mdio_lock);

if (bus->reset)
bus->reset(bus);

for (i = 0; i < PHY_MAX_ADDR; i++) {
if ((bus->phy_mask & (1 << i)) == 0) {
struct phy_device *phydev;

phydev = mdiobus_scan(bus, i);
if (IS_ERR(phydev)) {
err = PTR_ERR(phydev);
goto error;
}
}
}

bus->state = MDIOBUS_REGISTERED;
pr_info("%s: probed\n", bus->name);
return 0;

error:
while (–i >= 0) {
struct phy_device *phydev = bus->phy_map[i];
if (phydev) {
phy_device_remove(phydev);
phy_device_free(phydev);
}
}
device_del(&bus->dev);
return err;
}
EXPORT_SYMBOL(__mdiobus_register);

`

Thank you,
Samer

Hi Frank,

I tried modifying am335x-bone-common.dtsi but it did not toggle the gpio pin.

I was also not able to find gpiod_set_valud_cansleep, in my mdio_bus.c.

Maybe we're using different Linux versions? I'm using Linux 4.14. This
is what I see:

Then lines 365 and 367 for the actual toggling of the GPIO.

-Frank

Yeah, it was a recent change on mainline, say around v4.12.xx

Regards,

Yes I am using V4.4, that’s why its different. I’ll try it with V4.14.

Thanks,
Samer

I tried with Kernel V4.14, but I am still not able to toggle gpio.

When i run “dtc -o out.dts am335x-boneblack.dtb” I get following warnings, but I am not sure what to look for here.

debian@beaglebone:~/dtb-rebuilder-4.14.x/src/arm$ dtc -o out.dts am335x-boneblac
k.dtb
out.dts: Warning (unit_address_vs_reg): Node /ocp/i2c@44e0b000/tda19988 has a re
g or ranges property, but no unit name
out.dts: Warning (unit_address_vs_reg): Node /ocp/i2c@44e0b000/tda19988/ports/po
rt@0 has a unit name, but no reg property
out.dts: Warning (unit_address_vs_reg): Node /ocp/i2c@44e0b000/tda19988/ports/po
rt@0/endpoint@0 has a unit name, but no reg property
out.dts: Warning (unit_address_vs_reg): Node /ocp/ethernet@4a100000/mdio@4a10100
0/@cpsw_emac0 has a unit name, but no reg property
out.dts: Warning (unit_address_vs_reg): Node /ocp/ethernet@4a100000/slave@4a1002
00 has a unit name, but no reg property
out.dts: Warning (unit_address_vs_reg): Node /ocp/ethernet@4a100000/slave@4a1003
00 has a unit name, but no reg property
out.dts: Warning (unit_address_vs_reg): Node /ocp/lcdc@4830e000/port/endpoint@0
has a unit name, but no reg property
out.dts: Warning (unit_address_vs_reg): Node /bone_capemgr/baseboardmaps/board@0
has a unit name, but no reg property
out.dts: Warning (unit_address_vs_reg): Node /bone_capemgr/baseboardmaps/board@1
has a unit name, but no reg property

Thank you,
Samer

Hi Frank,

Actually I am able to toggle GPIO now, but the GPIO is getting reset at Kernel. PHY reset is suppose to happen at startup on u-boot. How can I toggle GPIO at startup?

Thanks,
Samer

No the dts file your tweaking would cause the phy reset to occur in
the kernel startup..

For u-boot, you need to modify the u-boot sources..

Regards,

hardware side: is your REFCLK connected to PHY and am335x? 25MHz clock can be detected? and 2 PHY ADDR pins stable while mdio probing?

uboot toggle reset example can be found here: https://github.com/c2h2/aria-uboot/blob/7504def7830aaf4e8478ad098d8eec1951d5ccb6/board/ti/am335x/board.c#L505

Yiling,

My schematics are similar to beaglebone, which you can see in my first post. So my REFCLK is not connected as its also not connected in beaglebone black. And yes I am getting 25MHz clock. PHYAD0 and PHYAD2 show 0V and PHYAD1 has 1.6V.

Please see my boot log below for my custom image:

U-Boot 2018.03-dirty (Aug 14 2018 - 08:41:54 -0600)

CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 512 MiB
No match for driver ‘omap_hsmmc’
No match for driver ‘omap_hsmmc’
Some drivers were not found
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4…
** Unable to use mmc 0:1 for loading the env **
Failed (-5)
Board: BeagleBone Black
not set. Validating first E-fuse MAC
BeagleBone Black:
BeagleBone: cape eeprom: i2c_probe: 0x54:
BeagleBone: cape eeprom: i2c_probe: 0x55:
BeagleBone: cape eeprom: i2c_probe: 0x56:
BeagleBone: cape eeprom: i2c_probe: 0x57:
Net: eth0: MII MODE
Could not get PHY for cpsw: addr 0
cpsw
Press SPACE to abort autoboot in 2 seconds
board_name=[A335BNLT] …
board_rev=[000C] …
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
** Bad device 0:2 0x82000000 **
** Bad device 0:2 0x82000000 **
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1…
60946 bytes read in 8 ms (7.3 MiB/s)
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt …
186 bytes read in 3 ms (60.5 KiB/s)
gpio: pin 55 (gpio 55) value is 1
Loaded environment from /uEnv.txt
Importing environment from mmc …
Checking if uenvcmd is set …
gpio: pin 56 (gpio 56) value is 1
Running uenvcmd …
5000008 bytes read in 317 ms (15 MiB/s)
loading /am335x-boneblack.dtb …
60946 bytes read in 9 ms (6.5 MiB/s)
bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait

Flattened Device Tree blob at 88000000

Booting using the fdt blob at 0x88000000
Loading Device Tree to 8ffee000, end 8ffffe11 … OK

Starting kernel …

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.4.41 (root@threesixty-VirtualBox) (gcc version 7.
3.0 (Buildroot 2018.02.4) ) #3 SMP Tue Aug 14 07:27:59 MDT 2018
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructio
n cache
[ 0.000000] Machine model: TI AM335x BeagleBone Black
[ 0.000000] cma: Reserved 16 MiB at 0x9e800000
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (sgx neon )
[ 0.000000] PERCPU: Embedded 14 pages/cpu @df907000 s24936 r8192 d24216 u5734
4
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pag
es: 129408
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 r
w 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: 481792K/522240K available (6761K kernel code, 760K rwdata
, 2264K rodata, 452K init, 8263K bss, 24064K reserved, 16384K cma-reserved, 0K h
ighmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xe0800000 - 0xff800000 ( 496 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc08d878c (9026 kB)
[ 0.000000] .init : 0xc08d9000 - 0xc094a000 ( 452 kB)
[ 0.000000] .data : 0xc094a000 - 0xc0a08138 ( 761 kB)
[ 0.000000] .bss : 0xc0a0a000 - 0xc121bea0 (8264 kB)
[ 0.000000] Running RCU self tests
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU lockdep checking is enabled.
[ 0.000000] Build-time adjustment of leaf fanout to 32.
[ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=1
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrup
ts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000016] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478
484971ns
[ 0.000040] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max
_idle_ns: 79635851949 ns
[ 0.000086] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000710] clocksource_probe: no matching clocksources found
[ 0.001559] Console: colour dummy device 80x30
[ 0.001615] Lock dependency validator: Copyright © 2006 Red Hat, Inc., Ingo
Molnar
[ 0.001625] … MAX_LOCKDEP_SUBCLASSES: 8
[ 0.001632] … MAX_LOCK_DEPTH: 48
[ 0.001640] … MAX_LOCKDEP_KEYS: 8191
[ 0.001647] … CLASSHASH_SIZE: 4096
[ 0.001654] … MAX_LOCKDEP_ENTRIES: 32768
[ 0.001661] … MAX_LOCKDEP_CHAINS: 65536
[ 0.001668] … CHAINHASH_SIZE: 32768
[ 0.001676] memory used by lock dependency info: 5167 kB
[ 0.001683] per task-struct memory footprint: 1536 bytes
[ 0.001708] Calibrating delay loop… 996.14 BogoMIPS (lpj=4980736)
[ 0.078600] pid_max: default: 32768 minimum: 301
[ 0.078983] Security Framework initialized
[ 0.079093] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.079107] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.081925] Initializing cgroup subsys io
[ 0.082027] Initializing cgroup subsys memory
[ 0.082119] Initializing cgroup subsys devices
[ 0.082238] Initializing cgroup subsys freezer
[ 0.082313] Initializing cgroup subsys perf_event
[ 0.082379] CPU: Testing write buffer coherency: ok
[ 0.083809] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[ 0.083935] Setting up static identity map for 0x80008280 - 0x800082f8
[ 0.087514] Brought up 1 CPUs
[ 0.087536] SMP: Total of 1 processors activated (996.14 BogoMIPS).
[ 0.087547] CPU: All CPU(s) started in SVC mode.
[ 0.091526] devtmpfs: initialized
[ 0.140220] VFP support v0.3: implementor 41 architecture 3 part 30 variant c
rev 3
[ 0.230575] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ma
x_idle_ns: 19112604462750000 ns
[ 0.232991] pinctrl core: initialized pinctrl subsystem
[ 0.237994] NET: Registered protocol family 16
[ 0.243663] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.245655] cpuidle: using governor ladder
[ 0.245685] cpuidle: using governor menu
[ 0.257928] OMAP GPIO hardware version 0.1
[ 0.283077] No ATAGs?
[ 0.283113] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.283758] omap4_sram_init:Unable to allocate sram needed to handle errata I
688
[ 0.283776] omap4_sram_init:Unable to get sram pool needed to handle errata I
688
[ 0.325337] edma 49000000.edma: TI EDMA DMA engine driver
[ 0.329819] SCSI subsystem initialized
[ 0.331479] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wk
up@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[ 0.334656] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
[ 0.335103] pps_core: LinuxPPS API ver. 1 registered
[ 0.335116] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giome
tti giometti@linux.it
[ 0.335169] PTP clock support registered
[ 0.339196] clocksource: Switched to clocksource timer1
[ 0.475785] NET: Registered protocol family 2
[ 0.477741] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.477839] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
[ 0.479175] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.479426] UDP hash table entries: 256 (order: 2, 20480 bytes)
[ 0.479601] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[ 0.480490] NET: Registered protocol family 1
[ 0.482188] RPC: Registered named UNIX socket transport module.
[ 0.482211] RPC: Registered udp transport module.
[ 0.482221] RPC: Registered tcp transport module.
[ 0.482230] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.484314] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counter
s available
[ 0.488630] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.488850] audit: initializing netlink subsys (disabled)
[ 0.489350] audit: type=2000 audit(0.490:1): initialized
[ 0.493827] VFS: Disk quotas dquot_6.6.0
[ 0.494014] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.496383] NFS: Registering the id_resolver key type
[ 0.496740] Key type id_resolver registered
[ 0.496756] Key type id_legacy registered
[ 0.496942] jffs2: version 2.2. (NAND) (SUMMARY) �© 2001-2006 Red Hat, Inc.
[ 0.502394] io scheduler noop registered
[ 0.502427] io scheduler deadline registered
[ 0.502481] io scheduler cfq registered (default)
[ 0.504188] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.507150] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.513289] omap_uart 44e09000.serial: no wakeirq for uart0
[ 0.513806] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 158, base_baud =
3000000) is a OMAP UART0
[ 1.226413] console [ttyO0] enabled
[ 1.266572] brd: module loaded
[ 1.292036] loop: module loaded
[ 1.297891] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 1.369139] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 1.375548] libphy: 4a101000.mdio: probed
[ 1.379795] mdio_bus 4a101000.mdio: /ocp/ethernet@4a100000/mdio@4a101000/@cps
w_emac0 has invalid PHY address
[ 1.390092] mdio_bus 4a101000.mdio: scan phy at address 0
[ 1.396090] mdio_bus 4a101000.mdio: scan phy at address 1
[ 1.402001] mdio_bus 4a101000.mdio: scan phy at address 2
[ 1.407848] mdio_bus 4a101000.mdio: scan phy at address 3
[ 1.413699] mdio_bus 4a101000.mdio: scan phy at address 4
[ 1.419549] mdio_bus 4a101000.mdio: scan phy at address 5
[ 1.425398] mdio_bus 4a101000.mdio: scan phy at address 6
[ 1.431249] mdio_bus 4a101000.mdio: scan phy at address 7
[ 1.437098] mdio_bus 4a101000.mdio: scan phy at address 8
[ 1.442949] mdio_bus 4a101000.mdio: scan phy at address 9
[ 1.448798] mdio_bus 4a101000.mdio: scan phy at address 10
[ 1.454714] mdio_bus 4a101000.mdio: scan phy at address 11
[ 1.460694] mdio_bus 4a101000.mdio: scan phy at address 12
[ 1.466608] mdio_bus 4a101000.mdio: scan phy at address 13
[ 1.472589] mdio_bus 4a101000.mdio: scan phy at address 14
[ 1.478503] mdio_bus 4a101000.mdio: scan phy at address 15
[ 1.484484] mdio_bus 4a101000.mdio: scan phy at address 16
[ 1.490464] mdio_bus 4a101000.mdio: scan phy at address 17
[ 1.496378] mdio_bus 4a101000.mdio: scan phy at address 18
[ 1.502294] mdio_bus 4a101000.mdio: scan phy at address 19
[ 1.508208] mdio_bus 4a101000.mdio: scan phy at address 20
[ 1.514124] mdio_bus 4a101000.mdio: scan phy at address 21
[ 1.520104] mdio_bus 4a101000.mdio: scan phy at address 22
[ 1.526018] mdio_bus 4a101000.mdio: scan phy at address 23
[ 1.531999] mdio_bus 4a101000.mdio: scan phy at address 24
[ 1.537913] mdio_bus 4a101000.mdio: scan phy at address 25
[ 1.543894] mdio_bus 4a101000.mdio: scan phy at address 26
[ 1.549874] mdio_bus 4a101000.mdio: scan phy at address 27
[ 1.555788] mdio_bus 4a101000.mdio: scan phy at address 28
[ 1.561769] mdio_bus 4a101000.mdio: scan phy at address 29
[ 1.567683] mdio_bus 4a101000.mdio: scan phy at address 30
[ 1.573599] mdio_bus 4a101000.mdio: scan phy at address 31
[ 1.580913] cpsw 4a100000.ethernet: Detected MACID = 98:84:e3:ae:08:53
[ 1.588169] cpsw 4a100000.ethernet: cpts: overflow check period 850
[ 1.598865] mousedev: PS/2 mouse device common for all mice
[ 1.604853] i2c /dev entries driver
[ 1.611619] omap_hsmmc 48060000.mmc: Got CD GPIO
[ 1.689521] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.697065] oprofile: using arm/armv7
[ 1.701820] Initializing XFRM netlink socket
[ 1.706640] NET: Registered protocol family 10
[ 1.714822] sit: IPv6 over IPv4 tunneling driver
[ 1.721994] NET: Registered protocol family 17
[ 1.726728] NET: Registered protocol family 15
[ 1.731824] Key type dns_resolver registered
[ 1.736473] omap_voltage_late_init: Voltage driver support not added
[ 1.743194] sr_dev_init: No voltage domain specified for smartreflex0. Cannot
initialize
[ 1.751680] sr_dev_init: No voltage domain specified for smartreflex1. Cannot
initialize
[ 1.761514] ThumbEE CPU extension supported.
[ 1.766014] Registering SWP/SWPB emulation handler
[ 1.771106] SmartReflex Class3 initialized
[ 1.793342] mmc0: host does not support reading read-only switch, assuming wr
ite-enable
[ 1.808250] mmc0: new high speed SDHC card at address aaaa
[ 1.817960] mmcblk0: mmc0:aaaa SS08G 7.40 GiB
[ 1.832680] mmcblk0: p1 p2
[ 1.848156] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 1.854704] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 1.862519] hctosys: unable to open rtc device (rtc0)
[ 1.867815] sr_init: No PMIC hook to init smartreflex
[ 1.873455] sr_init: platform driver register failed for SR
[ 1.932483] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. O
pts: (null)
[ 1.941248] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 1.962031] devtmpfs: mounted
[ 1.965948] Freeing unused kernel memory: 452K (c08d9000 - c094a000)
[ 1.972703] This architecture does not have kernel memory protection.
[ 2.000084] mmc1: MAN_BKOPS_EN bit is not set
[ 2.015708] mmc1: new high speed MMC card at address 0001
[ 2.025210] mmcblk1: mmc1:0001 DG4008 7.28 GiB
[ 2.035117] mmcblk1boot0: mmc1:0001 DG4008 partition 1 4.00 MiB
[ 2.045609] mmcblk1boot1: mmc1:0001 DG4008 partition 2 4.00 MiB
[ 2.209963] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
[ 2.249607] devpts: called with bogus options
Starting logging: OK
Populating /dev using udev: /sbin/udevd: /lib/libc.so.6: version GLIBC_2.25' no t found (required by /lib/libblkid.so.1) /sbin/udevd: /lib/libc.so.6: version GLIBC_2.25’ not found (required by /lib/li
buuid.so.1)
FAIL
Initializing random number generator… [ 2.607346] random: dd: uninitialized
urandom read (512 bytes read, 13 bits of entropy available)
done.
Starting network: [ 2.813934] net eth0: initializing cpsw version 1.12 (0)
[ 2.819602] net eth0: initialized cpsw ale version 1.4
[ 2.824970] net eth0: ALE Table size 1024
[ 2.830822] libphy: PHY 4a101000.mdio:00 not found
[ 2.835830] net eth0: phy “4a101000.mdio:00” not found on slave 0, err -19
[ 2.853248] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc: started, v1.27.2
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: no lease, failing
FAIL
/usr/bin/ssh-keygen: /lib/libc.so.6: version GLIBC_2.25' not found (required by /usr/bin/ssh-keygen) /usr/bin/ssh-keygen: /lib/libc.so.6: version GLIBC_2.26’ not found (required by
/usr/bin/ssh-keygen)
Starting sshd: /usr/sbin/sshd: /lib/libc.so.6: version GLIBC_2.25' not found (r equired by /usr/sbin/sshd) /usr/sbin/sshd: /lib/libc.so.6: version GLIBC_2.26’ not found (required by /usr
/sbin/sshd)
OK
ti-gfx: starting pvr driver
fbset: can’t open ‘/dev/fb0’: No such file or directory
fbset: can’t open ‘/dev/fb0’: No such file or directory
fbset: can’t open ‘/dev/fb0’: No such file or directory
modprobe: module pvrsrvkm not found in modules.dep
modprobe: module omaplfb not found in modules.dep
modprobe: module bufferclass_ti not found in modules.dep
BusyBox v1.27.2 (2018-08-02 15:59:40 MDT) multi-call binary.

Usage: mknod [-m MODE] NAME TYPE MAJOR MINOR

Create a special file (block, character, or pipe)

-m MODE Creation mode (default a=rw)
TYPE:
b Block device
c or u Character device
p Named pipe (MAJOR and MINOR are ignored)
chmod: /dev/pvrsrvkm: No such file or directory
PVR:(Error): OpenServices: Cannot open device driver /dev/omapdrm_pvr. [140, /pv
r_bridge_u.c]
PVR:(Error): PVRSRVInitSrvConnect: PVRSRVConnect failed [2572, /bridged_pvr_glue
.c]
PVR:(Error): SrvInit: PVRSRVInitSrvConnect failed (4) [37, /srvinit.c]
/usr/bin/pvrsrvctl: SrvInit failed (already initialized?) (err=4)
ti-gfx: unable to start server
Initializing SGX graphics driver PVR:(Error): OpenServices: Cannot open device d
river /dev/omapdrm_pvr. [140, /pvr_bridge_u.c]
PVR:(Error): PVRSRVInitSrvConnect: PVRSRVConnect failed [2572, /bridged_pvr_glue
.c]
PVR:(Error): SrvInit: PVRSRVInitSrvConnect failed (4) [37, /srvinit.c]
PVR:(Error): main: SrvInit failed (4) [49, /pvrsrvinit.c]
FAIL

Welcome to Threesixty
threesixty-buildroot login:

Thank you,

I finally got it working. Previously I damaged LAN8710 so I had to solder a new one, and my MDIO pin was not making a good connection with the board. So I re-soldered it and now my network is up and running.

Thanks,
Samer