Note: Zylontie 的GDE Driver

PXA320 有一個 GDE (Gerenal DMA Engin, 這是我猜測縮寫的含義) 驅動程式在BSP中, 原碼應該會在 CommonSocPXA320_ms_v?DMA 下面, 當你安裝過代號為Zylontie 平台的BSP的話.

下面列出個人發現在原碼中有用到這個GDE的Driver

  • VLIODISK
  • WAVEDEV2
  • NANDFLASH
  • SDHost
  • USBFN
  • SerialDriver

另外值得一提的是, GDE在配置DMA Channel 時有透過BSP Envirment variabls 可以預先保留2個DMA Channel給 WLAN使用, 個人猜測, 應該是為了原本使用寫死的用那兩個Channel 的 WLAN Driver 設計的

GDE 本身設計是一個Mixed Driver 結構, 透過實做 Stream Driver 介面並將其掛在DrvRegistry 的BuiltIn 下, 一開始就會被系統載入. 當系統呼叫其初始化函式(GDE_Init()), 將會做相關的Memory 空間映射, 而其它的Driver interface 則是Dummy function。這些動作等於是建立一個系統的等級的Service or Deamon.等著處理來自其它需要DMA Resource 的Driver.

在其它想要使用DMA的Driver 中,

首先要呼叫 GdeDmacInit(), 得到操作DMA的相關暫存器的Handle.(第一個呼叫的Driver會引發配置IST等程序)

透過呼叫 GdeDmacAllocChannel() 配置與取得一個Channel,必須指定Channel 的優先權, 有高/中/低與最低四種, 可以參考Datasheet, 在佩置Channel 時, GdeDmacAllocaChannel 會先查找指定優先權的Channel, 但是有可能被其它Driver配置完畢, 惝若該優先權已經無閒置的Channel, 則會另外查詢是否有其它閒置的Channel未被使用, 除非所有Channel 都被使用完, 才會配置失敗

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: