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

C6678 IBL 加载

       在TMDSEVM6.PDF文档中有下面一段话 

Note: This workaround is only needed with PG1.0 samples of the TMS320C6678 DSP. For reliable PLL operation at boot‐up, the FPGA will force the DSP to boot from the I2C by providing the boot configuration value as 0x0405 on the boot mode pins [12:0]. After the code in the I2C SEEPROM executes to initialize the PLLs, it will read the true values on the DIP switches from the registers in the FPGA and then boot as if the normal boot sequence had occurred. The exception for the forced I2C boot is the emulation boot. The FPGA will not perform the I2C boot configuration override when the DIP switches have the following configuration: BOOTMODE[2:0] (GPIO[3:1]) = [000] and BOOTMODE[5:4] (GPIO[6:5]) = [00]. Therefore, the additional logic of the FPGA will allow the emulation boot to latch directly from the DIP switches.

          这段话是不是说:FPGA先强制DSP从0x51启动,等到PLL配置成功之后 DSP会通过和FPGA相连接的 SPI接口读取相应寄存器中的真正启动方式代码呢

 

     

Andy Yin1:

对的,主要是为了解决PG1.0中的PLL unlock问题,所以对于非I2C/SPI boot的mode都需要首先重配PLL,然后再跳转到相应的正常bootmode执行启动过程。

lei zhang1:

回复 Andy Yin1:

andy你好:

        我的开发板如果用bios_mcsdk_2.00.06.18.exe中的i2crom_0x51_c6678_le.bin和i2cConfig.gel程序进行烧写,启动结果就是正确的

但是用bios_mcsdk_2.1.2.5.exe则在 打印出 boot from nand 之后打印出来很多 DDR OK  之后就停了,而nand中的程序没有运行起来

       请问这是什么原因 ?

       另外,如果用 IIC 引导 nand启动的方式,所有的应用程序是不是都在二级缓存 或者 DDR中运行了呢?

                                                                                                                                                                                                            谢谢

dennis wu:

回复 lei zhang1:

1.看了下bios_mcsdk_2.1.2.5下IBL的源代码,貌似执行过程与之前版本没有什么太大的区别。建议你使用调试模式去查查。(IBL可以做DEBUG)

2.应用程序在哪里执行,取决你的CMD文件。其中,IBL也有自己的CMD文件(具体见IBL源码目录\make\ibl_c66x文件夹下的ibl_common.inc、ibl.cmd、ibl_init.cmd),即在二次引导时,IBL程序会在自己的程序空间中运行;之后IBL会继续加载NAND flash中的程序,当然,这个程序具体被加载到哪里执行,仍然取决于你在编译应用程序工程时使用的CMD文件中的地址段定义。

Colin Johnson:

回复 Andy Yin1:

你好,我们现在用的是PG2.0版本的DSP6678,怎么直接通过EMIF NAND和SPI NOR flash进行一次boot呢?谢谢!

lei zhang1:

回复 Colin Johnson:

似乎 EMIF接口的默认一次启动模式 不是nand 而是 nor

SPI 的NOR应该能一次boot

Colin Johnson:

回复 lei zhang1:

SPI的NOR flash的一次Boot有没有实现呢?能不能分享一下呀?

lei zhang1:

回复 Colin Johnson:

不好意思 没这么试过 只是看资料上是这么说的

不过你可以看看这个帖子中 andy的回复

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/6223.aspx

Mark:

回复 lei zhang1:

你好,我现在也是遇到这个问题了,就是通过I2C启动nand后,打印出许多DDR OK,好像是一直不停的打印,不知道这是不是启动成功。你这个问题解决了吗,谢谢!

lei zhang1:

回复 Mark:

我觉得是 IBL的版本问题,我就换成开发板中自带的那个版本就好了

我的 DDR OK 是会停的  感觉更像是在从 nand里面加载程序 每加载一页就打印一个

但是加载完毕后程序跑不起来

Mark:

回复 lei zhang1:

你好,首先非常感谢你的回复,我用的是mcsdk_2_01_02_06里面的IBL,我今天又试了一下,可以用ibl引导norflash启动,但是nand还是不行,一直打印DDR OK,好像还是不停的打印。我测试了一个led的点灯程序,norflash可以点亮,nand没反应,你能把可以正常启动的mcsdk打包发我一份吗,只发这个文件夹就行,我的邮箱是maguodong12345@126.com,谢谢了!

实在是不知道什么原因了!

赞(0)
未经允许不得转载:TI中文支持网 » C6678 IBL 加载
分享到: 更多 (0)