问题描述
v1.8,v1.7.1已知问题
如果器件功能MPS设置为128或256字节,则可能导致用户界面上接收数据包的第一个和第三个DWORD中的位损坏。
为什么会这样?
解决/修复方法
在v1.7.1中,修复程序被添加到Block Plus Wrapper以永久禁用扩展ROM BAR。
在v1.7.1之前,扩展ROM BAR始终打开,无法禁用。
这导致许多平台出现问题,因为大多数用户不需要扩展ROM BAR来进行设计。
如果器件功能MPS设置为128或256字节,则添加以禁用扩展ROM BAR的修复可能会干扰接收到的TLP,因为它会更改用于在MPS为默认范围时存储传入数据的块RAM上的地址范围设置为512字节。
解决方案的设计默认值为512字节,并未考虑MPS可能更低。
要解决此问题,用户不应将MPS请求大小的CORE Generator GUI设置更改为低于512字节。
这是将包含在器件功能寄存器中的MPS值。
用户可能需要解决的这种解决方法存在潜在问题。
如果MPS功能设置为512字节,则在某些高端系统上,主机可能会将器件的MPS设置为器件命令寄存器中的512字节(假设用户应用程序可以处理达到此大小的TLP)。
通常,用户应用程序将基于cfg_dcommand [7:5]输出的TLP数据包大小,该输出告诉用户应用程序在器件命令寄存器中编程的MPS大小。
请记住,如果您的用户应用程序无法处理最多512字节的传输,则用户逻辑需要确保它知道cfg_dcommand [7:5]上的值可能超过128个字节并相应地执行操作。
即使MPS可以设置为256或512字节,由于这种解决方案,系统不应该向下游传输大的内存写入或读取数据包。
大数据传输总是由端点通过总线主DMA类型设计完成。
修订记录
06/18/2008 – 初始版本
没有回复内容