I am trying to flush the I$ (instruction cache) in HiFive1 (FE310-G000) board with the function
metal_icache_l1_flush(metal_cpu_get_current_hartid());. This function seems to get stuck and my program cannot continue its execution normally.
According to my understanding this instruction just flushes the I$ and my program should continue its execution normally.
I am doing something wrong, or my board just does not support this functionality?
Also according to FE310-G000 manual (chapter 3) there is only an I$ in this board and no D$. Is this correct?