Help needed Linux-2.6 - MPC8541
Andy Fleming
afleming at freescale.com
Tue Oct 25 01:27:18 EST 2005
On Oct 23, 2005, at 10:39, info wrote:
> Junita
>
> Sorry to disturbed you. I find your question in the http://
> ozlabs.org mail list.
> Have you fixed the bug in gianfar_phy.c?
> tempval = gfar_read(&priv-> regs-> dmactrl);
> tempval |= (DMACTRL_GRS | DMACTRL_GTS);
> gfar_write(&priv-> regs-> dmactrl, tempval);
>
> while (!(gfar_read(&priv-> regs-> ievent) & (IEVENT_GRSC |
> IEVENT_GTSC)))
> cpu_relax();
>
> /* Reset MAC layer */
> gfar_write(&priv-> regs-> maccfg1, MACCFG1_SOFT_RESET);
I'm a bit confused by the statement above. The code you present is
from gianfar.c, and is certainly not a bug. It is possible you are
using an older version of the code, which has a bug, which is fixed
by adding these lines above the code you show:
tempval = gfar_read(&priv->regs->dmactrl);
tempval &= ~(DMACTRL_GRS | DMACTRL_GTS);
gfar_write(&priv->regs->dmactrl, tempval);
This fixes a problem where setting GRS and GTS when they're already
set doesn't initiate the graceful stop. But if you are using 2.6.13,
you should have this fix. I suspect that, like I told Junita, you
need to make sure the platform code has the right CCSRBAR value set up.
>
> I buy a RMC-G8500 card from GDAtech, I try to build linux-2.6.13.4
> from kernel.org and meet the same problems as you had. I test the
> same code on freescale 8540_ADS board, it is good.Can you share
> some infomation of your progress?
I'm not familiar with this card. Are you sure there's support for it
in your source tree?
Andy Fleming
More information about the Linuxppc-embedded
mailing list