代码流程
Cache 相关 API:
| API | SPL 可用 | U-Boot 可用 |
|---|---|---|
| icache_enable | 是 | 否 |
| icache_disable | 是 | 否 |
| icache_status | 是 | 否 |
| dcache_enable | 是 | 否 |
| dcache_disable | 是 | 否 |
| dcache_status | 是 | 否 |
| flush_dcache_all | 是 | 是 |
| flush_dcache_range | 是 | 是 |
| invalidate_dcache_range | 是 | 是 |
其实现在 arch/riscv/cpu/c906/cache.c 。
SPL 中 Cache
初始化流程如下:
_start // arch/riscv/cpu/start.S |-> save_boot_params |-> board_init_f_alloc_reserve |-> harts_early_init |-> board_init_f_init_reserve |-> icache_enable // arch/riscv/cpu/c906/cache.c |-> dcache_enable // arch/riscv/cpu/c906/cache.c |-> board_init_f
