UEFI BIOS虚拟光驱的设计实现*
2012-10-16纪向尚庄克良王大庆
纪向尚 庄克良 王大庆
(海军704厂 青岛 266109)
1 引言
小型计算机系统接口(Small Computer System Interface),简称SCSI,主要应用于计算机外围设备,如硬盘、软驱、光驱、打印机等。SCSI标准定义了命令、通讯协议以及实体的电气特性,其主要软件接口是SCSI命令。
SCSI的原始版本是SCSI-1,SCSI-1具有8位总线,数据传输率为4Mbps。目前SCSI-1已经很少使用。作为对SCSI-1的改进,SCSI-2使用了两项新技术Fast SCSI和 Wide SCSI。
Fast SCSI将传输速率提高到10MB/Sec,而Wide SCSI突破SCSI-1的单字节传输限制,将数据总线的带宽提高到16位或者32位。当使用Fast-Wide SCSI时,其理论传输速率为20MB/s或者40MB/s,SCSI-2增加了新的设备命令集,对光驱的支持也出现在SCSI-2标准文档中。
UEFI则定义了操作系统与系统硬件平台固件之间的开放接口。该规范定义的接口包括平台相关信息、启动服务例程以及操作系统运行时服务例程。操作系统装载器与操作系统可通过接口调用这些服务例程。UEFI规范是一个公开的纯接口定义,它不依赖于某个特定的BIOS制造商或某个特定的BIOS的实现,它仅仅定义了平台固件必须实现的接口,以及操作系统可能使用的一系列接口与数据结构,其实现的方式与细节均取决于该规范的实现者。UEFI规范还定义了固件驱动程序模型,使得所有遵循此模型开发的固件驱动程序能够互相协作。
目前UEFI BIOS下还没有相应的虚拟光驱方面的应用程序,本文研究的就是在UEFI接口规范下基本SCSI虚拟光驱技术的设计和实现。
2 SCSI协议分析
UEFI的所有驱动依靠协议堆叠形成协议栈,并以此组织系统中的驱动模块。SCSI作为总线控制器,要求提供控制器本身的控制协议即SCSI Pass Thru Protocol或者其扩展版本Ext Scsi Pass Thru Protocol。……
