你好,
我已经阅读了KeyStone Architecture Serial Rapid IO (SRIO)User Guide (SPRUGW1B—November 2012 )和RapidIO™Interconnect Specification(Rev. 2.1)的相关章节来学习如何在c6678上使用SRIO。进一步的,我阅读了SRIO_LoopbackDioIsrexampleproject 例程的代码。该例程的路径为: C:\ti\pdk_C6678_1_1_2_5\packages\ti\drv\exampleProjects\SRIO_LoopbackDioIsrexampleproject. 现在我有一些疑问要请教:
1.下图摘自SPRUGW1B,该图显示PE_PEAT寄存器是只读的,但实际上我们可以修改该寄存器的值(SRIO_LoopbackDioIsrexampleproject 中就是这么做的)。请 问这是为什么?

2.下面一些代码摘自 SRIO_LoopbackDioIsrexampleproject:
/* Enable TLM Base Routing Information for Maintainance Requests & ensure that
* the BRR's can be used by all the ports. */
CSL_SRIO_SetTLMPortBaseRoutingInfo(hSrio, 0, 1, 1, 1, 0); /*-> this line means the value of TLM Port(n) Base Routing Register 1 Control Register is 0x84000000*/
CSL_SRIO_SetTLMPortBaseRoutingInfo(hSrio, 0, 2, 1, 1, 0); /*-> this line means the value of TLM Port(n) Base Routing Register 2 Control Register is 0x84000000*/
CSL_SRIO_SetTLMPortBaseRoutingInfo(hSrio, 0, 3, 1, 1, 0); /*->this line means the value of TLM Port(n) Base Routing Register 3 Control Register is 0x84000000*/
CSL_SRIO_SetTLMPortBaseRoutingInfo(hSrio, 1, 0, 1, 1, 0); /*->this line means the value of TLM Port(n) Base Routing Register 0 Control Register is 0x84000000*/
我阅读了SPRUGW1B中 描述这些寄存器的相关内容,但是仍有疑问。下图摘自SPRUGW1B:

图中BBR的功能是什么? 它在SRIO中的任务是什么?谁可以给我一些关于它的更详细的信息?
3.下图摘自SPRUGW1B

IDT 是什么? PLM的功能是什么?
4.直到现在,我没有在 RapidIO™Interconnect Specification (Rev 2.1) 文档中发现任何描述Transport Layer Block Header Register" 和"PLM IDT-Specific Block Header Register"的信息,但是这两个寄存器在SPRUGW1B都有提及,但是比较模糊,不详细。可不可以给我些更详细的信息呢?
谢谢!
wei he1:
你好,我只能回答其中一些问题:
1.在PER_SET_CNTL寄存器中的BOOT_COMPLETE位有明确介绍,在SRIO BOOT没有完成前,是可以修改SRIO的一些只读寄存器的;
2.SRIO可以有16个SourceID。BBR里面存放的是1-15号SourceID,而BASE_ID寄存器里面存放的是0号SourceID;
3.IDT应该是个公司的名字,我偶尔看到过,它开发了一些SRIO实现的规范。
这是我目前看到的信息,有什么不对的地方希望高手指出,其余的问题也希望高手一起指教。
weifeng guo:
回复 wei he1:
wei he1,
非常感谢您的回答。您的回复让我少了些困惑。
再次感谢!
chenyi song1:
你好,关于SRIO我也有此困惑,现在解决了吗?可否请教一下,万分感谢~!
TI中文支持网