This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6670 I2C Boot的几点疑问



大家好,

我们的板卡是C6670+Spartan6,C6670与S6之间有I2C连接,计划将C6670设置为I2C slave boot模式,由S6完成对C6670的boot。

但是我对Boot有一些疑问,希望大家帮助解答~

******************************************************************************************************************************************************

 问题1:如果将C6670的Bootmode引脚置为I2C slave模式下,上电后RBL将“bypass PLL and runs the CorePacs at the reference clock frequency and also configures the I2C bus at the lower rate to start with“。

我的疑问是:在连接仿真器在线调试状态下,是GEL负责完成了main PLL的配置以实现工作在1GHz或者1.25GHz之类的。

那么在非在线调试I2C slave boot方式下,main PLL是怎么配置起来的?

或者说是在非在线调试I2C slave boot方式下,那个文件或者什么东西,替代了GEL的功能(比如配置main PLL、初始化DDR3等等)?

需要在程序中加上mian PLL的配置代码吗?还是说用boot parameter table完成对main PLL的配置?

如果是用boot parameter table的方式,那么如何编写或者生成boot parameter table?

比如,我想设置main PLL使得C6670 Core工作在1GHz,那么怎么编写对应的boot parameter table?

******************************************************************************************************************************************************

问题2:在连接仿真器在线调试状态下,有着CMD文件指定了程序中各种变量的物理存放地址。

那么在非在线调试I2C slave boot状态下,在DSP内部运行中的程序在某个时刻生成的局部变量,是如何知道应该在哪生成的呢?

难道CMD文件的信息其实也融合进了.out文件中去了?然后使用hex工具转换后,这些信息仍然存在?

******************************************************************************************************************************************************

问题3:在I2C slave模式下,是不是只要使用hex工具将.out文件转换成boot table,然后把这个boot table文件给FPGA,当C6670上电后,FPGA负责把这个boot table一个一个byte地传给C6670,就能最终boot起来?

******************************************************************************************************************************************************

希望大家帮助解答,谢谢哈~~

  • 还有一个问题:

    我参照了http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/46608.aspx这个页面的文档,打算实现I2C slave boot。

    按照keystone bootloader文档,romparse是用于在boot table上连接上boot parameter table的。

    0601.Booting from the SPI NOR on C6670.pdf这个文件中的Step 4,使用了nysh.spi.map这个文件。这个文件的内容大致如下:

    section {
     boot_mode = 50
     param_index = 0
     options = 1
     core_freq_mhz = 800
     exe_file = "simple.i2c.ccs"
     next_dev_addr_ext = 0x0
     sw_pll_prediv = 5
     sw_pll_mult = 32
     sw_pll_postdiv = 2
     sw_pll_flags = 1
     addr_width = 24
     n_pins = 4
     csel = 0
     mode = 1
     c2t_delay = 0
     bus_freq_mhz = 0
     bus_freq_khz = 500
    }

    这里面的符号,比如boot_mode肯定是能够被romparse识别的。

    但是哪个文档说明了这些符号的具体含义?与boot parameter table中的参数是一一对应的吗?

    还有一些boot parameter table中有的参数,而这个文件里面貌似没有对应符号的,应该从哪里去找到对应的能够被romparse识别的符号?

  • 1. 建议你看看bootloader这篇文档,i2c boot main PLL是bypass的,之后怎么配文档上有详细的说明;

    2. cmd文件指定的是段的存放,编译out文件时调用

    3. 参看bootloader文档I2C boot

  • 你要去6670的页面上下载最新的bootloader文档来作为参考