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.

TMS320F28075: How to modify the configuration to boot load from Flash?

Part Number: TMS320F28075

Hi Expert,

My customer using 100pin F28075, set GPIO29&28 as SCI boot pin to boot load from extern ARM device at first time, refer to the below thread method.

http://e2e.ti.com/support/microcontrollers/c2000/f/171/p/890085/3297264#3297264

After updated the code to device, they'd like the code booted from Flash at next time which resetting the device and changing the GPIO29&28 to high level.

However, they have a trouble to achieve Flash boot load mode, after changed the OTP area as above e2e thread suggested. Because the code would read the OTP content and change to SCI boot mode, though the GPIO29&28 is high.

They'd like to check if the boot load mode be changed from SCI to Flash? If yes, could you please help to give the guides/notes to achieve it? Thanks!

Best Regards

Rayna Wang

  • Rayna,

    They should be able to check the OTP contents by connecting with the debugger and using the memory browser to look at those locations to ensure they are programmed.

    One note, the SCI boot mode on its own is only capable of loading code into RAM.  If they aren't already, they will need to load a kernel into the RAM of the device and use the kernel to program whatever they desire into flash.

    Best,

    Trey

  • Rayna,

                  The other thread you refer has nothing to do with the issue you are raising. 

    It is important to distinguish between boot-mode-select pins and the GPIO pins used for booting. It appears customer has reassigned GPIO pins for SCI boot to GPIO29 & 28. Have they reassigned even the boot-mode-select pins from the default option of GPIO72 & GPIO84? 

    Can you provide the circuit for the boot-mode select pins? That is , the pins that are used to select the bootmode? 

    My feeling is customer selects the SCI bootmode by GPIO72=0 & GPIO84=1, bt wants to switch to Get/Flash after flash update is over. Am I correct?

  • Dear all,

    Thank you very much for all expert guidance.

    First of all, please allow me to clarify my application and requirements information.

     We used the 176pin F28075,and set GPIO28&29 (SCI Boot1) pin to bootload from extern ARM. when used GPIO72&84 pin to select the SCI bootmode,default GPIO84&85(SCI Boot0), So we have to change this default configuration by modifying the Boot Mode values (OTP  0X81) parameters.  We want to know the Specific operation plan to switch to get/flash after flash update is over.

    Looking forward to your reply.thanks!

    best wishes!

    alan.qin

  • It appears you have hardwired your board to use SCI bootmode by tying GPIO72=0 & GPIO84=1. Further, you programmed BMODE value to 0x81 choose SCI Boot 1 option. After flash programming is done, you want to boot to flash on subsequent resets, as opposed to booting to SCI option. Is this correct?

  • dear expert,

    yes, I think that's what we want. Whether the process can be done automatically without need for software programming . Please give us more detailed guidance , then we implement this functionality for easily.

    thanks a lot.

    alan

  • If firmware update through SCI will be warranted in future, you need a provision in your board to drive GPIO72 high or low.

  • Hi Hareesh,

    Here is Dylan, a FAE in charge of this customer.

    Could you explain more details about we need a provision in the board to drive GPIO72 High or Low? What kind of provision we need? Do you have any example or tutorial or test plan which can share to my customer? 

    Thanks!

    Dylan

  • All you need is a jumper that can tie GPIO72 high or low. GPIO72=0 for SCI boot. GPIO72=1 for flash boot.

  • Dear Hareesh Janakiraman,

    Just as you said, GPIO72=0 for SCI boot. which SCI port can be set, default GPIO84&85(SCI Boot0),but we has reassigned GPIO28&29(SCI Boot1) Completed this function. So we have to change this default configuration by modifying the Boot Mode values (OTP  0X81) parameters. When I change the Boot Mode values (OTP  0X81) parameters, please confirm ,GPIO72=1 ,whether can be set flash boot. 

    In shortshortshort, TMS320F2807x Microcontrollers Technical Reference   Chapter 4(P558)  ,Failed to explain the implementation of this function.Could you explain more details about this function. Do you have any example or tutorial or test plan.

    thanks !

    alan

     

  • So we have to change this default configuration by modifying the Boot Mode values (OTP 0X81) parameters.

    OTP is one-time-programmable memory. Once programmed, it cannot be changed. As mentioned in my previous post, "It is important to distinguish between boot-mode-select pins and the GPIO pins used for booting." Boot-mode-select pins are used to select a particular boot-mode. That is what is shown here https://www.ti.com/document-viewer/TMS320F28075/datasheet/boot-rom-and-peripheral-booting-sprs8801514#SPRS8801514. From my understanding, you have not changed these pins. That is, you still use GPIO72 & GPIO84 for selecting the boot-mode. You select the SCI bootmode by GPIO72=0 & GPIO84=1, but want to switch to Get/Flash after flash update is over. For this you need to now connect GPIO72 to high. 

    but we has reassigned GPIO28&29(SCI Boot1

                

    This is of no consequence to boot-mode selection. 

    When I change the Boot Mode values (OTP 0X81) parameters, please confirm ,GPIO72=1 ,whether can be set flash boot.

    As explained before, you cannot change the OTP values once again. GPIO84 is 1 for both SCI & Get modes. You only need to change the external connection of GPIO72 to 1 to switch to Get mode, which will enable you to boot from flash. It is a very simple jumper connection. No tutorial or test-plan exits.

  • Dear Hareesh Janakiraman,

    Based on our tests , We could not select the GPIO28&29(SCI Boot1) bootmode by GPIO72=0 & GPIO84=1,because It's not default SCI option . What can we do to enable the bootloader function through the SCI Boot1( GPIO28&29) bootmode , Please give me a detailed guidance , and What can we do  to switch to Get/Flash after flash update is over. TMS320F2807x Microcontrollers Technical Reference   Chapter 4(P558)  ,could not to clear explanation the implementation of this function . In other words, that is an ambivalent choice .So, we must to be know how and what  we can do.

    Please give us a detailed guidance plan. Forgive me, we're an new person to use this function.

    thanks !

    alan

  • Dear Hareesh Janakiraman,

    Based on our tests , We could not select the GPIO28&29(SCI Boot1) bootmode by GPIO72=0 & GPIO84=1,because It's not default SCI option . What can we do to enable the bootloader function through the SCI Boot1( GPIO28&29) bootmode , Please give me a detailed guidance , and What can we do  to switch to Get/Flash after flash update is over. TMS320F2807x Microcontrollers Technical Reference   Chapter 4(P558)  ,could not to clear explanation the implementation of this function . In other words, that is an ambivalent choice .So, we must to be know how and what  we can do.

    Please give us a detailed guidance plan. Forgive me, we're an new person to use this function.

    thanks !

    alan

  • Dear Hareesh Janakiraman,

    Based on our tests , We could not select the GPIO28&29(SCI Boot1) bootmode by GPIO72=0 & GPIO84=1,because It's not default SCI option . What can we do to enable the bootloader function through the SCI Boot1( GPIO28&29) bootmode , Please give me a detailed guidance , and What can we do  to switch to Get/Flash after flash update is over. TMS320F2807x Microcontrollers Technical Reference   Chapter 4(P558)  ,could not to clear explanation the implementation of this function . In other words, that is an ambivalent choice .So, we must to be know how and what  we can do.

    Please give us a detailed guidance plan. Forgive me, we're an new person to use this function.

    thanks !

    alan

  • Hi Rayna,

    Look like you are trying to change the BOOTCTRL configuration two times here -

    1st - Change the default SCI boot option to choose SCI BOOT1 instead of SCI BOOT0  (please let us know how are you changing this Ist time and why do you want to change this ? It's not clear to me.)

    2nd - Change the BOOT mode to FLASH BOOT. (assume you are updating this via SCI BOOT - Correct ?)

    This can not be done by using same configuration because you can only update the OTP locations one time.

    What alternate solution you can use is - 

    Step 1 - Program the Zone2 BOOTCTRL register to choose the SCI BOOT1 option (We need to know how/why are you doing this ?)

    Step2 - Program the Zone1 BOOTCTRL register to choose the Flash BOOT option instead of SCI BOOT1. You don't have to change the BOOT MODE pin setting for this.

    Please note that once you do this device will always boot to Flash only unless you change the BOOT MODE pin value to select BOOT option other than Get Mode but in that case also if you choose SCI boot mode then it'll not boot to SCI BOOT 1 but to SCI BOOT 0 only. So please be aware of this.

    Regards,

    Vivek Singh

  • dear all expert ,

    Please let me republish my functional requirements.

    Normal conditions, DSP for TMS320F28075 ,after completed the reset directly into flash, and run the normal function of the program . This process does not require the boot program. 

    When we need software update.We have to Controled the DSP into Boot mode,now We choose the  bootmode port is SCI BOOT1 ( GPIO28&29).

       I need a two-part reply to this question. One ,Whether the function can be realized. Two, how do you implement this function?

    Please give us a definite answer as soon as possible.

     Thanks for all your supports.

    alan

  • Hi Hareesh,

    Here is Dylan, FAE who in charge of this customer.

    I have listed the full detail about customer special requirement with following picture. Please kindly find it and ignore all the other stuffs. And we just need two answers from you. Thanks!

    If you think the picture is not clear, I have listed all the details about customer requirement here:

    Step 1: Customer has set GPIO72=0 & GPIO84=1 >> Then, it will enter SCI mode

    Step 2: Customer has set GPIO28 & GPIO29 >> Then, it will enter boot option 2 which is SC-BOOT 1 mode

    Step 3: When using GPIO28 & 29 to enter boot option 2, customer have to modify OTP value to 0x81 parameters

    Step 4: Done system upgrading by booting from SCI

    Step 5: Customer now want to boot from flash. Thus, they set GPIO72=1. However, it doesn't work because OTP value has been changed and OTP value can be changed once.

    Note: Based on customer current situation, they are not willing to change external hardware circuit. Thus, they are seeking for SW solution to achieve this function.

    Support Need: 

    1) Do you have any suggestions we can exit the SCI Boot 1 Mode and switch to Flash mode based on above information?

    If yes, how to implement it?

    Thanks!

    Dylan

  • Hi Vivek,

    Please refer to my response showing above. This is customer special requirement. They just want to make sure whether this function can be implement, if yes how to achieve? 

    Thanks!

    Dylan

  • Hi Dylan,

    Can you please explain why can't you use default SCI boot pins (GPIO84/GPIO85) ?

    Coming back to your query, once you have programmed the OTP to choose SCI BOOT1 option, Get Mode (GPIO72/GPIO84 =1) will always choose that option. If you look at SCI boot flow (see below), if you do not provide the valid KEY then it should boot to FLASH. Is that something you can try see if that works ?

    Regards,

    Vivek Singh

  • Hi Vivek,

    To echo your first question, customer don't know GPIO84 will be available to use after they set GPIO72=0 & GPIO84=1 to enter SCI mode at beginning. And they found the SCI-Boot 0 SCITXDA used GPIO84 which has conflict to the first step (enter the SCI mode). Therefore, they decide to use SCI-Boot 1 Mode, but not SCI-Boot 0 (default mode). They have already set up the hardware circuit of this one, therefore they are not able to change back.

    To response your suggestion, you can refer to Hareeesh's response on 5:31PM 16th of Dec. It states that OTP is one-time-programmable memory. Once programmed, it cannot be changed. our customer has already change the OTP value to 0x08 value when enter to SCI-Boot 1 mode at the beginning. But now, they want to switch to boot from flash. The flow chart you mentioned the precondition to jump to flash is to set an un-valid key value (not 0x08). But, now we are not able to change OTP value anymore. 

    So, to be conclude, under such situation, could you just give a confirmation whether we have any ways to achieve customer requirement? I only need the answer for this question, the else our customer don't care. 

    Thanks!

    Dylan

  • Dylan,

    This bad KEY is not in OTP but  on SCI communication which is sent by external host. Look like we need a call to discuss this further. 

    Regards,

    Vivek Singh

  • Hi Vivek,

    Great! Could we have a webex meeting now? I will send calendar to you if it is OK.

    Thanks!

    Dylan

  • Hi Vivek,

    Appreciated for your help! Customer already know how to do it.

    Thanks!

    Dylan