snowball board, problems with caching functions

Patrik Ryd patrik.ryd at
Mon Nov 21 10:00:48 UTC 2011


if you don't get any answers here on linaro-dev you might try
users at or kernel at


On 20 November 2011 01:02, X Y <xyxy1901 at> wrote:

> Hi,
> We are porting some linux distro (developed at our university) to the
> Snowball board as a study assignment. Mostly it is just a minimalistic and
> striped version of Ubuntu with minimal set of drivers. We have some problem
> with cache on this board. Currently only one core is active. Also we are
> using U-boot, which comes with the board. Mostly we rely on hardware
> initialization done there
> .
> The system hangs at some point. We have identified the problem. So let me
> describe it. If we have some memory region, which is cached then it takes
> some time till it gets updated from cache. Let me explain this by giving
> some example:
> 1.
> ....
>  memset(cacheddata,5,1000000);
>  printf("%u",cacheddata[1000]);//prints garbage
> .....
> 2.
> .....
> memset(cacheddata, 5,1000000);
> Delay();//about 0.5 sec, delay  should be at least 0.5 sec
> printf("%u",cacheddata[1000]);//works just fine
> .....
> If memory region is uncached than it works fine and doesn't need delay.
> Also inserting delays in caching functions solves the problem with hanging.
> So it seems that it takes some time to complete data transfers between
> cache and memory but the code continues to  execute while caching operation
> is not finished. I am not sure if I can dig solution from linaro distro. I
> have never seen anything like that before. Can you please tell what can be
> possibly wrong there? Maybe there is some hardware component that we have
> to add support for. Any ideas are welcome.
> Thanks
> _______________________________________________
> linaro-dev mailing list
> linaro-dev at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the linaro-dev mailing list