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.

TMS320F28377D: bootROM SCI_Boot call from main

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

What would be the correct way to call "Uint32 SCI_Boot(Uint32  BootMode)" from main, using its address, providing "BootMode=0x81" and make DSP booting in SCI mode?

  • Hi Gabriela, 

    Please look at the following documentation:

    1. https://training.ti.com/c2000-f2837xd-microcontroller-workshop?context=1137755-1139641-1137781  

    2. http://www.ti.com/lit/ug/spruhm8i/spruhm8i.pdf 

    I suggest reviewing the training material first which is brief as it relates to boot modes.  The TRM provides a more complete explanation about boot modes in general. 

    Let us know if you have additional questions.

    Cheers!

    Krishna

  • Krishna,

    While the training has some slides about the bootloader that I wished to have seen some time ago, because they are much more suggestive than TRM, neither the training nor the TRM answer to my question.

    What I need, is a way to call SCI_Boot located in OTP from the main application but with different than default parameters. By default, SCI_Boot is called using BootMode=0x01, and I need to call that function using BootMode=0x81, without changing the OTP_BMODE and OTP_KEY.
    Actually, I am able to do this as well, but after loading the BootROM symbols I found that the programs stops in "c1brom_itrap_isr". I am guessing that before calling SCI_Boot(0x81) need to set the DSP in a certain way. 

    So, can anyone tell me what exactly needs to be done before calling SCI_Boot located in ROM, from the main application in order to actually put the DSP int SCI Boot mode using the alternate pins.

    Thanks,
    Gab.

  • Hi Gabriela,

    We need to discuss this with one of our domain experts and will get back to you in the next day or so. Regards, Krishna

  • Krishna,

    Thanks a lot for your help and let me know what can be found. The idea is to be able to put the DSP in the SCI Bootloader mode, with a BMODE=0x81 (using GPIO28 and GPIO29), from the main application, using as much as possible the ROM functions and without writing the OTP (MODE and KEY). 

    Kind regards!  

  • Hi Gabriela, 

    Have you looked at the BootROM source code in C2000Ware?  If not, please have a look and it is available here: C:\ti\c2000\C2000Ware_2_00_00_03\libraries\boot_rom\f2837xd\revB\rom_sources\F2837x_bootROM\cpu01-bootROM\source   

    The above path applies if you installed C2000Ware in the default location and you will need to adjust accordingly if you installation is different.  Take a look at SCI_Boot.c and specifically the implementation of the API you are looking at:  Uint32  SCI_Boot(Uint32  BootMode)

    Now with the Boot Mode set to 0x81 you will end up with the configuration that is provided by SCI_Pinmux_Option2().  Please have a look and let me know if all of this makes sense to you.  

    I do not fully understand what you are trying to accomplish, but I think you are trying to use the capability that I have described above.  This will likely generates more questions...please keep them coming. 

    Cheers!

    Krishna

  • Krishna,

    Thanks for getting back to me!

    Indeed, I looked through the BootROM code and this kind of made me to realize that there is not a really good way to do what I need (to use directly the BootROM functions to boot in BMODE=0x81). The workaround would be to create a similar bootloader, with the required options, and integrate it into your application.

    One more question though, from the TRM & the training, I understand that using GPIO28 & 29 can be used only for CPU1, not for CPU2 bootloader. Is this true, even if you build your own custom bootloader?

    Thanks!