From: Vishnu Patekar <vishnupatekar0...@gmail.com> Reply-To: "beagleboard@googlegroups.com" <beagleboard@googlegroups.com> Date: Monday, July 7, 2014 at 9:26 AM To: "beagleboard@googlegroups.com" <beagleboard@googlegroups.com> Subject: Re: [beagleboard] Re: Beaglebone Black Ethernet Phy Not Detected on Boot.
> Hello John, > Thanks for info. > > I found below configs are not set in 3.15 by default which were set in 3.8. If > we set below configs in 3.15, it works including NFS. > > CONFIG_IP_PNP=y > CONFIG_IP_PNP_DHCP=y > CONFIG_ROOT_NFS=y > > optional: > CONFIG_IP_PNP_BOOTP=y > CONFIG_IP_PNP_RARP=y Hi Vishnu, I found something similar to you. I enabled CONFIG_IP_PNP CONFIG_ROOT_NFS Which gets me further and I see the login prompt, but now I get the following error: INIT: /run/initctl is not a fifo I did try the other config selections that you did and it didn¹t make a difference for me. I¹m using Robert Nelson¹s Debian-v7.5-console-armhf rootfs. Regards, John > > > > On Sat, Jul 5, 2014 at 11:49 PM, John Syn <john3...@gmail.com> wrote: >> This is a known problem with V3.15 and NFS. We are working on finding a >> solution. First, you must build the SMSC driver into the kernel. Currently it >> is built as a kernel module which won¹t work because you have to mount the >> rootfs to load the kernel module. That will eliminate the first issue: >> >> 3.758612] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver >> unknown >> >> Next we are trying to find out why the network isn¹t getting started. Looks >> like something to do with cpsw. Using the same MLO, u-boot, uEnv.txt and >> rootfs, V3.8.13-bone57 works just fine. Changing the kernel to V3.15.3-bone3, >> I get the same problem you have. >> >> Regards, >> >> John >> >> From: Vishnu Patekar <vishnupatekar0...@gmail.com> >> Reply-To: "beagleboard@googlegroups.com" <beagleboard@googlegroups.com> >> Date: Saturday, July 5, 2014 at 11:01 AM >> To: "beagleboard@googlegroups.com" <beagleboard@googlegroups.com> >> Subject: Re: [beagleboard] Re: Beaglebone Black Ethernet Phy Not Detected on >> Boot. >> >>> Hello, >>> I'm using BBB board A5C, and kernel version 3.15.3-bone3.1. I also see >>> ethernet PHY is not detected. Log as below: >>> Please refer detailed attached log. >>> >>> >>> [ 3.740457] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6 >>> [ 3.746859] davinci_mdio 4a101000.mdio: detected phy mask fffffffe >>> [ 3.754398] libphy: 4a101000.mdio: probed >>> [ 3.758612] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, >>> driver unknown >>> [ 3.767567] Detected MACID = 90:59:af:5c:61:78 >>> [ 3.773165] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) >>> [ 3.779741] sr_init: No PMIC hook to init smartreflex >>> [ 3.785201] sr_init: platform driver register failed for SR >>> [ 3.794297] VFS: Cannot open root device "nfs" or unknown-block(0,255): >>> error -6 >>> [ 3.802114] Please append a correct "root=" boot option; here are the >>> available partitions: >>> [ 3.810888] b300 1875968 mmcblk0 driver: mmcblk >>> [ 3.816464] b301 72261 mmcblk0p1 00000000-01 >>> [ 3.822046] b302 1799280 mmcblk0p2 00000000-02 >>> [ 3.827617] b310 1024 mmcblk0boot1 (driver?) >>> [ 3.833197] b308 1024 mmcblk0boot0 (driver?) >>> [ 3.838767] Kernel panic - not syncing: VFS: Unable to mount root fs on >>> unknown-block(0,255) >>> [ 3.847616] CPU: 0 PID: 1 Comm: swapper Not tainted 3.15.3-bone3.1 #1 >>> [ 3.854410] [<c00113f5>] (unwind_backtrace) from [<c000fa37>] >>> (show_stack+0xb/0xc) >>> [ 3.862356] [<c000fa37>] (show_stack) from [<c054dd05>] >>> (panic+0x65/0x170) >>> [ 3.869572] [<c054dd05>] (panic) from [<c08a6d0b>] >>> (mount_block_root+0x1af/0x21c) >>> [ 3.877421] [<c08a6d0b>] (mount_block_root) from [<c08a6eb1>] >>> (prepare_namespace+0xe9/0x128) >>> [ 3.886271] [<c08a6eb1>] (prepare_namespace) from [<c08a6a93>] >>> (kernel_init_freeable+0x1ab/0x1b8) >>> [ 3.895574] [<c08a6a93>] (kernel_init_freeable) from [<c054d37b>] >>> (kernel_init+0xb/0xb4) >>> [ 3.904060] [<c054d37b>] (kernel_init) from [<c000d1f9>] >>> (ret_from_fork+0x11/0x38) >>> [ 3.911998] drm_kms_helper: panic occurred, switching back to text >>> console >>> [ 3.919217] ---[ end Kernel panic - not syncing: VFS: Unable to mount >>> root fs on unknown-block(0,255) >>> >>> >>> >>> On Sat, Jun 28, 2014 at 2:22 AM, Jay @ Control Module Industries >>> <cmidr...@gmail.com> wrote: >>>> I have encountered the same issue(s) on A6A boards. >>>> >>>> I couldn't find a patch, so I wrote this patch to update the device tree >>>> in the davinci_mdio driver in the 3.15.1 tree, it seems to correct it. I >>>> would welcome any input on a different approach. >>>> >>>> diff --git a/drivers/net/ethernet/ti/davinci_mdio.c >>>> b/drivers/net/ethernet/ti/davinci_mdio.c >>>> index 0cca9de..e5a9cdc 100644 >>>> --- a/drivers/net/ethernet/ti/davinci_mdio.c >>>> +++ b/drivers/net/ethernet/ti/davinci_mdio.c >>>> @@ -39,6 +39,7 @@ >>>> #include <linux/of.h> >>>> #include <linux/of_device.h> >>>> #include <linux/pinctrl/consumer.h> >>>> +#include <linux/phy.h> >>>> >>>> /* >>>> * This timeout definition is a worst-case ultra defensive measure against >>>> @@ -97,6 +98,10 @@ struct davinci_mdio_data { >>>> unsigned long access_time; /* jiffies */ >>>> }; >>>> >>>> +#if IS_ENABLED(CONFIG_OF) >>>> +static void davinci_mdio_update_dt_from_phymask(u32 phy_mask); >>>> +#endif >>>> + >>>> static void __davinci_mdio_reset(struct davinci_mdio_data *data) >>>> { >>>> u32 mdio_in, div, mdio_out_khz, access_time; >>>> @@ -150,6 +155,11 @@ static int davinci_mdio_reset(struct mii_bus *bus) >>>> /* restrict mdio bus to live phys only */ >>>> dev_info(data->dev, "detected phy mask %x\n", ~phy_mask); >>>> phy_mask = ~phy_mask; >>>> + >>>> + #if IS_ENABLED(CONFIG_OF) >>>> + davinci_mdio_update_dt_from_phymask(phy_mask); >>>> + #endif >>>> + >>>> } else { >>>> /* desperately scan all phys */ >>>> dev_warn(data->dev, "no live phy, scanning all\n"); >>>> @@ -312,6 +322,79 @@ static int davinci_mdio_probe_dt(struct >>>> mdio_platform_data *data, >>>> } >>>> #endif >>>> >>>> +#if IS_ENABLED(CONFIG_OF) >>>> +static void davinci_mdio_update_dt_from_phymask(u32 phy_mask) >>>> +{ >>>> + int i, len; >>>> + u32 addr; >>>> + __be32 *old_phy_p, *phy_id_p; >>>> + struct property *phy_id_property = NULL; >>>> + struct device_node *node_p, *slave_p; >>>> + >>>> + addr = 0; >>>> + >>>> + for (i = 0; i < PHY_MAX_ADDR; i++) { >>>> + if ((phy_mask & (1 << i)) == 0) { >>>> + addr = (u32) i; >>>> + break; >>>> + } >>>> + } >>>> + >>>> + for_each_compatible_node(node_p, NULL, "ti,cpsw") { >>>> + for_each_node_by_name(slave_p, "slave") { >>>> + >>>> + old_phy_p = (__be32 *) of_get_property(slave_p, "phy_id", >>>> &len); >>>> + >>>> + if (len != (sizeof(__be32 *) * 2)) >>>> + goto err_out; >>>> + >>>> + if (old_phy_p) { >>>> + >>>> + phy_id_property = kzalloc(sizeof(*phy_id_property), >>>> GFP_KERNEL); >>>> + >>>> + if (! phy_id_property) >>>> + goto err_out; >>>> + >>>> + phy_id_property->length = len; >>>> + phy_id_property->name = kstrdup("phy_id", GFP_KERNEL); >>>> + phy_id_property->value = kzalloc(len, GFP_KERNEL); >>>> + >>>> + if (! phy_id_property->name) >>>> + goto err_out; >>>> + >>>> + if (! phy_id_property->value) >>>> + goto err_out; >>>> + >>>> + memcpy(phy_id_property->value, old_phy_p, len); >>>> + >>>> + phy_id_p = (__be32 *) phy_id_property->value + 1; >>>> + >>>> + *phy_id_p = cpu_to_be32(addr); >>>> + >>>> + of_update_property(slave_p, phy_id_property); >>>> + >>>> + ++addr; >>>> + } >>>> + } >>>> + } >>>> + >>>> + return; >>>> + >>>> +err_out: >>>> + >>>> + if (phy_id_property) { >>>> + if (phy_id_property->name) >>>> + kfree(phy_id_property->name); >>>> + >>>> + if (phy_id_property->value) >>>> + kfree(phy_id_property->value); >>>> + >>>> + if (phy_id_property) >>>> + kfree(phy_id_property); >>>> + } >>>> +} >>>> +#endif >>>> + >>>> static int davinci_mdio_probe(struct platform_device *pdev) >>>> { >>>> struct mdio_platform_data *pdata = dev_get_platdata(&pdev->dev); >>>> >>>> -- >>>> For more options, visit http://beagleboard.org/discuss >>>> --- >>>> You received this message because you are subscribed to the Google Groups >>>> "BeagleBoard" group. >>>> To unsubscribe from this group and stop receiving emails from it, send an >>>> email to beagleboard+unsubscr...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>> >>> >>> -- >>> For more options, visit http://beagleboard.org/discuss >>> --- >>> You received this message because you are subscribed to the Google Groups >>> "BeagleBoard" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to beagleboard+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to the Google Groups >> "BeagleBoard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to beagleboard+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. > > > -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to the Google Groups > "BeagleBoard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to beagleboard+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.