SM501 驅動程式¶
- 版權所有:
© 2006, 2007 Simtec Electronics
Silicon Motion SM501 多媒體配套晶片是一個多功能裝置,可以提供多種介面,包括 USB 主控制器 USB 裝置、非同步序列埠、音訊功能和雙顯示影片介面。 該裝置可以透過 PCI 或本地匯流排連線,並啟用不同的功能。
核心¶
drivers/mfd 中的核心驅動程式為管理特定硬體塊的驅動程式提供通用服務。 這些服務包括用於公共暫存器的鎖定、時鐘控制和資源管理。
核心透過平臺裝置和驅動程式系統註冊 PCI 和基於通用匯流排的晶片的驅動程式。
在檢測到裝置時,核心會初始化晶片(可以由平臺數據指定),然後將選定的外圍裝置集匯出為特定驅動程式的平臺裝置。
核心重用平臺裝置系統,因為平臺裝置系統提供了足夠的功能來支援驅動程式,而無需建立新的匯流排型別以及相關的程式碼。
資源¶
每個外圍裝置都有一個裝置檢視,該檢視隱式地縮小到外圍裝置為了正常執行所需的一組特定資源。
集中式記憶體分配允許驅動程式確保可以為影片子系統進行最大可能的資源分配,因為這是晶片上功能中最佔用資源的功能。
記憶體分配的主要問題是,在選擇顯示模式後移動影片緩衝區。 實際上,當影片模式更改時,影片子系統的記憶體佔用量會發生變化。
由於在不更改顯示的情況下移動影片記憶體很困難(除非可以同時為舊模式和新模式提供足夠的連續記憶體),因此影片驅動程式透過將 fb0 對齊到區域的開始處並將 fb1 對齊到區域的結尾處來充分利用分配給它的記憶體區域。 中間剩餘的任何記憶體都用於加速功能,這些功能是瞬態的,因此它們的位置不太重要,因為可以移動它。
配置¶
平臺裝置驅動程式使用一組平臺數據將配置傳遞到核心和附屬驅動程式,以便可以支援多個系統,這些系統將 SM501 構建到單個核心映像中。
PCI 驅動程式假定 PCI 卡的行為符合 Silicon Motion 參考設計。
存在一個勘誤表 (AB-5) 影響 M1XCLK 和 M1CLK 頻率的選擇。 這兩個時鐘必須來自同一個 PLL,儘管之後可以單獨分頻。 如果未設定此項,則 SM501 可能會鎖定並掛起整個系統。 如果 PLL 選擇不同,驅動程式將拒絕附加。