linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Wolfgang Denk <wd@denx.de>
To: John Rigby <jcrigby@gmail.com>
Cc: linuxppc-dev@ozlabs.org, Chen Hongjun <Hong-jun.chen@freecale.com>
Subject: Re: [PATCH 05/04] *** NOT FOR RELEASE *** HACK *** Work around MII clock issue ***
Date: Sun, 07 Jun 2009 01:21:48 +0200	[thread overview]
Message-ID: <20090606232148.4E0BD832E416@gemini.denx.de> (raw)
In-Reply-To: <4b73d43f0906061527p7ca1b301ybcfc576870a168d5@mail.gmail.com>

Dear John,

in message <4b73d43f0906061527p7ca1b301ybcfc576870a168d5@mail.gmail.com> you wrote:
>
> I noticed the latest BSP from Freescale has this patch:
> 
> From: Chen Hongjun <Hong-jun.chen@freecale.com>
> Date: Thu, 16 Apr 2009 20:22:52 +0800
> Subject: [PATCH] Fixed FEC bug for bluestone board.
> 
> Signed-off-by: Chen Hongjun <Hong-jun.chen@freecale.com>
> ---
>  drivers/net/fs_enet/mii-fec.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/fs_enet/mii-fec.c b/drivers/net/fs_enet/mii-fec.c
> index 13a7d66..53d01a8 100644
> --- a/drivers/net/fs_enet/mii-fec.c
> +++ b/drivers/net/fs_enet/mii-fec.c
> @@ -208,7 +208,7 @@ static int __devinit fs_enet_mdio_probe(struct of_device
> *ofdev,
>         if (!fec->fecp)
>                 goto out_fec;
> 
> -       fec->mii_speed = ((ppc_proc_freq + 4999999) / 5000000) << 1;
> +       fec->mii_speed = ((((ppc_proc_freq + 4999999) / 2500000) / 2) & 0x3F) << 1;

Heh. So we now have 3 versions:

mainline:

	fec->mii_speed = ((ppc_proc_freq + 4999999) / 5000000) << 1;

Freescale:

	fec->mii_speed = ((((ppc_proc_freq + 4999999) / 2500000) / 2) & 0x3F) << 1;

we:
	fec->mii_speed = (((ppc_proc_freq / 1000000) / 30) + 1) << 1;


So what does this give:

ppc_proc_freq			mii_speed
	    mainline		freescale	    we
--------------------------------------------------
 50 MHz	    0x14 -> 2.5 MHz	0x14 -> 2.5 MHz	    0x04 -> 12.50 MHz
100 MHz	    0x28 -> 2.5 MHz	0x28 -> 2.5 MHz	    0x08 -> 12.50 MHz
150 MHz	    0x3C -> 2.5 MHz	0x3C -> 2.5 MHz	    0x0C -> 12.50 MHz
200 MHz	    0x50 -> 2.5 MHz	0x50 -> 2.5 MHz	    0x0E -> 14.29 MHz
250 MHz	    0x64 -> 2.5 MHz	0x64 -> 2.5 MHz	    0x12 -> 13.89 MHz
300 MHz	    0x78 -> 2.5 MHz	0x78 -> 2.5 MHz	    0x16 -> 13.36 MHz
316.8 MHz   0x80 -> 2.475 MHz	0x00 -> MDC off	    0x16 -> 14.40 MHz
350 MHz	    0x8C -> 2.5 MHz	0x0C -> 29.17 MHz   0x18 -> 14.58 MHz
400 MHz	    0xA0 -> 2.5 MHz	0x20 -> 12.50 MHz   0x1C -> 14.29 MHz
450 MHz	    0xB3 -> 2.5 MHz	0x34 -> 8.654 MHz   0x20 -> 14.06 MHz
500 MHz	    0xC8 -> 2.5 MHz	0x48 -> 6.944 MHz   0x22 -> 14.71 MHz

So - the mainline version and what we have don't take into account
that MII_SPEED uses only bit 25...30, i.e. it must fit into the range
from (1 << 1) ... (3F << 1).

The Freescale code tries to address this, but just clipping the data
is incorrect as we can see above.

The funny thing is that the RefMan says:

        "...MDC frequency of 1/(mii_speed*2) of the system clock
        frequency"

	"To be compliant with the IEEE MII specification, the MII_SPEED
	field must be programmed with a value that provides an MDC
	frequency of less than or equal to 2.5 MHz."

The big question seems to be what the RefMan means when talking about
the "system clock frequency". Obiously it is NOT  the  CPU  clock  as
code variants above assume. The examples in "Table 17-24. Programming
Examples  for  MII_SPEED Register" list "system clock frequencies" of
25, 33, 40 and 50  MHz  -  which  also  indiocates  that  some  other
frequency might be referenced here.

But which one is it?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
"Today's robots are very primitive, capable of understanding  only  a
few  simple  instructions  such  as 'go left', 'go right', and 'build
car'."                                                  - John Sladek

  reply	other threads:[~2009-06-06 23:21 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-06 20:20 [PATCH 00/04] Add support for ARIA board Wolfgang Denk
2009-05-06 20:20 ` [PATCH 01/04] mpc5121: prepare support for additional boards Wolfgang Denk
2009-05-06 20:29   ` Grant Likely
2009-05-06 20:40     ` Wolfgang Denk
2009-05-06 21:11       ` Grant Likely
2009-05-06 20:20 ` [PATCH 02/04] ARIA: add device tree source file Wolfgang Denk
2009-05-06 20:21 ` [PATCH 03/04] mpc5121: add support for ARIA board Wolfgang Denk
2009-05-06 20:21 ` [PATCH 04/04] ARIA: add default config file Wolfgang Denk
2009-05-06 20:21 ` [PATCH 05/04] *** NOT FOR RELEASE *** HACK *** Work around MII clock issue *** Wolfgang Denk
2009-05-07  8:26   ` Joakim Tjernlund
2009-05-07  9:19     ` Wolfgang Denk
2009-05-07  9:30       ` Joakim Tjernlund
2009-05-08  2:09   ` John Rigby
2009-06-06 22:16     ` Wolfgang Denk
2009-06-06 22:27       ` John Rigby
2009-06-06 23:21         ` Wolfgang Denk [this message]
2009-06-07  0:08           ` John Rigby
2009-06-07  8:20             ` Wolfram Sang
2009-06-07 20:34             ` Wolfgang Denk
2009-06-08  7:46               ` Wolfgang Grandegger
2009-06-08  8:19                 ` Wolfgang Denk
2009-06-08 14:39                   ` Grant Likely
2009-06-08 14:37               ` Grant Likely
2009-06-11 20:19                 ` [PATCH] mpc5xxx_get_bus_frequency(): use common code on MPC512x and MPC52xx Wolfgang Denk
2009-06-17  6:14                   ` Grant Likely
2009-06-17  6:21                     ` Grant Likely
2009-06-11 20:19                 ` [PATCH RFC] fs_enet/mii-fec.c: fix MII speed calculation Wolfgang Denk
2009-07-14 13:42                   ` [PATCH v2] " Wolfgang Denk
2009-07-15 15:18                     ` [PATCH 1/2 v3] " Wolfgang Denk
2009-07-15 17:17                       ` Grant Likely
2009-07-16 21:21                         ` Wolfgang Denk
2009-07-16 22:37                           ` Grant Likely
2009-07-16 21:42                       ` [PATCH 1/2 v4] " Wolfgang Denk
2009-07-16 22:44                         ` Grant Likely
2009-07-17 12:24                           ` Wolfgang Denk
2009-07-17  9:33                         ` Wolfram Sang
2009-07-17 12:32                           ` Wolfgang Denk
2009-07-17 12:27                         ` [PATCH 1/2 v5] " Wolfgang Denk
2009-07-17 14:41                           ` Grant Likely
2009-07-17 16:21                             ` David Miller
2009-07-17 16:48                             ` David Miller
2009-07-17 12:27                         ` [PATCH 2/2 v3] MPC52xx FEC: be more conservative when setting MII_SPEED register Wolfgang Denk
2009-07-17 12:59                           ` [PATCH 2/2 v4] " Wolfgang Denk
2009-07-17 14:45                             ` Grant Likely
2009-07-17 17:51                               ` Wolfgang Denk
2009-07-17 18:31                                 ` Grant Likely
2009-07-16 21:42                       ` [PATCH 2/2 v2] " Wolfgang Denk
2009-07-16 22:48                         ` Grant Likely
2009-07-17 12:25                           ` Wolfgang Denk
2009-07-17  9:47                         ` Wolfram Sang
2009-07-17 12:35                           ` Wolfgang Denk
2009-07-15 15:18                     ` [PATCH 2/2] " Wolfgang Denk
2009-07-15 17:18                       ` Grant Likely
2009-07-16 21:21                         ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090606232148.4E0BD832E416@gemini.denx.de \
    --to=wd@denx.de \
    --cc=Hong-jun.chen@freecale.com \
    --cc=jcrigby@gmail.com \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).