Hoo*_*Guo 1 linux kernel fpga pci
我遇到了与PCIe相关的问题.我使用驱动程序写入0x12345678BAR0 +偏移量,并使用Xilinx Chipscope查看波形.在我们的英特尔Rangeley板上,我们看到TLP有效载荷被分成两个DW,也就是说00_00_00_78 56_34_12_00,在戴尔PC上,我们看到有效载荷中只有一个DW.我确信两种情况都符合PCIe规范.
但我真的很想知道,为什么PCIe规范会有这种设计,即TLP头的第二个DW中的"Last DW BE"和"First DW BE"?
您的问题涉及内存请求PCI传输,对于您的问题,可以将其调整为4个参数:地址,长度,第一个双字节字节启用和最后一个双字节字节启用.
地址和长度是双字对齐的,即address[1:0] = 0通过PCI规范.那么如果你想写一个字节会怎么样?或者在非双字对齐的地址,如0x3567?您强制写入至少1个dword,但您不想删除相邻的字节.这就是第一个DW BE发挥作用的地方.例如,要将1个字节写入地址0x3567,您将拥有:
类似地,当您的传输未在双边界上结束时,最后一个DW BE将起作用.例如,如果要在地址6处写入27个字节:
| 归档时间: |
|
| 查看次数: |
2423 次 |
| 最近记录: |