硬件配置PACLKSEL置为1,输入的参考时钟为100MHz,以太网时钟为156.25MHz
问题1:将C6670配置为以太网启动,并且成功加载app load,但DSP之间以太网通信不通。当通过JTag加载则以太网通信正常。
问题2:在bootmode中配置了bootmode[12:10] ,但bootmode[2:0]选择的不是core clk,是否需要在代码中再次对PASS PLL进行配置
问题3:是否PASS PLL只能配置1次
问题4:硬件将PACLKSEL置为1,是否bootmode[2:0]必须选择PA clk。
配置参数大概如下:
bootmode[12:10] = 011(系统时钟100Mhz)
bootmode[9:8] = 00 (Serds时钟156.25MHz)
bootmode[7:6] = 10
bootmode[5:3] = 000
同时发现:
当bootmode[2:0] = 010(PA driver from core clk)的时候,通过Jtag连接查看到PASS PLL 的PLLD和PLLM分别为0,20,与bootmode[12:10] = 011配置参数表一致
当bootmode[2:0] = 011(PA driver from PA clk)的时候,通过Jtag连接查看到PASS PLL 的PLLD和PLLM分别为24,335,与bootmode[12:10] = 011配置参数表不一致。
Marvin Liang:
问题1&2. 在硬件已经设置PACLKSEL为1且CORECLKP输入为100MHz的情况下,请确认PASSCLKP管脚上输入的时钟是多少? 如果是100MHz, 则bootmode[2:0] = 010,bootmode[12:10] = 011; 不知道你的DSP之间以太网通信不正常指的是不同的芯片之间还是核之间?而且如果通过JTAG加载完全一样的程序能正常,是否是boot image未正常启动或者JTAG方式下已经用gel做了初始化?
问题3,可以再次配置,注意用户手册里的流程
问题4,bootmode[2:0] = 010或者011,如果PASSCLKP输入和CORECLKP同频则选择010,如果PASSCLKP输入和SRIOSGMIICLKP同频则选择011.
armywoods liu:
回复 Marvin Liang:
问题1&2. 我们的设计PASSCLK也是100MHz,按你说的,bootmode[2:0] = 010即设置为PA driver from core clk,而不是选择from PA clk,即便硬件已经设置了PACLKSEL为1?
以太网通信不正常是指DSP之间的,Jtag加载完成一样的程序能正常,PA PLL的配置在gel做了。
之前是把板子改为以太网启动,同时再通过JTag去加载load,发现以太网驱动初始化没问题,但DSP之间无法通信;
现在把load通过以太网加载进去后,来连JTag进去查看,发现这种情况下以太网PA初始化无法完成,在加载PA固件后重新enable PA的时候一直在wait for mail box slot 1 to became zero;
启动模式为no boot模式,使用JTag加载load则以太网通信完全正常。
问题3,有个疑问,我从这个论坛置顶的贴中找到相关的sdk代码,发现里面PA PLL的配置低3、4、5这几步与PLL文档中PASS PLL初始化部分不一致,代码是按照5、3、4来实现了,请问到底按照哪个更准确?
问题4,是否JTag加载必须启动模式是no boot模式?
armywoods liu:
回复 armywoods liu:
问题1&2有一些更新,bootmode[2:0] = 010,且MAIN pll和PASS PLL都不在代码中进行配置,则不会出现在加载PA固件后重新enable PA的时候一直在wait for mail box slot 1 to became zero的问题,但是完成以太网初始化后,DSP依然发不出以太网包,(监听与之相连的switch端口)
如果bootmode[2:0] = 011,且PASS PLL都不在代码中进行配置也不会出现一直wait的情形,但是完成以太网初始化后,DSP依然发不出以太网包,(监听与之相连的switch端口)
TI的各位专家们,能帮忙看看这个是啥问题吗,比较急
Marvin Liang:
回复 armywoods liu:
PA PLL初始化按照文档的顺序来做。
JTAG加载时,理论上对初始的boot mode没有要求,而TI一般要求为no boot模式,主要是TI提供的gel是按照初始配置来做的,如果芯片已经被boot loader初始化过,可能gel未必能正常再次初始化芯片
A. 所有的前提是,你是否已经有一个程序包含了所有的芯片初始化代码,在no boot模式下,通过JTAG加载(注意不要用gel!),它是可以按你的预期跑正常的?如果没有,请先调试并得到一个这样的程序再考虑boot的问题。
B. 你的以太网boot流程确实已经跑完了么?有没有检查boot complete寄存器?
armywoods liu:
回复 Marvin Liang:
查看boot complete寄存器,发现值为1,所有的core都完成加载是不是要是0xF?
我加载完成后,通过Jtag连接后加载符号表,查看到每个core都完成了我们自定义的初始化流程。
armywoods liu:
回复 armywoods liu:
另外,只要配置了以太网加载,然后在代码中再次对main PLL或者是PASS PLL进行配置,PA初始化就无法完成,一直在前面说的wait 状态
如果不在代码中对PLL进行再次配置,则以太网初始化可以完成,但以太网包发送不出去