问题描述
当SPLB0或SPLB1从PLB端口和支持地址流水线操作的另一个PLB从站连接到同一PLB总线时,会发生数据损坏或PLB总线挂起。当两个PPC440 SPLB0 / 1端口连接到同一总线时,也会发生这种情况。
我该如何解决这个问题?
解决/修复方法
此问题仅发生在PLB总线使用的不常见情况下。 plb_v46仲裁器仅支持2深度地址流水线操作,因此它向所有从站广播单个rdPrim和wrPrim信号。 PPC440硬块的SPLB接口设计用于支持N深度流水线的仲裁器。如果PPC440 SPLB采样rdPrim或wrPrim用于不同的从器件(当SPLB没有确认SAValid时),则SPLB可能正在驱动总线反转。这可能导致数据损坏或总线挂起。如果总线只有一个不发出流水线事务的主服务器,或者总线上的所有其他从服务器不支持地址流水线操作(即,其他从服务器不响应SAValid而断言addrAck),则不会发生此问题。
所有其他EDK内核(包括基于EDK PLBv46 IPIF的自定义PLBv46从站)不支持地址流水线操作,不受此问题的影响。
解决方法包括:
- 断开(绑定到net_gnd)SAValid(?PLBPPCS * SAVALID?),rdPrim(?PLBPPCS * RDPRIM?)和wrPrim(?PLBPPCS * WRPRIM?)输入到PPC440 SPLB接口。这会禁用SPLB的所有地址流水线操作,但允许所有其他从站继续支持2深度流水线操作。
- 断开(绑定到net_gnd)SAValid,rdPrim和wrPrim输入到与PLB440 SPLB接口共享相同PLB总线的所有其他从站。这会禁用所有其他从站上的所有地址流水线操作,但允许PPC440 SPLB继续支持2深度地址流水线操作。
如果多个PPC440 SPLB连接到同一总线,则只有一个可以执行流水线操作;其他人必须断开他们的3个输入。
在“过滤器”菜单中启用“默认连接”的可见性后,可以使用“系统装配GUI”,“端口”视图断开(接地)这些信号。
没有回复内容