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

6670 i2c boot

Hi all,

现在在做6670 boot,通过看bootloader的文档,有些问题不太明白:

我们采用i2c boot方式,请问配制好的boot parameter table放在那里? CorePac0 的LL2吗?

还有,boot parameter table中有个选项让你选择是boot参数表、boot表、boot 配置表。如果我填的是boot表,那么bootloader是不是会去找boot 表呢?

boot表中的内容是什么呢?用hex conversion utility 转换完的boot表,放在哪里呢?

用i2c boot的话,还需要配置哪些参数呢?

谢谢

Nick

Andy Yin1:

您好,

请结合bootloader source code理解。www.deyisupport.com/…/6352.aspx

Robert (ASP Shanghai) Li:

Boot parameter table放在起始地址为 0x873680 长度为 0x80 的core0 LL2里面。从0x873680+0x80 开始是boot table 临时buffer,用于存放从I2C传过来的boot table内容。Bootloader会解析boot table并把它放到对应的地址。Boot table由out文件生成,就是你的image。如果你选择i2C slaveboot,host CPU会把boot table从I2C发往DSP,boot存放在CPU存贮器中;如果是I2C master boot,boot table放在E2PROM里面,DSP自己根据boot 参数表的设置去读取boot table。

其他可供参考的内容如下:

1. If TCI6608 is the I2C slave device, the slave address should be 0x11+ below 4 bits receive I2C address

2. Send salve boot 6 bytes header

aa xx xx yy yy zz zz [aa = the slave address for the DSP in slave I2C boot mode xx xx = length yy yy = checksum zz zz = boot option]

Example: A header with boot table option for slave address 0x19: 0x19 00 06 00 00 00 01 Before you send the header, you need a START signal. After send complete for the boot option bytes, you need a STOP signal.

START and STOP conditions are generated by the I2C when it is configured as a master.START condition is defined as a HIGH to LOW transition on the SDA line while SCL is HIGH.STOP condition is defined as a LOW to HIGH transition on the SDA line while SCL is HIGH.The bus is considered to be busy after the START condition (BB=1) and free after the STOP condition (BB=0). The BB bit is set when the I2C detects the START condition or low state of the SCL.

3. Endianess Whatever the I2C master or I2C slave’s endianess, when you start the boot table transfer, send by below sequence: START+ boot table + STOP

Example: Here is a snippet of a boot table: 0x00801466 /*first block length 0x80 and checksum*/ 0x0c000460 /*entry address*/ 0x00000580 /*first segment length in boot table*/ 0x0c000000 /*first segment start address*/ 0x357735f7 /*data*/

Send START,0x00, 0x80,0x14, 0x66, 0x0c,0x00,0x04,0x60….STOP

The I2C is operated in byte data format. Each byte put on the SDA line is 8-bit long. The number of bytes that can be transmitted or received is unrestricted. The data is transferred with the most significant bit (MSB) first. Each byte is followed by an acknowledge bit from the I2C if it is in receiver mode. The I2C does not support endianess.

Nick wang:

回复 Robert (ASP Shanghai) Li:

Hi Robert,

很感谢你的回复。但是我还是有些疑问,请帮忙解答一下:

1. 在Bootloader文档中写着,Bootloader会使用一部分的corepac0的LL2。从6670文档了解到,是从0x008f2dc0开始,

到0x008fffff结束。这和您所说的存储地址不相符。应该为哪个呢?

2. boot parameter table刚开始是不是也得放到EEPROM中呢?应为如果放到LL2中,断电之后LL2中的内容就会没了

呀。我们是采用I2C master的boot方式。

Thanks

Nick

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