|
刚注册,很高兴原来我们计算机技术行业有这样一个论坛,为了表示对本论坛的支持,现发一贴,一点学习心得.希望大家多发贴,多交流啊!4 U A* L9 h6 y2 M4 o k% i
/ d3 k3 H( S5 n4 h t: F9 Y3 W1,SATA Mode
: S P0 k3 V0 W* L; TSATA 支持两种模式,一种是组合模式(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去完成。
/ i3 y# v' @! Z: I5 n% S9 bICH7 SATA控制器可以对四个或者两个SATA PORTS起作用,每一个Port可以独立打开和关闭,而且每个相应的接口均由一个独立的DMA控制器支持。其中SATA 的一些特征可以参考ICH7 和Serial ATA Advanced Host Controller Interface (AHCI).6 G* l% C# T% d/ \6 ]- e
7 l8 y0 f, i6 b, B# D
2.SATA Device Detection:
; s3 P: m- a% ~6 {* b% l l/ G* a0 {系统在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接口在硬件上是如何连接的.! D% ^: ]& t' t/ w
当我们没有接SATA设备时,SATA控制器是会关掉的,跟所有接口控制器一样,软件要确保必须首先关掉控制器不需要的所有功能性(such as Memory spaces , IO spaces ,DMA engines ),然后再关掉其功能(Function Disabled , RCBA+3418h). |
|