我需要知道ATA命令“读取扇区”是否仍在使用。我在《 SATA存储技术》一书中读到,该命令和一般的PIO读入命令仅在引导过程中使用。因此,我开始研究启动过程,对此有些困惑。
我知道BIOS作为引导过程的一部分读取了第一个扇区或MBR。我还阅读到BIOS使用INT 13来做到这一点。
SATA设备通过HBA通信。因此,必须在SATA和HBA之间的初始化过程完成之后才能读取第一个扇区。
BIOS如何读取第一个扇区...
HBA是否将INT 13转换为ATA命令?如果是,这
是否不需要AHCI驱动程序?
何时加载驱动程序?
或者
BIOS是否直接与硬盘驱动器通信?我认为这是不可能的。
在使用SATA分析器进行了一些测试之后,事实证明BIOS或UEFI足够聪明,可以在引导过程中不使用慢速ATA命令(例如READ SECTOR(S))。相反,它使用ATA命令READ DMA EXT。
为了完整起见,顺序为:
在驱动器发送其签名之后,HBA发送ATA命令IDENTIFY DEVICE,然后发送LBA = 0的READ DMA EXT。
我不确定操作系统在正常工作期间是否使用READ SECTOR(S)或WRITE SECTOR(S)。我希望不要因为在FPGA中实现PIO IN / OUT协议不是一件令人愉快的工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句