Hi,
a question about L1D cache of the 6678 using SYS/BIOS. I have an image processing application where each core processes a portion of the image, then all cores suspend (except core 0) until the next processing job. It seems that the last processed pixels of the image remain in the local L1D caches of the cores and are not written back to memory. Using the Cache_wb() function is complicated here since it requires a start address for the writeback operation, and so I would have to keep track of all the image segments that are still in the cache. Since the portion of the image assigned to a core is usually not arranged in an continuous address range, this would be a complicated task.
When searching for a way for simply flushing the L1D cache, I tried Cache_disable(Cache_Type_L1D) immediately followed by Cache_enable(Cache_Type_L1D). This seems to write back all cache contents before disabling the cache, but I could not find this behaviour described in the API documentation. It seems to work, however.
So my question: Is disable/enable a reliable way to flush all cache contents? Is there any other way to flush the cache?