|
刚注册,很高兴原来我们计算机技术行业有这样一个论坛,为了表示对本论坛的支持,现发一贴,一点学习心得.希望大家多发贴,多交流啊!
" J8 E; u2 w* i% G! n4 E6 L1 l* V
5 X/ m4 a; c7 Z5 Q Q9 Y4 d$ B5 k1,SATA Mode F7 u$ C" w# N, o) A
SATA 支持两种模式,一种是组合模式(Combined Mode),一种是增强模式(Enhanced Mode),我们可以对ICH通过相应配置来选择这两种模式之一,他们的主要区别是:增强模式的SATA 和PATA 设备的驱动是由SATA Host Controller(Device 31,Fun 2)和IDE Controller(Device 31,Fun 1)分别进行加载和控制。而组合模式则是关掉其中一个控制器,让另外一个控制器既可以加载SATA 驱动,也可以加载PATA 驱动,顾名思义组合模式,也叫兼容(Compatible)模式,比如项目TE-945NS,ICH7 M(mobile only)笔记本兼容模式下,则关掉IDE controller, 其配置寄存器均不可再用,然后PATA 设备的I/O解码及其驱动和控制全部由SATA Host Controller去完成。
! E( `$ A5 t7 c6 x; a+ I7 h! RICH7 SATA控制器可以对四个或者两个SATA PORTS起作用,每一个Port可以独立打开和关闭,而且每个相应的接口均由一个独立的DMA控制器支持。其中SATA 的一些特征可以参考ICH7 和Serial ATA Advanced Host Controller Interface (AHCI).1 Z7 Y3 f: j7 d% {( t: a; V0 P
6 D3 V+ u8 k5 K. y" L5 [; H
2.SATA Device Detection:
' z, [9 M; i- O系统在POST过程中,对SATA设备进行侦测,由于一般ICH7系列的南桥既有支持两个SATA接口的,也有支持四个的,那么支持几个SATA 接口是不确定的,并且硬件接几个和哪几个SATA接口,以及是否有接上SATA设备是不确定的,所以BIOS的侦测和SATA PORT ENABLE的算法是根据SATA设备的实际安装情况进行的。首先系统获取四个SATA Ports 的外接设备的状态值,然后再根设备状态设置PORTS开与关,读取Port Control and Status Register (Address Offset: 92h–93h,SATA–D31:F2)的值,BIT4~7的值为SATA ports devices presents and detects status,BIT0~3的值为SATA ports enable 位,根据侦测的状态打开使用中的PORT和关闭未使用的接口(Disabled all Vacant Ports),所以按照此算法BIOS程序编写不需要了解SATA接口在硬件上是如何连接的.7 B$ W2 c4 T. n/ B+ r
当我们没有接SATA设备时,SATA控制器是会关掉的,跟所有接口控制器一样,软件要确保必须首先关掉控制器不需要的所有功能性(such as Memory spaces , IO spaces ,DMA engines ),然后再关掉其功能(Function Disabled , RCBA+3418h). |
|