Fwd: snowball board, problems with caching functions
xyxy1901 at mail.ru
Mon Nov 21 12:48:55 UTC 2011
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:
Delay();//about 0.5 sec, delay should be at least 0.5 sec
printf("%u",cacheddata);//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.
More information about the kernel