On Wed, May 20, 2009 at 11:28 AM, Eric Millbrandt <emillbra...@dekaresearch.com> wrote: > -----Original Message----- > From: Jon Smirl [mailto:jonsm...@gmail.com] > Sent: Wednesday, May 20, 2009 11:15 > To: Eric Millbrandt > Cc: Wolfram Sang; Grant Likely; linuxppc-dev@ozlabs.org > Subject: Re: mpc5200 fec error > > On Wed, May 20, 2009 at 9:42 AM, Eric Millbrandt > <emillbra...@dekaresearch.com> wrote: >>> > I am able to reproduce the error using 2.6.29.2-rt11. I was able to >>> > mitigate the problem by raising the priority of the transmit irq. >>> > However when running an NFS server on the pcm030 under high cpu load I >>> > now get >>> > >>> > [ 132.477503] net eth0: FEC_IEVENT_RFIFO_ERROR >>> > [ 132.892329] net eth0: FEC_IEVENT_RFIFO_ERROR >>> > [ 133.884109] net eth0: FEC_IEVENT_RFIFO_ERROR >>> > [ 134.876059] net eth0: FEC_IEVENT_RFIFO_ERROR >>> > >>> > Raising the priority of the rx irq does not seem to fix this problem >>> > though. >>> >>> Hi Eric, >>> >>> This error has been seen before in non-rt kernels. I haven't had the >>> chance to track it down and kill it yet. I believe there are locking >>> issues associated with it. >> >> Uuuh, I recall this message. Kept me busy for some time :( >> >> You might try this patch which helped in our situation. >> >> =========== >> >> Subject: Enable XLB pipelining for MPC5200B >> From: Wolfram Sang <w.s...@pengutronix.de> >> >> Enable pipelining as it helps getting rid of FEC problems. >> Not intended for upstream, this must be dealt differently there. >> >> This patch is disabled by default. The bootloader should enable this feature. >> So, this patch is only intended to be used where the bootloader does it in a >> wrong manner and can't be replaced. >> >> Signed-off-by: Wolfram Sang <w.s...@pengutronix.de> >> Acked-by: Juergen Beisert <j.beis...@pengutronix.de> >> >> --- >> arch/powerpc/platforms/52xx/mpc52xx_common.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> Index: arch/powerpc/platforms/52xx/mpc52xx_common.c >> =================================================================== >> --- arch/powerpc/platforms/52xx/mpc52xx_common.c.orig >> +++ arch/powerpc/platforms/52xx/mpc52xx_common.c >> @@ -107,6 +107,13 @@ mpc5200_setup_xlb_arbiter(void) >> */ >> if ((mfspr(SPRN_SVR) & MPC5200_SVR_MASK) == MPC5200_SVR) >> out_be32(&xlb->config, in_be32(&xlb->config) | >> MPC52xx_XLB_CFG_PLDIS); >> +#if 0 >> + /* >> + * Enable pipelining, fixes FEC problems. The previous workaround is >> not >> + * needed, as we have an MPC5200B (not A). >> + */ >> + out_be32(&xlb->config, in_be32(&xlb->config) & >> ~MPC52xx_XLB_CFG_PLDIS); >> +#endif >> >> iounmap(xlb); >> } >> >> -- >> Pengutronix e.K. | Wolfram Sang | >> Industrial Linux Solutions | http://www.pengutronix.de/ | >> >> Wolfram, >> >> Thanks, but no luck with this patch. It was already setup correctly by >> U-Boot. > > > I don't see where this gets enabled in the u-boot source. Have you > added it locally? > > These are the only two I see: > cpu/mpc5xxx/cpu_init.c: *(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (1 << 13); > cpu/mpc5xxx/cpu_init.c: *(vu_long *)(MPC5XXX_XLBARB + 0x40) |= (1 << 15); > > > -- > Jon Smirl > jonsm...@gmail.com > > If you look a few more lines down you should see > # if defined(CFG_XLB_PIPELINING) > /* Enable piplining */ > *(vu_long *)(MPC5XXX_XLBARB + 0x40) &= ~(1 << 31); > # endif > > I obtained the u-boot sources directly from phytec, for my phyCore, so I am > not sure if they added it.
It is ok in main u-boot source. I just missed the lower section. -- Jon Smirl jonsm...@gmail.com _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev