sifive/devices/ccache.h
static inline void ccache_flush64(uint64_t base_addr, uint64_t flush_addr) {
  ccache_barrier_0();
  *(volatile uint64_t *)(base_addr + CCACHE_FLUSH64) = flush_addr;
  ccache_barrier_1();
}
// flush64 takes a byte-aligned address, while flush32 takes an address right-shifted by 4
flush64 takes a byte-aligned address, while flush32 takes an address right-shifted by 4
flush64 takes a byte - aligned address while flush32 takes an address right - shifted by 4
static inline void ccache_flush64(uint64_t base_addr, uint64_t flush_addr) {
  ccache_barrier_0();
  *(volatile uint64_t *)(base_addr + CCACHE_FLUSH64) = flush_addr;
  ccache_barrier_1();
}
static inline void ccache_flush64 ( uint64_t base_addr , uint64_t flush_addr ) { ccache_barrier_0 ( ) ; * ( volatile uint64_t * ) ( base_addr + CCACHE_FLUSH64 ) = flush_addr ; ccache_barrier_1 ( ) ; }
flush64 takes a byte-aligned address, while flush32 takes an address right-shifted by 4
flush64 takes a byte - aligned address while flush32 takes an address right - shifted by 4