0

在发送 ATA 命令期间,我发现了几个分类。例如,第一个 - 我们可以将命令分为数据输入、数据输出和非数据命令。另一种分类可以是有 48 位命令和 28 位命令。第一个用于磁盘,大于 120Gb。

问题是:我是否需要设置一些值让磁盘知道它是否获得了 48 位命令?例如,如果我通过 SATL 发送带有 ATA 的 SCSI 命令或通过控制器发送 ATA PASS THROUGH 命令。

4

1 回答 1

0

在研究过程中发现,每个控制器都有自己的特殊性,具体取决于驱动程序。这就是为什么 ATA PASS THROUGH 命令的实现如此困难的原因。

通过读取 Linux 驱动程序并检查使用 ioctl 发送的结构,可以确定它是 28 位还是 48 位命令。

此外,检查软件的新程度也很重要,因为 48 位逻辑块寻址 (LBA) 是 2006 年在 ATA-6 标准中引入的。现在很可能所有控制器都支持 48 位命令集,但您仍然应该检查控制器是否支持它。

所以,这个问题的答案很大程度上取决于使用控制器。

于 2013-07-08T08:35:08.727 回答