最近突然需要實現用dma與fpga溝通,
但由於一直以來都沒有碰有關driver的東西,
而且有時間壓力,
所以一直都是在網路上瞎找資料。
(因為真的沒有按部就班的從基礎學起,
所以可能會有非常嚴重的概念錯誤,
請各位見諒。)
想請問一些觀念問題或有沒有推薦的書?
1.
像是使用持續性(coherent)的DMA是在掛載driver時就將配置buffer的部分寫在driver中了;
那如果是streaming這種,既然是每次動作時重新map,那是不是配置buffer的部分就是直接寫在軟體動作裡?
2.
(這問題不知道會不會錯版)
fpga的部分等軟體分配完buffer後,將總線地址傳給fpga。
照著TLP格式來放入此地址,並將TLP丟給RQ/RC通道,
就會自動判定成DMA請求並執行嗎?
(因為部分原因,所以pcie ip的部分沒有使用官方含有dma的ip,而是使用最基礎的Ultrasc
目前只是要將fpga內的資料在軟體請求時,透過dma寫入主機。
但因為相關概念真的非常不足,
也沒有人可以詢問,所以可能很多觀念有嚴重錯誤,煩請大家不吝指教。