Opróżnij pamięć podręczną do pamięci DRAM

Używam platformy Xilinx Zynq z obszarem pamięci współdzielonym przez programowalny sprzęt HW i procesor ARM.

Zarezerwowałem tę pamięć za pomocą memmap w linii poleceń jądra, a następnie odsłoniłem ją w przestrzeni użytkownika za pomocą wywołań mmap / io_remap_pfn_range w moim sterowniku.

Problem, który mam, polega na tym, że napisy pojawiają się w pamięci DRAM po pewnym czasie i przypuszczam, że utknęły w dcache. Zdefiniowano kilka wywołań flush_cache_ *, ale żaden z nich nie jest eksportowany, co jest dla mnie wskazówką, że szczekam niewłaściwe drzewo ...

Jako próbę lokalnie wyeksportowałem flush_cache_mm i tylko po to, aby zobaczyć, co się stanie i bez radości.

W skrócie, w jaki sposób mogę być pewien, że wszelkie zapisy do tego regionu mmap zostały przypisane do DRAM?

Dzięki.

questionAnswers(3)

yourAnswerToTheQuestion