代码流程
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