TI中文支持网
TI专业的中文技术问题搜集分享网站

6678加载GEL时出错

        在自己做的开发板上,除了时钟部分是由AD9516产生的100MHz的LVPECL标准的时钟,其余硬件设计基本和EVM6678一样

 下载程序时,在Target Configuration文件中给核配置了evmc6678l.gel文件。Debug过程中出现中断,显示了如下的提示信息:
C66xx_0: GEL Output: Setup_Memory_Map…
C66xx_0: GEL Output: Setup_Memory_Map… Done.
C66xx_0: GEL Output:Connecting Target…
C66xx_0: GEL Output: DSP core #0
C66xx_0: GEL Output: C6678L GEL file Ver is 2.002C66xx_0: GEL Output: Global Default Setup…
C66xx_0: GEL Output: Setup Cache…C66xx_0: GEL Output: L1P = 32KC66xx_0: GEL Output: L1D = 32KC66xx_0: GEL Output: L2 = ALL SRAMC66xx_0: GEL Output: Setup Cache… Done.
C66xx_0: GEL Output: Main PLL (PLL1) Setup …C66xx_0: GEL Output: PLL in Bypass …C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
C66xx_0: GEL Output: SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.
C66xx_0: GEL Output: SYSCLK8 = 15.625 MHz.
C66xx_0: GEL Output: PLL1 Setup… Done.
C66xx_0: GEL Output: DSP core #64 cannot set PSC.
C66xx_0: GEL Output: PA PLL (PLL3) Setup …C66xx_0: GEL Output: DSP core #64 cannot set PA PLL
C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup …C66xx_0: GEL Output: DSP core #64 cannot set DDR3 PLL
C66xx_0: GEL Output: DDR begin (1333 auto)
C66xx_0: GEL Output: XMC Setup … DoneC66xx_0: GEL Output:DDR3 initialization is complete.
C66xx_0: GEL Output: DDR done
C66xx_0: GEL Output: DDR3 memory test… Started
C66xx_0: GEL Output: DDR3 memory test… Failed
C66xx_0: GEL Output: Main PLL (PLL1) Setup …C66xx_0: GEL Output: DSP core #64 cannot set PLL1.
C66xx_0: GEL Output: Error in Setting up main PLL, please power cycle the board and re-run Global Default Setup…

     请问这可能是什么原因造成的?

dennis wu:

可以查一下PLL2和PLL3的inputclk是不是没有给进去

wj xz:

回复 dennis wu:

我硬件上供了一个100MHZ的CORECLK,你指的PLL2和PLL3是什么,怎么看?

wj xz:

回复 dennis wu:

PLL1在PLL2和PLL3之前配置的,PLL1似乎就没配置成功,现在只能工作在默认的BYPASS模式下

dennis wu:

回复 wj xz:

PLL2即DDR3 PLL,输入应为66.65MHz,输出666.5MHz。这个配置不对,DDR3的test会失败。

PLL3即PA PLL,是给network coprocesser提供时钟的,输入可以与MAIN PLL相同,即CORECLK:100MHz(或者独立提供一个PASSCLK时钟作为输入)。但输出应为1050MHz。这个暂时不用管。

dennis wu:

回复 wj xz:

你的Main PLL也就是PLL1使用的是编译bypass模式肯定是不对的。那PLL模块的输出,也就是PLL controller的输入只有100MHz,而不是1000MHz。

从你的打印结果看,首先出错的地方貌似是PSC模块使能。出错地方是GEL文件中的函数“Set_Psc_All_On”,原因是DNUM不为0。

给一个正确的GEL执行结果作为参考:

