Subject: Re: 8xx i2c refers to unspecified chip errata

From: "[email-masked]" <[email-masked]>
Date: Fri, 11 Oct 2002 14:55:04 +0200

Hi,

> Look in cpm_iic_read() for:
> /* flush will invalidate too. */
> flush_dcache_range((unsigned long)buf, (unsigned long)(buf+count));
>
> You can't just do invalidate_dcache_range() since it will invalidate more than your buffer
>
In my case it did invalidate the stack :(

> if it's not cache line aligned. Therefore you must flush to memory first and then invalidate.
> But you don't need an explicit invalidate_dcache_range() since flush_dcache_range() will flush to
> memory AND invalidate.
>
Better would be to have a special DMA region for this. Or as Dan suggest forget the
whole CPM IIC and do it by software.

Cheers,
	Bart

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/