Arm920T Cache problem

Having a problem with caching that I can't seem to figure out. Here's the situation.

Current, my video memory is located at 0x00100000 My text buffer for an emulated text mode is located at 0x00300000

When I set those two regions cached (C=1, B=1), everything works just fine....

Now, if I map those identical regions to a virtual address.

0xA0000000 for the video 0xB0000000 for the text buffer

The video buffer appears to work fine (but then again, I'm also not reading from it).

The text buffer however, I seem to get odd problems of it not being updated correctly. Almost as if the cache is becoming incoherent.

If I turn caching off (C=0,B=0)....everything works, though I obviously suffer a loss in speed that I would like to avoid.

I've also tried all combinations for the C & B bits. B=1 never causes a problem, C=1 always causes a problem. Normally I'd just say ok, I can't cache this. But, since it works when NOT using a virtual address, I'm wondering why it doesn't work when I do use a virtual address.

Any help is greatly appreciated!!!

Thanks,

Stephan

Reply to
Stephan Rose
Loading thread data ...

Found the problem...

Header file wasn't being updated soooo..

One function was accessing physical address.. One function was accessing virtual address of same physical address..

Yea, cache is gonna luv that one...

Stephan

Reply to
Stephan Rose

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.