Subject: Re: [Bugme-new] [Bug 33042] New: Marvell 88E1145 phy configured incorrectly in fiber mode

From: Alex Dubov <[email-masked]>
Date: Mon, 11 Apr 2011 20:45:24 -0700 (PDT)

> 
> How does your u-boot configure the part?  Does it
> write any of the 
> configuration registers, or is it just the default
> configuration set via 
> the strapping pins?

U-boot configures this phy just like any other phy - by running a set of
register assignments from phy_info_M88E1145.

Unfortunately, I don't have a datasheet for this phy and kernel does
quite a few things differently, so simply copying stuff from u-boot
does not work well (in kernel, phy initialization is broken into 3
functions, if I'm not mistaken).

Otherwise, my problem seems to be identical to the one reported some
time ago against 88E1111 phy (which resulted in the addition of
"marvell_read_status" in the first place). The problem was, as it seems
to be now, that phy is always configured in "copper" mode, instead of
driver checking for the correct "fiber" mode bits.

> 
> In any event, you will probably have to read the
> configuration before 
> the drivers/net/phy/marvel.c changes them.  Then
> compare that to what 
> the driver is trying to set.  Then you will either
> have to override the 
> configuration with the device tree "marvell,reg-init"
> property, or if 
> you are not using the device tree, add a 88e1145 specific
> flag that you 
> set when calling phy_connect().
> 
> David Daney
>