TIwilliam hill官网
直播中

李晓鹏

7年用户 1284经验值
私信 关注

请问,如果软件不重新初始化SRIO端口,只是收发doorbell,最小代码应该是什么?

本帖最后由 一只耳朵怪 于 2018-5-25 15:56 编辑

我们设计的系统是6678和Altera的FPGA利用SRIO进行通讯,FPGA利用SRIO 1X接口,对6678进行SRIO BOOT和DOORBELL通讯。
现在遇到的问题是,代码用仿真器运行时DOORBELL通讯没问题,利用SRIO boot以后doorbell通讯就失败,SRIO端口的寄存器(0x0290b158)显示端口状态出了问题。起初怀疑SRIO boot没有成功,但是boot完成了,增加了写特定地址数据,闪灯等验证手段,发现boot也没有问题。为了取消多核的影响,我们把代码改到单核上来实现。
我是利用william hill官网 上的6678的csl例程进行的SRIO初始化。代码里头会对SRIO端口进行重新的初始化。由于我们的系统是SRIO boot。我想请问,如果软件不重新初始化SRIO端口,只是收发doorbell,最小代码应该是什么?我尝试只配置LSU等相关寄存器,或者利用例程中给的keystone_SRIO_doorbell函数,doorbell都发不出去。请指点一下,非常感谢

回帖(9)

李晓鹏

2018-5-25 10:27:56
我看6678的SRIO boot默认设定是message 模式,和原来6474的PIO模式不太一致,有何具体区别?我可以将SRIO的BOOT模式默认设定为PIO模式吗?
举报

李萌

2018-5-25 10:37:30
1.把你们SRIO boot起来的代码做成死循环,不跑任何程序,把SRIO的端口状态寄存器读出来。看看SRIO是在boot起来就出现问题,还是跑了代码才出现问题。
2. 因为SRIO 初始化时需要DSP和FPGA两边一起初始化,你可以通过DSP发送reset命令,让FPGA重新发起SRIO初始化。
举报

李晓鹏

2018-5-25 10:44:57
引用: dechun28448 发表于 2018-5-25 10:37
1.把你们SRIO boot起来的代码做成死循环,不跑任何程序,把SRIO的端口状态寄存器读出来。看看SRIO是在boot起来就出现问题,还是跑了代码才出现问题。
2. 因为SRIO 初始化时需要DSP和FPGA两边一起初始化,你可以通过DSP发送reset命令,让FPGA重新发起SRIO初始化。 ...

非常感谢答复!
1. 第一步我做过,我在代码中保存了不同时期SRIO的端口状态寄存器的值,在刚BOOT以后,SRIO初始化以后端口状态寄存器都显示正常,寄存器0x0290b158的数值为0x2。 但是发送完doorbell以后,即执行完keystone_SRIO_doorbell函数后,寄存器0x0290b158的数值变为0x01030306,显示端口状态错误。此时,只有复位DSP才能恢复正常。   如果不用BOOT,直接上电后用仿真器load,状态都是正常的。
   从这个现象看,BOOT是OK的,是跑了代码才出现问题,可是又没法解释我上电后直接用仿真器load工作正常的现象。
2. 代码中SRIO初始化是DSP自己执行的,不需要FPGA控制,如何让FPGA发起?reset命令如何通知FPGA?
举报

李晓鹏

2018-5-25 10:58:28
引用: naugia 发表于 2018-5-25 10:44
非常感谢答复!
1. 第一步我做过,我在代码中保存了不同时期SRIO的端口状态寄存器的值,在刚BOOT以后,SRIO初始化以后端口状态寄存器都显示正常,寄存器0x0290b158的数值为0x2。 但是发送完doorbell以后,即执行完keystone_SRIO_doorbell函数后,寄存器0x0290b158的数值变为0x01030306,显示端口状态错误。此时,只有复位DSP ...

6678的datasheet中第29页最后有这样一段话。
In SRIO boot mode, the message mode will be enabled by default. If use of the memory reserved for received
messages is required and reception of messages cannot be prevented, the master can disable the message mode by
writing to the boot table and generating a boot restart.
想请问一下,什么是boot table?如果message mode不能用,如何改成其它模式?比如Direct IO模式。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分