[PATCH 01/13] net: phy: Support Marvell 88E1318S PHY
Ezequiel Garcia
ezequiel at vanguardiasur.com.ar
Tue May 5 05:06:12 PDT 2015
Hi Sebastian,
On 05/03/2015 07:47 PM, Sebastian Hesselbarth wrote:
> On 03.05.2015 11:50, Sebastian Hesselbarth wrote:
>> On 02.05.2015 22:28, Ezequiel Garcia wrote:
>>> On 05/02/2015 01:53 PM, Ezequiel Garcia wrote:
>>>> On 04/09/2015 10:03 PM, Sebastian Hesselbarth wrote:
>>>>> This adds support for the Marvell 88E1318S Gigabit Ethernet PHY.
>>>>>
>>>>> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth at gmail.com>
>> [...]
>>>>
>>>> With this commit, the Openblocks A6 PHY is not brought up, and so
>>>> network is broken.
>>>>
>>>> I'll look into it (unless you have an idea),
>>>>
>>>
>>> Hm.. the devicetree needs to specify the phy-mode:
>>>
>>> diff --git a/dts/src/arm/kirkwood-openblocks_a6.dts
>>> b/dts/src/arm/kirkwood-openblocks_a6.dts
>>> index fb9dc22..c53e37f 100644
>>> --- a/dts/src/arm/kirkwood-openblocks_a6.dts
>>> +++ b/dts/src/arm/kirkwood-openblocks_a6.dts
>>> @@ -171,6 +171,7 @@
>>> ð0 {
>>> status = "okay";
>>> ethernet0-port at 0 {
>>> + phy-mode = "rgmii-id";
>>> phy-handle = <ðphy0>;
>>> };
>>> };
>>>
>>> However, network works really crappy even after this change (either in
>>> barebox or in Linux).
>>
>> Ezequiel,
>>
>> RGMII phy-mode would have been my first guess.
>>
>> Can you define "crappy" with respect to ethernet?
>>
On barebox, I'm seeing tftp making slow progress but with lots and lots of
timeouts. And then on the Linux side, there are many NFSroot disconnects,
and userspace is unresponsive.
I haven't really done any serious measurements.
>> The patch doesn't do anything different than the linux marvell phy
>> code would do.
Yeah, I don't think the issue in on the PHY init.
>> Do you have access to A6's u-boot source and can match
>> up the PHY init sequence?
Yes. Although U-Boot is barely readable, can't see anything interesting
being done with the PHY. (from ftp://ftp.plathome.co.jp/pub/OBSA6/uboot/)
MV_VOID mvEthE1310PhyBasicInit(MV_U32 ethPortNum)
{
MV_U16 reg;
/* Set phy address */
MV_REG_WRITE(ETH_PHY_ADDR_REG(ethPortNum), mvBoardPhyAddrGet(ethPortNum));
/* reset the phy */
mvEthPhyRegRead(mvBoardPhyAddrGet(ethPortNum),0,®);
reg |= BIT15;
mvEthPhyRegWrite(mvBoardPhyAddrGet(ethPortNum),0,reg);
mvOsDelay(10);
/* Leds link and activity*/
mvEthPhyRegWrite(mvBoardPhyAddrGet(ethPortNum),22,0x3);
mvEthPhyRegRead(mvBoardPhyAddrGet(ethPortNum),16,®);
reg &= ~0xfff;
reg |= 0x671;
mvEthPhyRegWrite(mvBoardPhyAddrGet(ethPortNum),16,reg);
mvEthPhyRegWrite(mvBoardPhyAddrGet(ethPortNum),22,0x0);
}
>
> Maybe we need some 1V8 RGMII setup for A6 too?
>
> https://lkml.org/lkml/2015/5/3/159
>
> IO Configuration 0 register 0xf10100e0, bit 7:
Hm, it seems it's off in U-Boot:
openblocks>> md f10100e0
f10100e0: 1b1b1b1b 011b1b1b 00000000 00000000 ................
--
Ezequiel Garcia, VanguardiaSur
www.vanguardiasur.com.ar
More information about the barebox
mailing list