@lupyuen the patch introduces a new function called `flush_icache_range_phy` that flushes the instruction cache for a given range of physical addresses. It uses assembly instructions to perform the cache flushing operation. additionally, `flush_icache_range` macro is modified to call the new `flush_icache_range_phy` function instead of `flush_icache_all`

It's likely that the T-Head C9xx processor has its own cache synchronization mechanism tailored to its specific architecture and requirements

@lupyuen generally, in a multi-level cache hierarchy, such as the one in the T-Head C9xx processor, it's crucial to maintain data consistency between different levels of cache (because modifications to data can be made in one level of cache and need to be propagated to other levels to ensure that all caches have the most up-to-date version of the data). Cache sync typically involves two main operations: cache invalidation and cache flushing

Follow

@daridrea This is very helpful, thank you so much! :-)

Wonder why T-Head can't document these Undocumented RISC-V Instructions in a C908 Manual (is there one?)

Our Devs are really hurting right now 😬

Sign in to participate in the conversation
CleverLibre Social

CleverLibre Social is an inclusive social instance for open discussion, learning, and community.
All cultures welcome.
Hate speech and harassment strictly forbidden.