适用于PCI Express的Endpoint Block Plus Wrapper v1.8  –  128或256字节的MPS由于扩展ROM解决方案而导致接收到的TLP位错误-Altera-Intel社区-FPGA CPLD-ChipDebug

适用于PCI Express的Endpoint Block Plus Wrapper v1.8 – 128或256字节的MPS由于扩展ROM解决方案而导致接收到的TLP位错误

问题描述

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 – 初始版本

请登录后发表评论

    没有回复内容