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