1. 程式人生 > >【我所認知的BIOS】—> uEFI AHCI Driver(6) AtaAtapiPassThruSupported的局部變量們

【我所認知的BIOS】—> uEFI AHCI Driver(6) AtaAtapiPassThruSupported的局部變量們

() tex right sata bds src light spec hot

【我所認知的BIOS】—> uEFI AHCI Driver(6) — AtaAtapiPassThruSupported的局部變量們

LightSeed

5/7/2014


前面5個篇文章把EFI_DRIVER_BINDING_PROTOCOL這個protocol的一個實例(instance)AHCI driver的安裝做了一個比較具體的介紹。事實上這個driver到眼下為止僅僅幹了一件事情,那就是把這個protocol安裝到相應的ImageHandle上去。對於這個driver在BDS的怎麽執行,原理上講就是先調用supported()然後再調用start(),最後執行stop()來卸載driver。

近期聽了不少同事說去泰國旅遊多麽多麽爽。後來了解了一下確實是不錯的選擇。恰好還欠著老婆一個honey moon,於是這兩周花了不少時間來研究攻略。寫了一份算是架構吧。正如前面這幾篇文章一樣,事實上都僅僅是一個架構,細節上還須要進一步做研究和探討。

一說就說了那麽多架構上的東西。關於EFI_DRIVER_BINDING_PROTOCOL讓我們來繼續做更深入的探討,把它研究透。針對於AHCI driver的話,就從它的Supported()開始說起。

在uEFI的spec裏面,有一個叫做EFI_ATA_PASS_THRU_PROTOCOL的protocol。

它事實上是能夠不用存在的,關鍵是看BIOS是否想要支持這個功能。

事實上它這個protocol是對IDE和AHCI等不同SATA controller模式封裝。有了這個protocol,那麽就能夠固定地用這個protocol來訪問不同模式下的SATA controller。並通過controller訪問掛在其以下的SATA設備了。


[右鍵點擊圖片。在新窗體打開是能夠放大看的]

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

【我所認知的BIOS】—> uEFI AHCI Driver(6) AtaAtapiPassThruSupported的局部變量們