我是一名硬件开发人员,正在为嵌入式系统创建 AHCI 接口。我想知道 PRD DMA 数据是在哪里创建并分配给 PRD 的。由于 SATA 使用 DWORDS,我假设数据将对齐为 4 个字节的倍数。我对Linux没有太多经验,所以如果有人能指出我正确的方向,我将不胜感激。
谢谢
我是一名硬件开发人员,正在为嵌入式系统创建 AHCI 接口。我想知道 PRD DMA 数据是在哪里创建并分配给 PRD 的。由于 SATA 使用 DWORDS,我假设数据将对齐为 4 个字节的倍数。我对Linux没有太多经验,所以如果有人能指出我正确的方向,我将不胜感激。
谢谢
ahci 控制器充当系统内存和 SATA 设备之间的数据移动引擎。以读操作为例,大致顺序如下:
PRD条目由软件(驱动程序)创建/分配,可以通过命令表定位/检索,即硬件可以定位命令表,然后检索所有PRD条目。此外,ahci 规范将 PRD 地址和字节数都定义为 WORD-aligned(minimum)