[U-Boot] [PATCH] net: macb: sama5d4 is not gigabit capable

Gregory CLEMENT gregory.clement at free-electrons.com
Wed Dec 16 10:41:36 CET 2015


Hi Andreas,
 
 On mer., déc. 16 2015, "Andreas Bießmann" <andreas.devel at googlemail.com> wrote:

> Hi all,
>
> On 16.12.2015 10:19, Nicolas Ferre wrote:
>> Le 15/12/2015 20:59, Joe Hershberger a écrit :
>>> Hi Gregory,
>>>
>>> On Mon, Dec 14, 2015 at 10:37 AM, Gregory CLEMENT
>>> <gregory.clement at free-electrons.com> wrote:
>>>> During the initialization of PHY the gigabit bit capable is set if the
>>>> controller is a GEM. However, for sama5d4, the GEM is not gigabit
>>>> capable. Improperly setting the GBE capability leads to an unresponsive
>>>> MAC controller. This patch fix this behavior allowing to use the gmac
>>>> with the sama5d4.
>>>>
>>>> Suggested-by: Nicolas Ferre <nicolas.ferre at atmel.com>
>>>> Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
>>>> ---
>>>>  drivers/net/macb.c | 7 +++++--
>>>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/net/macb.c b/drivers/net/macb.c
>>>> index a5c1880..642717d 100644
>>>> --- a/drivers/net/macb.c
>>>> +++ b/drivers/net/macb.c
>>>> @@ -480,8 +480,11 @@ static int macb_phy_init(struct macb_device *macb)
>>>>                 return 0;
>>>>         }
>>>>
>>>> -       /* First check for GMAC */
>>>> -       if (macb_is_gem(macb)) {
>>>> +       /*
>>>> +        * First check for GMAC, but not the one on SAMA5D4 which is
>>>> +        * not gigabit capabale
>>>> +        */
>>>> +       if (macb_is_gem(macb) && ! cpu_is_sama5d4()) {
>>>
>>> Is there not some other property that can identify the lack of Gigabit
>>> support in the "GEM"? It would be better to not have to keep track of
>>> the next processor and the one after that which has the same
>>> situation.
>> 
>> Actually, sama5d2 is in the same situation already...
>
> would it be a compromise to patch the macb_is_gem() in favor of the
> different usages of this function?

I was thinking of introducing a is_gb_capable() function.

>
> On the other hand I also wonder why the MACB IP tells it is GiB capable
> by the IDNUM bitfield. Isn't there a possibility to fix this
> detection?

the first part of the IDNUM identify the generation of this IP and 0x1
is MACB whereas 0x2 is GEM. As I wrote in my previous email, I _think_
that the GEM is really GiB capabale but the SoC around do not provde the
needed ressource for this (such as line running at GHz).

Gregory
>
> Andreas
>
>> 
>> Bye,
>> 
>>>
>>>>                 lpa = macb_mdio_read(macb, MII_STAT1000);
>>>>
>>>>                 if (lpa & (LPA_1000FULL | LPA_1000HALF)) {
>>>> --
>>>> 2.5.0
>>>>
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot at lists.denx.de
>>>> http://lists.denx.de/mailman/listinfo/u-boot
>>>
>> 
>> 
>

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com


More information about the U-Boot mailing list