→ descent: dma 要記憶體的 function 可以配置non cacahe/non buffer04/02 22:43
→ descent: 的區域04/02 22:44
我的dma funciton在linux下面不能用,然後我是直接寫dma的register來啟動dma。
所以我才想要知道如果開/關cache呢?
※ 編輯: hirofumisyo (111.251.48.187 臺灣), 04/04/2020 16:57:01
推 soso7885: 關了可能linux都跑不起來吧,dma w完flush cache一下呢04/04 21:17
請問在linix下怎麼flush cache呢?
※ 編輯: hirofumisyo (101.136.141.77 臺灣), 04/04/2020 22:54:55
→ hizuki: linux dma coherent 了解下,劃dma區段可用cma實現,如許 04/05 13:32
→ hizuki: 詳細答覆我回頭寫給你 04/05 13:32
感謝回應,我找了一些dma coherent的資料來看後,我的理解是CPU在讀寫DDR時不是直接
讀寫DDR,而是透過cache; 但DMA卻是直接搬運DDR的資料,所以才會產生搬的data跟從
CPU寫入的不一樣。我不太懂你提到的用cma劃dma區段是什麼意思,在我使用的FPGA手冊
有給出DDR對應到的memory address range,因此我使用mmap的方法將data寫到對應的
address上(共4MB)。
※ 編輯: hirofumisyo (111.251.48.187 臺灣), 04/05/2020 20:35:13
→ WPC001: flush_tlb_mm() / flush_tlb_range() /update_mmu_cache() 04/06 22:38
→ WPC001: 有空自己看一下... 04/06 22:38
→ leolarrel: 參考 volatile 關鍵字 04/07 16:07