4

我正在调试带有 SATA AHCI 控制器的 PC 的第二阶段引导加载程序。我能够枚举 PCI 总线并找到硬盘。到目前为止,一切都很好。现在,我笔记本(Dell Inspiron 1525)中的 lspci 显示:

-[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?如果没有,我是怎么找到的?

我不假装一般;启动我的笔记本就足够了,无需妥协进一步的改进。

4

1 回答 1

1

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

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

于 2012-10-30T22:57:19.180 回答