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.

questionAnswers(3)

yourAnswerToTheQuestion