【我所认知的BIOS】—> uEFI AHCI Driver(6) AtaAtapiPassThruSupported的局部变量们
2017-06-29 18:09
435 查看
【我所认知的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设备了。
[右键点击图片。在新窗体打开是能够放大看的]
![](http://r.photo.store.qq.com/psb?/V11Vhb202h9VM7/FVAdz7YLHQcancgrb67qeDDHzPt9*.IX5eutSmVH4Mk!/o/dHMBAAAAAAAA&bo=gAI8A9QEQAYFAAg!&rf=viewer_4)
![](http://r.photo.store.qq.com/psb?/V11Vhb202h9VM7/9gslApAiJVzSp7hhWSAId*kpnwyQTWgdhFh6MKIecFI!/o/dHQBAAAAAAAA&bo=gAI8A9QEQAYFAAg!&rf=viewer_4)
![](http://r.photo.store.qq.com/psb?/V11Vhb202h9VM7/4xYVeEQzrCKVnIJJ.uq42pp*vOivKqCIPrKauW*7tME!/o/dHQBAAAAAAAA&bo=gAKJA2sEQAYFAAI!&rf=viewer_4)
![](http://r.photo.store.qq.com/psb?<br/><br/>/V11Vhb202h9VM7/UUQJT6VetUnRwrZqHf.DuQ2S1glsj0cTAT4X0P*css8!/o/dIsBAAAAAAAA&bo=gAKJA2sEQAYFAAI!&rf=viewer_4)
![](http://r.photo.store.qq.com/psb?/V11Vhb202h9VM7/wdGHJ6u6vvHKEfgnwEwf6LAFgZOxk4J801VziqWXriA!/o/dI8BAAAAAAAA&bo=gAKJA2sEQAYFAAI!&rf=viewer_4)
![](http://r.photo.store.qq.com/psb?/V11Vhb202h9VM7/qsifaTZ6OTU6KeM7GcWTppy9GwWsx*WEuw9uYJUhnSM!/o/dG4AAAAAAAAA&bo=gAKJA2sEQAYFAAI!&rf=viewer_4)
![](http://r.photo.store.qq.com/psb?<br/><br/>/V11Vhb202h9VM7/hRF19h17baa0eL7ogozOkNqN*Ecu5231MRvIbmX*1dI!/o/dHUBAAAAAAAA&bo=gAKJA2sEQAYFAAI!&rf=viewer_4)
![](http://r.photo.store.qq.com/psb?<br/><br/>/V11Vhb202h9VM7/NRRnCfVWhChApInZHKM6MLn0Z6daq6Sbtqm18dxpHIk!/o/dI8BAAAAAAAA&bo=gAKJA2sEQAYFAAI!&rf=viewer_4)
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的局部变量们
- 【我所认知的BIOS】—> uEFI AHCI Driver(7) — AtaAtapiPassThruSupported
- 【我所认知的BIOS】—> uEFI AHCI Driver(5) — 第一个protocol最终要開始安装了
- 【我所认知的BIOS】—> uEFI AHCI Driver(2) — 原来开始也不那么简单
- 【我所认知的BIOS】—> uEFI AHCI Driver(4) — 第一个Protocol真难搞
- 【我所认知的BIOS】—> uEFI AHCI Driver(8) — Pci.Read()
- 【我所认知的BIOS】—> uEFI 开始
- 【我所认知的BIOS】->反汇编BIOS之Bootblock(2)
- 【我所认知的BIOS】—> uEFI AHCI Driver(5) — 第一个protocol终于要开始安装了
- 【我所认知的BIOS】—> uEFI AHCI Driver(1) — uEFI开始其实不是很复杂
- 【我所认知的BIOS】—> uEFI AHCI Driver(3) — 无处不在的protocol
- 【我所认知的BIOS】—> uEFI AHCI Driver(4) — 第一个Protocol真难搞
- 【我所认知的BIOS】->反汇编BIOS之Bootblock(6)
- 【我所認知的BIOS】—>PCI option rom
- 【我所認知的BIOS】-->MTRR
- 【我所認知的BIOS】—>SMM
- 【我所认知的BIOS】->反汇编BIOS之Bootblock(11)
- 【我所認知的BIOS】—>PCI SCAN
- 【我所認知的BIOS】—>PCI 的中斷(PIC下)
- 【我所认知的BIOS】->PCI enumerate