Also thx you Gerald, the bone60 deals better the problem at boot .


Micka,


On Wed, Jul 9, 2014 at 2:59 PM, Micka <mickamus...@gmail.com> wrote:

> For your informations :
>
> We think that we found where this problems come from . Our power Cap takes
> more time to provide the power that the Beagle need at the boot. We have to
> modify our CAP : release later the RESET .
>
> which is what you have done in the REV A6A :
>
> 3) Changed C24 to a 2.2uF capacitor. This extends the reset signal to
> solve an issue where some boards would not boot on power up.
>
> Micka,
>
>
>
> On Mon, Jul 7, 2014 at 9:56 AM, Micka <mickamus...@gmail.com> wrote:
>
>> I would like to know what this means ? Is it a electrical problems ? Can
>> we monitor this ?
>>
>>
>> On Mon, Jul 7, 2014 at 9:52 AM, Micka <mickamus...@gmail.com> wrote:
>>
>>> Hello,
>>>
>>> I'm on the Kernel *3.8.13-bone56* and I've still this problem :
>>>
>>> Scanning for Btrfs filesystems
>>> systemd-fsck[202]: rootfs: clean, 110431/966656 files, 771069/3864576
>>> blocks
>>> [    7.665617] libphy: PHY 4a101000.mdio:00 not found
>>> [    7.670642] net eth0: phy 4a101000.mdio:00 not found on slave 0
>>> [    7.676834] libphy: PHY 4a101000.mdio:01 not found
>>> [    7.681844] net eth0: phy 4a101000.mdio:01 not found on slave 1
>>>
>>>
>>> I've to reboot many times to get lucky .....
>>>
>>>
>>>
>>>
>>> On Sat, Jul 5, 2014 at 8:19 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.

Reply via email to