您好!
最近两天看这两种加载方式,有两个问题不太理解,望解答,谢谢。
1. 上电后,要对某些寄存器或者其他参数进行修改,是否只有通过I2C BOOT的方式,用EMIF BOOT方式行吗?如果只有通过I2C BOOT的方式,原因是什么呢?
2.SRIO BOOT方式是否都要结合I2C BOOT方式,因为SRIO BOOT方式下,上电后Device ID被默认配置成0xFF或者0xFFFF,如果另一个端点也是DSP,那Device ID不是重合了。如果要改Device ID,是否只有先通过I2C BOOT方式修改,修改后再进入SRIO BOOT模式。
ally:
回复 Andy Yin1:
你好!
还想问一下:
1. SRIO BOOT模式下,固化在dsp里面的Bootloader程序如何知道存储boot table 设备的ID号?
2. 对于I2C Boot引导SRIO 你所说的parameter table是否是指table3-2与table3-21的组合(即table3-21 offset12以后的数据由table3-2替代)
ally:
回复 ally:
补充说明一下,table3-2和table3-21是bootloader user guide(sprugy5)这篇文档中的。
ally:
回复 ally:
您好!
今天又想到两个问题,请一并作答,谢谢。
1、SRIO BOOT这种方式下 ROM bootloader只会搬boot table,而I2C BOOT这种方式下ROM bootloader会搬boot parameter table、config table和boot table,是这样吗?
2、I2c用于二次加载(SRIO)时,第1阶段用config table修改相应寄存器的值,第2阶段搬boot table,第2阶段的parameter table里参数BOOTMODE应配制成2(SRIO BOOT),option应配制成1(boot table),BOOT DEV Addr应配置成存放boot table的首地址,整个过程有两个parameters table,第1阶段搬parameter table,用于搬config table,第2 阶段搬parameter table,用于搬boot table,这样理解正确吗?
ally:
回复 King Wang1:
King Wang 你好!
感谢回复。
boot parameter table在第一次加载中是由Rom Bootloader从外面存储空间搬入内部RAM的吗?
King Wang1:
回复 ally:
I2C等的boot parameter table都是ROM bootloader从外部空间搬进去的。其他的EMAC和SRIO都是在ROM里面自带的table,不需要写的。
ally:
回复 King Wang1:
King Wang
你好!
感谢你的回复,对于第二个问题,有个问题没想明白。I2C加载完成SRIO parameter table替换掉I2C boot parameter table过后,你说这时已经 SRIO boot方式,为什么呢,外部引脚BootMode[2:0]上的配置还是I2C boot模式啊。rom bootloader不是都是先读取DEVSTAT寄存器的值来决定boot模式吗?外部引脚上的配置没改,这个寄存器的值不会改吧