我在TI论坛上看到说C6678支持直接从SPI的Nor flash 加载,不需要I2C的参与,又看到说因为PLL的问题,fpga 迫使DSP先从I2C加载,之后再转到你所选择的加载方式加载,我不知道到底哪个才是正确的。我的问题如下:
1. C6678的开发板能不能直接从SPI 的Nor Flash加载,从而不需要I2C的参与?
2. 在SPI加载方式下,需不需要把IBL和IBL Configuration烧到I2C的EEPROM 中?
说明:我现在在TMDXEVM6678L上测试SPI Boot mode,但是最终目的是在C6678开发板上使用SPI加载,这个6678开发板上没有接I2C.
这个问题有点着急。希望哪位高手能够指点一下。多谢了!
Brighton Feng:
当前用的芯片版本潜在的PLL问题必须通过I2C加载规避.
PLL的问题会在下一个芯片版本fix, 到时你可以直接从SPI加载.
Brighton Feng:
回复 Brighton Feng:
更正一下:
通过SPI 加载可以直接解决PLL bug,即使使用1.0版本芯片也不需要I2C。下面是Bootloader User Guide中的信息
"The main PLL stays in bypass mode for no-boot, SPI, and I2C boot."
因为通过SPI和I2C加载时都bypass PLL,所以加载时不会触发那个bug。但是你加载后运行的代码中还是需要规避这个bug。
tthnny:
回复 Brighton Feng:
Hi,Brighton
我在调试TMDXEVM6670L(或TMDXEVM6678L)的SPI boot时,也遇到同样问题,通过拨码开关选择SPI boot,但事实上,fpga会迫使DSP先从I2C加载,之后再转到你所选择的加载方式加载….
我想请问:
1、“之后再转到你所选择的加载方式”是如何实现的?是根据拨码开关进行又一次boot吗?还是需要我们事先在i2c eeprom中写入其他boot方式的boot parameter table?比如spi boot配置spi口的参数表
2、直接进行spi boot在现有EVM板卡上是不是就是无法实现了?如果无法直接实现,在以后我们自己开发的板卡上进行spi 一级boot时,spi boot parameter table写在哪里?flash的什么地址?
Andy Yin1:
回复 tthnny:
您好,
强制进入I2C执行IBL完全是由FPGA控制的,然后根据拨码开关控制的bootpin进入相应的实际加载方式;如果只是SPI boot的话,不需要额外的parameter table,bootloader会根据拨码开关直接进入SPI挂的Nor flash现场执行代码;如果想要将SPI 上烧写的nor flash代码先搬到6678内部RAM再执行的话,则需要自己写代码将程序搬过来。
tao xiang:
回复 Andy Yin1:
目前1.0版本SPI boot会bypass PLL,那么PLL的初始化是在程序里面自己配吗?
是否在1.0版本上是否有从SPI BOOT起来的成功案例。
Andy Yin1:
回复 tao xiang:
您好,
在SPI boot下ROM code不会配置PLL,但是为了是程序正常运行起来,需要在程序中配置PLL。
EVM板可以支持SPI ROM boot,可以使用MCSDK的Norflash writter将程序烧写到flash中,然后拨成ROM SPI boot。
jim jim3:
回复 Andy Yin1:
选择ROM SPI boot 模式启动是不是会由RBL将代码读入DSP的ram,不需要向EEPROM中烧写IBL?
FPGA会不会强制先执行从EEPROM中搬IBL配置PLL然后再进入ROM SPI boot 模式?如果是这样的是不是意味着还要改FPGA程序?