This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280025C: 在PBIST程序中发现Fail Status - Port 0/Port 1但是不知道其具体含义是什么,以及为什么要使用两个port。

Part Number: TMS320F280025C
Other Parts Discussed in Thread: C2000WARE

文件路径为 C:\ti\c2000\C2000Ware_5_01_00_00\libraries\boot_rom\f28002x\rev0\rom_sources\F28002x_ROM\bootROM\include\cpu1brom_pbist.h

其中定义了两个寄存器,见下图

所以我们想要了解一下,

1、为什么要使用port0 port1两个端口,这是和pbist需要测试的存储体有关吗

2、什么情况下会导致port0 port1 fail

 

  • 你好,参考下下图,绿色部分对于status有两次判断,应该是对应的上述两个status:

    C2000 Memory Power-On Self-Test (M-POST) (Rev. A) (ti.com)

  • 你好,非常感谢你的回复,我刚刚查看了该文件,该文件针对的是4x器件(下图)。我查看了4x路径下的pbist.c文件,并且对照文件中的流程图,流程图中两个status并不是对应两个port。同时在4x器件中pbist.h文件也定义了两个port,文件路径为C:\ti\C2000Ware_5_00_00_00\libraries\boot_rom\f28004x\rev0\rom_sources\F28004x_ROM\bootROM\include。但是有一点我可以肯定流程图中的两次status检查与为什么是两个port无直接关联。如果可以的话能帮我发一个英文帖子问一下吗?谢谢。

  • 好的,我咨询下相关工程师后回复您。

  • 如果您是英文发帖询问的话,发帖之后能把链接也发给我吗?

  • 能帮我催一催吗,好像一直没有人回答。谢谢

  • 好的 我催一下

  • 您好,再帮我催一下吧,谢谢。

  • 好的 已催

  • 你好。能帮我回复一下吗?

    在该路径C:\ti\c2000\C2000Ware_5_01_00_00\libraries\boot_rom\f28002x\rev0\rom_sources\F28002x_ROM\bootROM\source中有个cpu1brom_pbist.c文件,该文件是用于PBIST测试的主程序,里面有一个PBIST_PORMemoryTest函数,该函数的入口在0x3f5485。我们通过PC指针直接跳转到该位置然后单步执行。他前期有一个执行失败用例的情况,这一点在4x器件的mpost的文档中有说过(第一张图片),2x器件也有该过程。这一用例是对ROM进行测试,但是最终port0和port1都发生故障。对于Matthew工程师所说的RAM有双端口和单端口这一点我们理解,但是ROM理论上应该都是单端口,但是失败用例的结果显示测试ROM却会port0和port1同时出现故障。还有一点就是在2x器件中定义了一个单端口RAM和一个双端口RAM(第三张图片),但是在测试过程中发现,单端口RAM中port0和port1都会发生故障,双端口RAM却只有port0发生故障。该现象与Matthew工程师所描述可能有所不同。

  • 您好,再帮我回复一下Matthew工程师。谢谢!!!我从Matthew工程师的回复中感觉昨天那三张截图好像他那边看不到。

    关于MPOST测试配置,使用的是z1,模式选择的是SCI boot mode。下面五张截图都来自第六张图片的文件中。第7、8张图片是我们测试的结果和配置。关于Matthew工程师在回复中所问的“第三张”图片来自哪里,文件路径为 C:\ti\c2000\C2000Ware_5_01_00_00\libraries\boot_rom\f28002x\rev0\rom_sources\F28002x_ROM\bootROM\include\cpu1brom_pbist.h,里面有关于存储体的分组。最后一张图片来自上面路径中的文件。

  • 好的 我跟进一下

  • 你好,能帮我再转述一下吗?谢谢!!!

    你好,在下面链接的帖子中是我之前询问Matthew工程师关于如何启动MPOST,我相信Matthew工程师应该是知道如何启动MPOST,现在只需要PC跳转到0x3f5485,这个是PBIST_PORMemoryTest函数的入口,单步往下执行就能够看见port0和port1 发生故障了。现在我的问题是不理解为什么对ROM进行测试会出现port0和port1两个故障,而对于单端口RAM是port0和port1两个故障,对于双端口RAM反而是一个故障。如果团队正在复现该情况,希望尽快给我一个回复,谢谢。

    e2e.ti.com/.../tms320f280025-how-to-correctly-start-mpost-and-view-its-running-results

  • 你好,刚刚Matthew工程师给我了新的回复,麻烦帮我回复一下!!

    只需要找到PBIST_PORMemoryTest函数入口,使用PC register跳转到该入口,然后汇编单步执行,程序会先执行一个错误的测试,这个错误的测试是对ROM进行了测试,测试结果显示同时出现PORT0和PORT1两个故障,然后重新进行测试将故障进行消除,最后对所有存储体(除bootrom外)进行测试,然后将结果返回给0x6寄存器。

    其中那个错误的测试是用使用RAM的算法对ROM进行测试,最终导致出现了PORT0和PORT1两个故障。这里有一个疑惑就是,为什么对ROM进行测试会产生两个PORT都产生故障。还有一点就是后来我们通过汇编单步测试时在对ALGO和RINFOL寄存器赋值后,通过memory browser窗口直接对该寄存器进行修改,比如使用ROM的算法对RAM进行测试,结果我们发现对于PBIST_RINFOL_M13N_SINGLE_PORT_SRAM产生两个故障,而对于PBIST_RINFOL_M13N_TWO_PORT_SRAM却只有PORT0故障。

    还有一个就是Matthew工程师所说的0x6寄存器的返回值是0xFAABDEED 这一点,我之前的链接中已经对此事进行提问了。我们现在关心的不是他返回的结果,而是关于两个PORT故障究竟是如何定义的。按照之前的回复说通过RAM是单端口还是双端口来对PORT0和PORT1进行分配这个与测试的结果明显不符。

  • 你好,能帮我询问一下吗。是否有了新的进展。谢谢!!!

  • 你好,Matthew工程师给了我新的回复!麻烦帮我转述一下!

    首先,brom中的源代码的位置,是由Matthew工程师在上面链接中的那个帖子中发出的。

    其次,我们并没有在应用程序中调用,我们只是通过PC进行跳转,然后单步执行。在这期间我们只是将板子连接到了ccs,因为只有这样才能看到mpost在上电执行后的结果(0x6寄存器),官方并没有提供任何的ccs工程让我们进行调试,没有任何的.out的文件可以用于载入。