C66xx_0: GEL Output: Connecting Target…C66xx_0: GEL Output: DSP core #0C66xx_0: GEL Output: C6678L GEL file Ver is 1.0 C66xx_0: GEL Output: Global Default Setup…C66xx_0: GEL Output: Setup Cache… C66xx_0: GEL Output: L1P = 32K C66xx_0: GEL Output: L1D = 32K C66xx_0: GEL Output: L2 = ALL SRAM C66xx_0: GEL Output: Setup Cache… Done.C66xx_0: GEL Output: Main PLL (PLL1) Setup … C66xx_0: GEL Output: PLL in Bypass … C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.C66xx_0: GEL Output: SYSCLK2 = 333.3333 MHz, SYSCLK5 = 200.0 MHz.C66xx_0: GEL Output: SYSCLK8 = 15.625 MHz.C66xx_0: GEL Output: PLL1 Setup… Done.C66xx_0: GEL Output: Power on all PSC modules and DSP domains… C66xx_0: GEL Output: Security Accelerator disabled!C66xx_0: GEL Output: Power on all PSC modules and DSP domains… Done.C66xx_0: GEL Output: PA PLL (PLL3) Setup … C66xx_0: GEL Output: PA PLL Setup… Done.C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup … C66xx_0: GEL Output: DDR3 PLL Setup… Done.C66xx_0: GEL Output: DDR begin (1333 auto)C66xx_0: GEL Output: XMC Setup … Done C66xx_0: GEL Output: DDR3 initialization is complete.C66xx_0: GEL Output: DDR doneC66xx_0: GEL Output: DDR3 memory test… StartedC66xx_0: GEL Output: DDR3 memory test… PassedC66xx_0: GEL Output: PLL and DDR Initialization completed(0) …C66xx_0: GEL Output: configSGMIISerdes Setup… BeginC66xx_0: GEL Output: SGMII SERDES has been configured.C66xx_0: GEL Output: Enabling EDC …C66xx_0: GEL Output: L1P error detection logic is enabled.C66xx_0: GEL Output: L2 error detection/correction logic is enabled.C66xx_0: GEL Output: MSMC error detection/correction logic is enabled.C66xx_0: GEL Output: Enabling EDC …Done C66xx_0: GEL Output: Configuring CPSW …C66xx_0: GEL Output: Configuring CPSW …Done C66xx_0: GEL Output: Global Default Setup… Done.

wj xz:

回复 dennis wu:

PLL2和PLL3是有时钟输入的,应该没什么问题。如果是GEL中函数“Set_Psc_All_On”出问题,应该怎么改?我现在工作在100M BYPASS模式下,在CCS中不配置PLL,是可以跑简单的程序的,但一旦有PLL相关的配置,就立刻挂掉

dennis wu:

回复 wj xz:

PLL工作在BYPASS模式肯定不行。看看PLL控制寄存器中的值是否设置的正确。按理说gel文件中的配置不会有什么问题。但你要确保使用的gel文件和你的C6678芯片版本对的上。

dennis wu:

回复 wj xz:

出错的根本原因不是函数Set_Psc_All_On,而是当你配置了Main PLL后,DNUM读出的处理器核编号都不对了,是64而不是0了。

先解决PLL1工作在bypass模式的问题吧。这个解决了可能后面的都对了。

wj xz:

回复 dennis wu:

我用的是EVM6678的GEL文件,应该没什么问题。DNUM值应该是硬件决定的吧,什么情况下会出错?现在关键只能工作在BYPASS,一旦配置PLL,在最后一步PLL使能的时候,就自动挂掉,不知道什么原因

dennis wu:

回复 wj xz:

首先注意到,你在配置PLL前,DNUM的值是正确的。DNUM是corepac及寄存器。它出错很可能与Main PLL配置错误有关。

所谓的"一旦配置PLL,在最后一步PLL使能的时候,就自动挂掉“具体是什么情况?

只能再帮你猜一猜可能出错的情况:你的芯片型号,支持的CPU时钟是多少?GEL文件中默认的都是1000MHz的处理器。当输入为100MHz时,如果需要得到的PLL输出不是1000MHz,则需要修改其PLLM和PLLD的值来达到。

如果还搞不清楚,可以先将Main PLL的输出降一半(你期望的是输出1000MHz,现在让它只输出500MHz)试试。具体方法是修改GEl文件中的PLLM为或者PLLD来实现。然后看看CPU是不是能正常初始化了。

另外就是仔细检查PLL时钟管脚连接。

赞(0)
未经允许不得转载:TI中文支持网 » 6678加载GEL时出错
分享到: 更多 (0)