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
next prev parent 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).