Limpar cache para DRAM
Estou usando uma plataforma Xilinx Zynq com uma região de memória compartilhada entre o HW programável e o processador ARM.
Eu reservei essa memória usando o memmap na linha de comando do kernel e, em seguida, expus para o espaço do usuário por meio de chamadas mmap / io_remap_pfn_range no meu driver.
O problema que estou tendo é que leva algum tempo para as gravações aparecerem na DRAM e presumo que esteja presa no dcache. Há um monte de flush_cache_ * chamadas definidas, mas nenhuma delas é exportada, o que é uma pista para mim de que estou latindo na árvore errada ...
Como teste, eu exportei localmente o flush_cache_mm e só para ver o que aconteceria e sem alegria.
Em suma, como posso ter certeza de que qualquer gravação nessas regiões mmap'd tenha sido confirmada para a DRAM?
Obrigado.