SATA AHCI控制器的PCI功能编号

时间:2012-10-30 16:08:09

标签: hardware

我正在为带有SATA AHCI控制器的PC调试第二阶段引导加载程序。我能够枚举PCI总线并找到硬盘。到现在为止还挺好。现在,我的笔记本电脑中的lspci(戴尔Inspiron 1525)告诉我:

-[0000:00]-+-1f.0  Intel Corporation 82801HEM (ICH8M) LPC Interface Controller
           +-1f.1  Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller
           +-1f.2  Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller
           \-1f.3  Intel Corporation 82801H (ICH8 Family) SMBus Controller

我的问题:SATA AHCI控制器在任何PC中总是运行2吗?如果没有,我是怎么找到的?

我不假装是一般的;启动我的笔记本将足够好,不会进一步改进。

1 个答案:

答案 0 :(得分:1)

兼容的SATA AHCI控制器应始终具有设备类1(存储控制器)子类6(串行ATA)和接口1(AHCI)。因此,正确的策略是枚举所有PCI设备并比较它们的类,子类和接口以识别实现AHCI的那些设备。请注意,可能有多个,具体取决于主板以及是否插入任何其他AHCI卡。

您可能还希望允许代码通过供应商和设备ID与AHCI控制器匹配,因为某些早期AHCI控制器没有相应的类/子类/接口集。