2014-03-06 66 views
1

我是一個爲嵌入式系統創建AHCI接口的硬件開發人員。我想知道珠三角DMA數據在哪裏創建並分配給珠三角。由於SATA使用DWORDS,我假設數據將對齊到4個字節的倍數。我沒有太多的Linux經驗,所以如果有人能指出我正確的方向,我將不勝感激。Linux AHCI PRD分配

謝謝

回答

1

ahci控制器充當系統內存和SATA設備之間的數據移動引擎。取讀操作,例如,粗糙的序列如下:

  • 軟件通過配置端口寄存器,PxCI「建立」在存儲器命令(命令頭,指令表,以及對應的泄壓裝置)
  • 軟件發出此命令(和PxSACT如果NCQ)
  • AHCI控制器獲取並處理此命令(包括數據傳輸...)
  • 軟件中斷服務被調用來處理該命令完成
  • 軟件讀取的泄壓裝置,以獲得設備的內容

PRD條目由軟件(驅動程序)創建/分配,可以通過命令表查找/檢索,也就是說,硬件可以定位命令表,然後檢索所有PRD條目。此外,ahci規範定義了PRD地址和字節數是WORD對齊的(最小)