【问题】
开发者交流群,2025年1月17日
万能的群,我在刷 dcache 上遇到了一些问题,请教下有没有合适的代码可以参(抄)考(袭)一下呢?
目标是 flush 或 inval 或 clean dcache 一段范围。
检查了写法是一致的,但运行时 kernel 会 panic,我对 riscv 不是很熟,看看有没有什么思路:
编译时指定了:-march=rv64gcv_zicbom_zicboz_zicbop
Bianbu 2.0.4,在kernel运行
start地址传进去的是 vir 的
【解决方法】
flush接口可以参考:
arch_dma_cache_wback_inv,其最终调用
ALT_CMO_OP(flush, vaddr, size, riscv_cbom_block_size);
clean接口可以参考:
arch_dma_cache_wback,其
ALT_CMO_OP(clean, vaddr, size, riscv_cbom_block_size);