Subject: Re: Ethernet fails on MPC5200 based target

From: Andrea Galbusera <[email-masked]>
Date: Tue, 16 Jan 2007 09:20:15 +0100

Hi Sylvain,
some new elements in trying to solve my ethernet issue...

On Wed, 2007-01-10 at 15:52 +0100, Sylvain Munaut wrote:

> Maybe some things (like xlb pipelining, cache snooping, ...) is not properly
> setup in you platform support code ?

Following your suggestion, I started from here... Comparing the
unaffected kernel (from DENX) with yours I tryed commenting out the
following in mpc52xx_setup_cpu() :

  /* Disable XLB pipelining */
  /* (cfr errate 292. We could do this only just before ATA PIO
     transaction and re-enable it after ...) */
  out_be32(&xlb->config, in_be32(&xlb->config) | MPC52xx_XLB_CFG_PLDIS);

In fact this gives much better results, but does not completely solve
the problem. Network packets corruption seems to be gone, but, after
massive pinging (about 1k ping packets) it comes back with about the
same frequency as before the change.

Not tested yet the impact of this change on ATA/IDE
functionality/performance, but, if I'm not wrong, disabling the XLB
pipelining was due to a hardware bug of the CPU (errata 292), which
should be solved in 5200B, the version that I use.

I can't figure out what is the impact of keeping XLB pipelining enabled
on the eth behavior. I'm sharing this results in the hope someone have
any other valuable suggestion

Regards,

-- 
  Andrea