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

C6678初始化 GEL问题跟platform_init()问题

各位大神好:

    这是我以前的问题,有说明我的调试环境:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/60020.aspx?pi239031348=1

######################################################################################

其实现在的问题是我之前遇到问题的延续,

问题1:在我加入GEL文件(CCSV5中EVM6678板自带),在我第一次运行GEL中的"Global Default Setup"功能时,DSP可以正常初始化;但是之后再点”Global Default Setup“会出现问题,之后也一直会发生同样的错误。

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.004C66xx_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: 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 … 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… Passed
C66xx_0: GEL Output: PLL and DDR Initialization completed(0) …
C66xx_0: GEL Output: configSGMIISerdes Setup… Begin
C66xx_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 …DoneC66xx_0: GEL Output: Configuring CPSW …
C66xx_0: GEL Output: Configuring CPSW …DoneC66xx_0: GEL Output: Global Default Setup… Done.
C66xx_0: GEL Output: C6678L GEL file Ver is 2.004C66xx_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: Error while waiting for GOSTAT bit returning to 0 …C66xx_0: GEL Output: Error in Setting up main PLL, please power cycle the board and re-run Global Default Setup…
Global_Default_Setup() cannot be evaluated.
Evaluation canceled

发生错误之后,我测了SYSCLKOUT的输出由正常的166M变成了70M,说明确实PLL的时候出错了,求大神指点~

背景:我用EVM开发板试过,这个"Global Default Setup"是可以反复运行的;还有我使用的core_clock,pass_clock,ddr_clock和sgmii_clock都跟EVM板一致;

——————————————————————————————————————————————————

问题2

我运行i2cnorboot_evmc6678l程序时,会卡在platform_init()这个函数上;然后我单步运行发现是卡在init_sgmii(1)这句上,看上去是sgmii初始化不成功,不知是什么原因?

背景:因为DSP有两个MAC,EVM板把MAC0连到AMC接口上,MAC1连到88E1111芯片;我们的板子把两个MAC都连到了同样的88E1111,电路参考的EVM板,88E1111的时钟和电压都没有问题。而且偶然的一次,我在我们的板子上跑通了HUA的程序,但是之后一直运行不同,同样卡在platform_init()这个函数上。

麻烦大家帮我看看,谢了~

Kevin Cai:

Hi, 您好!

问题1:

看上去是(重复)GEL 初始化冲突引起的, 您上电以后执行一次GEL初始化就可以了

问题2:

如果您两个网口都用了, 请用网线将两个网口都与外部网络连接好, 即不要把网口1悬空, 但又执行了init_sgmii(1)

如果您只用了一个网口(如端口0), 请把另一个( 端口1)的初始化init_sgmii(1)注释掉

谢谢!

 

yimin dong:

回复 Kevin Cai:

Kevin

您好!感谢您的回答。对于您的回答我还有几个疑问:

问题1:为什么用EVM板,可以反复的执行初始化?而我们的板子不能。

问题2:a.这个函数init_sgmii(1)应该是初始化DSP的MAC[1],而init_sgmii(0)是初始化MAC[0],不知道我理解的是否有问题。

               b.要执行初始化init_sgmii(1)必须要连接网口吗?为什么EVM板,不连接网口的时候执行init_sgmii(1)也可以通过?

下一步,我将按照你的建议做下尝试,再次感谢~

yimin dong:

回复 Kevin Cai:

Kevin:

    很高兴今天把问题2解决了,是因为上电时序问题。我们的板子在上电之后,默认输出了本该在后面产生的2.5V电压;然后我调整了一下FPGA的控制程序,上电时序正常之后,platform_init()就可以正常通过了。

    然后我用HUA程序,测试以太网,也正常了,只是程序下载到DSP上的时候没找到main()函数(我有试过用另外一个串口测试程序,可以找到main),但是我按F8运行,还是可以正常工作。

最后我又用GEL的GlobalDefaultSetup重复初始化DSP,还是会产生问题但是跟之前又不太一样。

————————————————————————————————————————–

下面是我现在产生的几个疑问:

1.程序下载完成后没找到main()函数,但又可以运行是什么情况?

2. HUA程序是不是只针对MAC[1]?因为我用MAC[0]的网口测试没有通过。

