Linux 的 SDIO Stack 也有 open-source 的版本了!

jollen 發表於 December 21, 2006 5:09 PM

SDIO 是走 SD 插糟的週邊介面,SDIO 也是普及於 PDA/Mobile 的週邊規格,實際應用例如:透過 SDIO(SD 插糟),可以外接許多 SDIO 的週邊卡,像是 SDIO WiFi card 或是 SDIO CMOS sensor。Linux 從 2.6.17 開始正式加入了 SD/MMC 的 stack driver(也就是 API core 層),但是並沒有 SDIO 的 stack driver。

因此,「玩家」可以試著由現有的 SD/MMC stack 做修改,並實作 machine-dependent 的驅動程式(例如:s3c24x0)。或是花錢買解決方案,例如:MontaVista、印度的 embWise 公司。

Linux-SDIO Project

不過,有好消息。今天在 LinuxDevices.com 上看到一則新聞:MontaVista, Atheros contribute open-source SDIO stack。MontaVista 與 Atheros 攜手貢獻 open-source 的 SDIO stack,並且未來也會加到主流(mainline)的 Linux kernel(註:即 Linus 維護的 kernel)。這個動作解決目前幾個 SD/MMC 應用的問題:

1. Linux SDIO stack(Core API layer)終於有了完整的 open-source 版本。(但是不知道實際採用的意願高不高,不過對這個部份有興趣的玩家,終於不用再面對一疊厚厚的 spec. 發呆了。)

2. Linux 未來將能支援更多的 SDIO 週邊。目前除了 SD memory card、SDIO WiFi card 與 SDIO CMOS sensor 可以跑之外,不知道還有什麼 SDIO 週邊可以上到 Linux 的。

由於 Atheros 有 Linux 2.6 的 SDIO WiFi card patch,所以除了 Atheros 的卡可以上之外,好像也沒辦法在「網路上」找到別家的。

這裡有 [MontaVista 所維護的 Atheros WiFI card SDIO 驅動程式]。

3. MontaVista 與 Atheros 合作的這個 open-source 專案,做了一件很重要的事(引述報導原文):

The linux-SDIO project will apparently endeavor to merge the Codetelligence/Atheros stack with the mainline kernel's existing linux-mmc subsystem.

此外(引述報導原文):

our long term goal is to follow the community and just submit SDIO drivers to Pierre [Ossman, Linux's MMC subsystem maintainer], instead of duplicating the SDIO framework of host controller drivers and bus drivers.

所以 Linux-SDIO project 將會整合現有的 Linux-MMC subsystem(即 Stack 層、API)。表示未來 Linux 的 SD/MMC subsystem 只會有一套,而不是像現在的情況。例如:有些 MMC host controller 的 vendor 除了實作自己的 machine-dependent driver 外,也寫自己的 stack 層(只是沒有那麼完整、通用)。

4. Open-source 的價值之一是「製造出」各種完善的商業性支援(commerical support),所以許多工作並不需要自己來,或是自己做不來的工作也能輕鬆取得支援。以 SDIO stack 解決方案來說,未來將會有更多 IDH(Independent Design House)提供 SDIO 的協助,商業性的支援不會再是有錢人的專利了。

目前 Linux 2.6 現有的 SD/MMC stack 架構與程式碼實作,難度並不是很高,相當好理解,大家可以花點時間來研究這個部份,會很有幫助的。

Open-source SDIO stack,這真是個不錯的消息!

Jollen's Blog 使用 Github issues 與讀者交流討論。請點擊上方的文章專屬 issue,或 open a new issue

您可透過電子郵件 jollen@jollen.org,或是 Linkedin 與我連絡。更歡迎使用微信,請搜尋 WeChat ID:jollentw