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.

c6657启动问题



刚接触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,那在不断电的前提下如何修改呢。 谢谢回答
  • 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

     

    谢谢!

       

    Keystone boot.pdf
  • 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。 问题比较多,感谢回答

  • 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手册适用于哪个型号的芯片

    谢谢!

     

  • 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。我这么做了,但没有获取到。请问为什么。谢谢
  • Hi, 您好!

    是的,另外您要看一下 BOOTMODE[12:0]的设置是否正确, BOOTMODE[12:0]中包含以太网初始化配置参数,设置正确才能与PC进行以太网通信

    您还需要看一下这个报文是否被PC过滤掉了,参见文档描述:

    The Ethernet-ready announcement frame is made in the form of a BOOTP request so
    it can use a standard format. No response is processed for this message and it is
    constructed so that most—if not all—BOOTP and DHCP servers will discard it.

    谢谢!

  • hi Kevin: 我设置的BOOTMODE[12:0]为:0 0 0 0 1 0 1 0 0 0 0 1 0b,觉得应该没有问题,使用的抓包工具为etherpeek/wireshark两种,设置为接受所有包,但是没有收到dsp发来的包,请帮我分析一下错误的可能性。 谢谢
  • hi Kevin: 问题已经解决,已经收到了dsp的macID,谢谢解答 还有一个问题询问,使用网口启动时,在下载应用程序前dsp是否处于复位状态。当程序下载完成后,怎么使dsp开始工作,是发送一个中断吗。谢谢
  • hi Kevin: 问题解决,已获取了dsp的macID。还有一个问题:如果dsp为emac启动,在启动后、主机下载应用前,dsp应该是处于复位状态吗,在应用程序下载后,怎么能够使dsp开始运行,通过发送中断吗
  • Hi, 您好!

    下载完成后, RBL会跳转到_c_int00并开始执行image.

    After the image is loaded, the RBL changes the program counter to the c_int00 address and starts the boot image execution.

    谢谢!

  • 你好,我现在也遇到这个问题,请问是如何解决的?