刚接触c6657不久,目前在学习启动问题,发现和以前的dsp有些不同,有几个问题想咨询一下。
1. 我在设计硬件的时候,是否需要用i2c连接一个eeprom来修改boot parameter table里的值
2. 如果我使用emac来启动dsp,希望修改mac地址,是不是要通过boot parameter table来进行修改
3. 如果要用boot parameter table来修改启动参数,那么修改流程和启动流程是怎样的。比如我用emac口来启动dsp,是不是先要把启动方式改成i2c,使dsp读取eeprom中的值到l2指定地址,再硬件改为emac,那在不断电的前提下如何修改呢。
谢谢回答
Kevin Cai:
Hi, 您好!
C66的启动较之前版本方便易用, 您通过配置BOOTMODE[12:0]管脚,bootloader就会完成boot过程
1. 如果您不用eeprom启动,不需要连接eeprom
2. 用EMAC启动的时候,是用芯片自带的MAC地址启动的。启动完成后,您可以修改芯片的MAC地址
参见附件文档:3.5.2.2 Ethernet Boot Image Packet Format :
A destination MAC address of this device (as specified in boot parameters) or the M-MAC specified in the boot parameters are accepted.
3. 修改启动参数是通过管脚BOOTMODE[12:0]的电平设置来实现的。 如果用EMAC启动, 不再需要先改成I2C。
更详细的EMAC 启动过程,您可以参考附件文档3.5节 3.5 Ethernet Bootloader Operation
谢谢!
Lew Yu:
回复 Kevin Cai:
hi Kevin:
谢谢你的回复。但我还是有几点不清楚。
1. 是不是每个dsp都有唯一固定的mac地址,上电后可以通过MACID寄存器读出。如果在上电后、应用程序加载前希望修改本dsp的mac id(源mac id),该如何修改,是不是要另外在i2c上接一个eeprom
2. 如果我想通过emac口来启动dsp,而主机的程序下载到ddr3上,那么我该如何在上电后、应用程序加载前配置ddr3
3. 如果用emac来启动dsp,按照手册来配置硬件管脚,其中的3~5 域所描述的Device ID是什么意思
4. 我看了一下bootload的手册,好像跟您发我的不一样。上面描述了i2c的启动。好像使用i2c的启动方式来实现其他的所有启动方式(如srio,emac,spi等),好像是叫secondary stage bootloader 请问是这样的吗。如此的话就需要eeprom吧,您说的不用eeprom是不是RBL使用的都是缺省的 boot parameter table。 问题比较多,感谢回答
Kevin Cai:
回复 Lew Yu:
Hi, 您好!
1. 是的, 每个dsp都有唯一固定的mac地址。您应该比较熟悉C64x+的启动, 在C64x+上您可以接eeprom去改MAC地址
在C66上, RBL初始化完成后会发Ethernet-Ready Announcement报文,其中包含了C66的原始MAC地址, 您的host端(PC/MCU)收到该报文后,就知道应该在boot image报文里填哪个目的MAC (该目的MAC是C66的原始MAC地址)
这样您host端的程序是可以通用于启动任意多个C6657的。 您方便介绍一下希望加载前修改本dsp mac id的原因是什么么?
2. 您需要做一个简单的二级boot, 从emac口过来的boot image里的代码先执行DDR3初始化, 然后把真正的image拷贝到DDR3并跳转到DDR3
3. Device ID可以用来标识DSP, 比如您有多个C6657, 想要加载不同的 image, 您可以将多个C6657设置成不同的Device ID, host端根据Device ID发送不同的boot image. 您也可以用Device ID做身份验证, 验证Ethernet-Ready Announcement报文是从您的C6657发送出来的
4. RBL根据缺省boot parameter table和您在BOOTMODE[12:0]的设置启动。 我发的bootloader是C6657手册提供的链接提供的, 您可以看一下您的bootloader手册适用于哪个型号的芯片
谢谢!
Lew Yu:
回复 Kevin Cai:
hi kevin
您好,我想问问,您说当我以emac方式启动时,当c66上电后,RBL初始化完成后,会跟主机发送一个Ethernet-Ready Announcement,这个包里面包含了本dsp的mac id。那是不是我在开发板上,把拨码开关拨为emac启动(sw3: off on off on on on on off,sw5: on off on on on on on on),则可以通过pc机上的抓包工具获取ethernet-ready announcement 包,从而提取c6657的mac ID。我这么做了,但没有获取到。请问为什么。谢谢
Kevin Cai:
回复 Lew Yu:
Hi, 您好!
是的,另外您要看一下 BOOTMODE[12:0]的设置是否正确, BOOTMODE[12:0]中包含以太网初始化配置参数,设置正确才能与PC进行以太网通信
您还需要看一下这个报文是否被PC过滤掉了,参见文档描述:
The Ethernet-ready announcement frame is made in the form of a BOOTP request soit can use a standard format. No response is processed for this message and it isconstructed so that most—if not all—BOOTP and DHCP servers will discard it.
谢谢!
Lew Yu:
回复 Kevin Cai:
hi Kevin:
我设置的BOOTMODE[12:0]为:0 0 0 0 1 0 1 0 0 0 01 0b,觉得应该没有问题,使用的抓包工具为etherpeek/wireshark两种,设置为接受所有包,但是没有收到dsp发来的包,请帮我分析一下错误的可能性。
谢谢
Lew Yu:
回复 Kevin Cai:
hi Kevin:
问题已经解决,已经收到了dsp的macID,谢谢解答
还有一个问题询问,使用网口启动时,在下载应用程序前dsp是否处于复位状态。当程序下载完成后,怎么使dsp开始工作,是发送一个中断吗。谢谢
Lew Yu:
回复 Lew Yu:
hi Kevin:
问题解决,已获取了dsp的macID。还有一个问题:如果dsp为emac启动,在启动后、主机下载应用前,dsp应该是处于复位状态吗,在应用程序下载后,怎么能够使dsp开始运行,通过发送中断吗
user3443752:
回复 Lew Yu:
你好,我现在也遇到这个问题,请问是如何解决的?
TI中文支持网




