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.

C550X Booting From USB

Other Parts Discussed in Thread: TMS320C5515

Hello All

I am developing a device where I would like to leverage the default boot from USB option as the method for loading new firmware in the field. Does TI have any documentation beyond http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=sprab92a ?

I need to know how I can use the boot from USB option to gain control of the processor and burn new firmware to our EEPROM.

Has anyone used the boot from USB option with the TMS320C550X processors? Are there any tools or documentation available to support booting from USB?

Thanks,
KC 

  • Hello KC,

    The doc you refer to works for 5515 & 5505 families since the USB interface is the same . I am not sure there is a common doc for all.

    Regards,

    Steve

  • Hello Steve,

    The doc doesn't really give any information on how I can use the USB bootloader for anything. The only information it gives is the VID, PID, and the number of endoints. I can certainly see the device and it enumerates fine, but what next?

    Regards,

    KC

  • KC,

    For the C5515/05 family of products, you need an encrypted boot image for USB boot. Please contact your TI support to get the boot image encryption tool.

    Reagrds,

    Steve

  • Steve -

    Even if we had the encryption tool and were able to encrypt the boot image, then what?  How do we get this thing to boot from USB???

    -mc

  • MC,

    The device checks for boot image in a preset order of periperals. It will setup the PLL to function properly with USB communicating via endpoint 1 to USB host (PC). Please refer to section 2.2 for more details. The secure boot image format is descripted in section 3.2.

    I am also in contact with your Brad Griffis, your TI support.

    Steve

  • Steve,

    So do I just need to start shoveling bytes into bulk endpoint 1 and as long it is a secure boot-image format the DSP will execute it?

    Do you have a program that shovels data into bulk endpoint 1, or do I need to write my own?

    Thanks,
    KC

     

  • Hello KC,

    We are in the process to get legal approval to post the info to public. At the mean time, there is some legal paperwork that need to be done before we can provide the detail info. I have linked up your local TI support with our contact here in Dallas to proceed with the paperwork. I believe he will conact you soon. Sorry for the delay.

    Thanks,

    Steve

  • Hi Steve:

    Does this mean that software cannot be upgraded via USB if it is not encrypted?

    Thanks a lot!

    Cheers,

    Mushtaq

  • Mushtaq,

    That's right. Unsecure image can be boot from internal peripheral, NOR, NAND, SPI & I2C EEPROM.

    Our next Value Line device will support unsecure boot from external also.

    Regards,

    Steve 

     

  • Hi Steve:

    Are there any encryption utilities availabe from TI? Thanks a lot!

    Cheers,

    Mushtaq

  • Mushtaq,

    Yes. The information we need to submit for US export compliance are:

    your name, your ph#, company name, address and application. Once the compliance is complete, we will send you a web link to proceed.

    regards,

    Steve

  • Hi Steve:

    Is there a special application form? Also, can we send the requiste information through this form? Thanks a lot.

    Cheers,

    Mushtaq

  • Mushtaq,

    No form yet. This flow has just been established this year. You can send the information to your FAE or myself via company email. We will send you the link page via company email address also.

    regards,

    Steve

    stsang@ti.com

  • Hi,

     

    The secure boot image tool utility has been used here and a  (secure/encrypted output, not bound to device, boot-signature is 0x09A5)  .bin file created for our TMS320C5515 device.

    Yet when I try to send it to OUT endpoint 0x01, although it gets received (I monitor via a USB monitoring utility), the device is not booting from it. It just keep receiving whatever is sent there.

    Is something that needs to be done once we finish sending the file contents via endpoint 0x01?

     

    Actually I tried to send it as 16-byte URBs , 64-byte URBs or as 64KByte URBs, but nothing happened, in all occasions there was no boot and the device just keeps receiving what was send to it.

    Is there a specific way on how to send the secure .bin file contents on the OUT endpoint, eg. byte-by-byte or block-by-block of some bytes, or any specific method?

    The C5515 bootloader docs do not describe this at all, any help is appreciated.

     

    Christos

     

  • Christos,

    I received your email. I will look into this.

    Regards,

    Steve

  • Christos,

    I guessed you tried endpoint 0x0 because endpoint 0x01 has problem, isn't it? It should not work with endpoint 0x0.

    First, I want to be sure that instructions in C55BootImageV2.pdf i n the SecureBootImageTool package has been followed.

    Second, could be your usb_boot SW on PC is not correct. I put an usb_boot.exe in the ftp site for your to try. This is our working usb_boot.exe SW runs on PC.

    Could you try this out on endpoint 0x01?

    Regards,

    Steve

  • Hi Steve,

     

    The 0x0 was a typo (and I changed it), I meant the proper 0x01 as it is mentioned later on in my post. All uploads are as the sprabd7 is specifying and also according to the parameters described in the accompanying document of the C55BootImage tool (C55BootImageV2.pdf).

    Yet it was my application that tried the upload.

    Tested the utility you mention and yes, it works. The .bin that was created at first and tried to be upload with my application without booting though, now it is succesfully uploaded with your utility and the board got booted ok.

    A (another) great help would be to have a look at its code internals if you can submit it via the same ftp method. So I'll rectify my application to behave as the utility does.

     

    Regards,

    Christos

     

  • Christos,

    Great!

    We found the cause of the problem. Let me see what I can do to help you further.

    Regards.

    Steve

  •  

    Hello Steve,

    I am also interested in the package that can creates a secure boot image. Now I am using the TMS320C5515, and I would appreciate if you help me to obtain that package.

    I have already sent you all the information (name, company, address, application.....), but I have not received any answer. Maybe there is another way to get it, or just that it takes a few time, or you did not receive my mail.

    Could you tell me how long does it takes, from the sending of the information, until the answer with the package?

    If there is any other way to do it, please let me know how.

     

    Thanks.

    Regards,

    Álvaro.

  • Hi Alvaro,

    Please send your ph#

    Regards.

  • Hi Steve,

    I have already created the secure boot image, but I don't know how to boot the program by from USB.

    Is there any program to do it? In that case, could you send it to me? or upload to the SFPT server?

    Thank you.

    Regards,

    Alvaro.

  • Alvaro,

    Now you need to create your own boot loader program running on DSP to execute the image. Becuase of legal issue, I can not upload it. Let me check if I can send the executable to you offline.

    Regards.

  • Hi Steve,

     

    Did you try to send if offline?

     

    However, I though that what i have to create was the code in the host, where the .bin exists, not in the DSP, because the bootloading feature was automatic. I am working using the USB to transfer data to Linux, so I know how to work with it but, i don't know what exactly i have to create.

     

    The "SPRABD7" document it says textually: "The bootloader supports booting from the USB. The bootloader uses bulk-endpoint 1, vendor-id 0x0451,
    and product-id 0x9010."
    What i have understood also is that the DSP tries to boot a program in an order, and when it arrives to the USB checking, it waits to receive a valid boot image. If not, it continues checking all again.

    Do i have tocreate a program that checks first if my O.S. finds that id's, and then start sending the data to the DSP? and that's all? But what packet size?

     

    In case that i should also write a program in the DSP to do it,  what i do with the received data?

     

    Any help would be greatful.

    Thank you.

    Regards,

    Alvaro.

     

     

     

  • Alvaro,

    The .bin file your created using the secure boot utility is the secure boot image that resides on the PC. When the DSP powered up, the on chip bootloader checks for boot image according to its priority list and loops on USB. What you need is the program running on PC to interface with the bootloader to transmitt the boot image. The document tells you the bootloader uses endpoint 1 and the expected vendor id.

    Regards.

  • Hi Steve,

    when I execute the usb_boot.exe the system opens an alert window that it can not find the following file: WDAPI1010.dll

    As I know, it is a library that comes with the WinDriver installation. I downloaded the free trial version last summer, and the version at that moment was the 10.20. So in my directory I have WDAPI1020.dll. I changed the name to WDAPI1010.dll, and the error has gone. The current version is 10.30 and there is no older versions to download.

    But now, it appears in console: DriverInit: failed to initialize USB driver: error 0x20000007 <"Internal system erorr">.

    I just really want to run this program to see how it works, because i have to do the bootloading from Linux, and I don't know some things like for exaple, the packet size (if it is meaningful).

    I wrote a program that can connect with the DSP bootloader and it just sends the boot image byte per byte, and after finishing the file, closes the communication. The status of the transfers are all succesfully, but the program of the image doesn't start. The .out I used to create a secure image is the uled example of Spectrum Digital, and it works when it is booted from NOR flash.

    Am I missing something??

     

    Thank you.

    Regards,

    Alvaro.

  • Alvaro,

    Please check your personal email.

    Regards.

  • Steve;

    For the 5510 is there a secure boot process where the decryption of the encrypted boot image is handled by the bootloader itself ?

    I have read that one can go a step further and choose the option (while encrypting your boot image) to have the DSP re-author the encryption during the first power-up. This means that the DSP will decrypt the image, re-encrypt it using the Unique Device ID of the device as the key and overwrite the original encrypted image. This happens only once after the first power up and basically binds the encrypted boot image to run only on that particular silicon device for added security. Is this available for the 5510A?

    Regards

    PV

  • PV,

    This is for the TMS320C5515 family of products.

    Regards.

  • Steve

    Thanks. 

    What are the encryption options available for the 5510 DSP ? 

    Regards

    PV

  • PV, you should probably create a new topic for your questions about encrypting C5510 USB bootloader images, since this topic has been discussing the C5505/C5515.

    The quick answer is that the C5510 is from the older generation, and does not have encryption in the ROM.  You would need to implement your own bootloader to get USB encryption on the 5510, 5509, 5507, 5506, 5502, etc.

  • Steve,

    Please check your email.

    Regads,

    Alvaro

  • Will do. Thanks Brian.

  • Encryption boot feature is not supported in 5510. This is the User Guide for C5510 bootloader functions:

    http://focus.ti.com/lit/an/spra763c/spra763c.pdf

    Regards.

  • Alvaro,

    I have replied.

    Regards.