3.重复初始化DSP后产生的新问题:DDR3 memory test… Failed。我自己先找找原因,如果您有时间也可以帮忙分析一下,谢谢。

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 #0C66xx_0: GEL Output: No initialization performed since bootmode = 0x00000005 C66xx_0: GEL Output: You can manually initialize with GlobalDefaultSetupC66xx_0: GEL Output: C6678L GEL file Ver is 2.004 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: 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… FailedC66xx_0: GEL Output: Main PLL (PLL1) Setup … 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: PA PLL (PLL3) Setup … C66xx_0: Trouble Writing Memory Block at 0x262003c on Page 0 of Length 0x4: (Error – 1060 @ 0x262003C) Device is not responding to the request. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.872.0) Global_Default_Setup() cannot be evaluated.target access failed at *((unsigned int *) (0x02620000+0x003C))=0x95A4F1E0 [evmc6678l.gel:169] at Init_Pll3(PLLM_PASS, PLLD_PASS) [evmc6678l.gel:870] at Global_Default_Setup_Silent() [evmc6678l.gel:1576] at Global_Default_Setup()C66xx_0: Trouble Reading Memory Block at 0x8158f06c on Page 0 of Length 0xc1: (Error -1060 @ 0x8158F06C) Device is not responding to the request. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.872.0) C66xx_0: Trouble Reading Memory Block at 0x8158f06c on Page 0 of Length 0xad: (Error -1060 @ 0x8158F06C) Device is not responding to the request. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.872.0)

Andy Yin1:

回复 yimin dong:

1 程序下载完之后是设置为自动运行到main么,可以手动locate一下代码位置,应该问题不大;

2 关于DDR的问题,现在很多客户直接拿gel文件进行配置,这是不对的,DDR控制器的配置是与RAM型号、layout参数有关,TI提供了两个spreadsheet供客户输入相应的参数直接得到最终的DDR控制器参数,之后更新到gel中配置ddr即可。

DDR spreadsheet:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/53384.aspx

yimin dong:

回复 Andy Yin1:

Andy:

您好,感谢您的回复。

1."Auto Run Options"设置是Run to symbol main,是要如何手动Locate代码的位置呢?

2.关于DDR的问题,我们设计参考的是开发板,在上电的首次初始化DDR,test 都是可以passed的,这样是不是也是GEL中的配置参数也需要改变?

我下一步将看下你给的链接,再次感谢~

buxin chang:

回复 yimin dong:

yimin dong, 你好:

       我现在碰到了和你的问题(问题2),我的环境:芯片66AK2H12,用的自己的硬件板,仿真器SEED-XDS560PLUS,软件CCS5.5.0.00077_win32。

在运行,运行 mcsdk_bios_3_00_03_15\tools\writer\nand程序,会卡在platform_init()函数中的init_sgmii(0)函数。      上电控制是由我这边FGPA人员做的,他说没有问题,所以想请教一下,你那边是如何验证出来的? 

yuanwen dong:

回复 yimin dong:

1."Auto Run Options"设置是Run to symbol main,是要如何手动Locate代码的位置呢?

==> 打开生成的map文件,定位main的位置。 用方针器下载之后,在register任务栏中找到CorePac寄存器,然后修改当前PC运行指针。

2.关于DDR的��题,我们设计参考的是开发板,在上电的首次初始化DDR,test 都是可以passed的,这样是不是也是GEL中的配置参数也需要改变?

==>我看到很多客户这样改的。

Br

William

yimin dong:

回复 buxin chang:

你好,

因为我这边一上电(FPGA还没加载程序)DSP端就出现了2.5V电压,所以我发现了这个问题。

对于一上电产生电压的原因是因为电源芯片使能端与FPGA引脚对接,FPGA默认输出了一个高电平,所以一上电之后会使DSP很多电压输出有效。

我的解决方法是,先让FPGA与电源芯片时能端相连的引脚输出为低电平差不多10秒的时间(这个时间你也可以设置得更长),之后再按正常的上电时序上电就没有问题 了。

——————————————————————————————–

所以,你现在可以先在上电且未加载FPGA程序的时候,测量一下2.5V的输出是否存在。

liangyu zhao:

回复 buxin chang:

您好,我遇到了和您一样的问题。我现在在调试DSP C66ak2e的helloworld程序。通过设置断点,发现程序运行到platform_init()处,就没有反应了。我尝试单步运行,但是提示找不到platform.c文件。我在他给的路径下发现所有的文件格式都是.pp格式的。现在不知道怎么办了,求指导~~谢谢

Fei Zhan:

你好,你们两个MAC都连到了同样的88E1111,运行HUA程序时,若网线连接在SGMII0,能访问192.168.2.100么?

赞(0)
未经允许不得转载:TI中文支持网 » C6678初始化 GEL问题跟platform_init()问题
分享到: 更多 (0)