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

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


Hi Joe,
 
 On mar., déc. 15 2015, Joe Hershberger <joe.hershberger at gmail.com> wrote:

> 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.

I agree and I started to looked for this kind of information. But there
is not such information documented inside the controller. I also think
of the controller ID but I doubt that there is a link between the
gigabit capability and the version of the GEM. On sama5d3 the revision is
0x119 and the one in sama5d4 is 0x120, so this really reflects the
version of the controller itself and not his capabilities.

I also had a look on how it was done in the kernel, and they relies on
the compatible string which is different for each SoC.

Last thing, but it is only speculation, I think that the gigabit
capability depend on the SoC around the controller and not the
controller itself. Being able to do gigabit means being able to have
high speed dedicated lines and it is out of the scope of the controller
itself. An other hint is actually the fact that we have to set this GBE
bit in the configuration register of the controller, for me that means
that the controller is not aware of it.

Thanks,

Gregory

>
>>                 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