[U-Boot] [PATCH V4 3/8] imx: fec: Resolve speed before configuring gasket

Stefano Babic
2012-04-23T07:55:30Z

On 20/04/2012 10:54, Timo Ketola wrote:
>> as far as I can see, there are some inconsistencies. All boards define
>> CONFIG_MII, but they really need CONFIG_RMII, because only with my last
>> patch I set the gasket for MII. The driver has always set in a fixed way
>> the gasket for RMII, independently if CONFIG_RMII or CONFIG_MII was set,
>> and that is also wrong.

Quite right, you have the second board. The ima3 board I added uses also
MII instead of RMII. However, I think that something went wrong, as I
understand rereading the code.

> Functionally this does nothing of course but I can imagine the reasoning
> behind that check: If I understand correctly, fec_mxc depends on MII
> management interface (for example miiphy_wait_aneg). Then, if CONFIG_MII
> is not defined, there is inconsistency because configuration says "don't
> use MII" but fec_mxc still uses it. I don't know whether this causes any
> confusion.

It creates some confusion...

>
>> Boards are compiled clean without them. Correct me if I am wrong, but it
>> seems the correct way to do is to drop the unneeded check in the above
>> lines and sets CONFIG_RMII for all boards except the only one
>> (ima3-mx53), that needs really MII.
>
> Agreed regarding CONFIG_RMII. With dropping the check I'm OK either way.
> Furthermore, I might like to propose to change the name of the
> configuration variable CONFIG_MII to CONFIG_MII_MGM or something like
> that. That might reduce confusion (at least I have been quite confused).

Support for MX28 added recently CONFIG_FEC_XCV_TYPE. To augment the
confusion, CONFIG_FEC_XCV_TYPE is set to MII100 as default, and this let
assume that most boards are running with MII if they do not define it.
Really all MX5 boards use RMII, not MII. Not only, by setting the RCR
register, there is an attempt to set reserved bits on MX5 SOCs, because
MX5 defines only bits 0-5. It seems that writing to reserved bits does
not produce effects, but it is quite dangerous and not compliant with
SOC manual.

So at the end we have multiple configuration switches (CONFIG_MII,
CONFIG_RMII, and CONFIG_FEC_XCV_TYPE) to set the same thing, and this is
not really good ;-((

I assume that setting CONFIG_FEC_XCV_TYPE as default to MII100 was to
avoid to break building not MX28 boards, but as you can see generates
other problems. I think it is really better that there is *no* default,
and each board sets explicitely its own type.

Instead of using CONFIG_MII or CONFIG_RMII, we can make use of
CONFIG_FEC_XCV_TYPE, as it was already introduced, but making it
consistent for all boards.

Support for MII in FEC is in u-boot-imx/next in the last patch, and it
is not yet merged. I think I am going to drop that patch from my tree,
so that we start again from a clean situation (mainline).

Best regards,
Stefano Babic

--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================