Hi,

if you don't get any answers here on linaro-dev you might try users@igloocommunity.org or kernel@igloocommunity.org

 /Patrik

On 20 November 2011 01:02, X Y <xyxy1901@mail.ru> 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@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev