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.

TMS570LS20216: Protection against unauthorized production

Part Number: TMS570LS20216
Other Parts Discussed in Thread: TMS570LS3137

Hello!

It’s often necessary to send modified codes to our clients. I’d want to know if some ways exist to protect designs from unauthorized manufacturing. Let’s assume that people have all required information and files to start own production without permission.  Is it possible to do something in this case? I guess it’s quite difficult if source codes are also available.   


Best regards,

Vitalij

  • The TMS570LS20216 does not have a way of preventing someone else from reading out your code via JTAG. (Please note that this device is no longer recommended for new designs.) The newer TMS570LS3137 and TMS570LS12xx parts do have a JTAG security feature which allows the original user to block others from reading or reprogramming the part.

  • Thank you for your reply.

    Your suggestion is not exactly what I want. It’s necessary that JTAG still remains unblocked. Our clients don’t have to read the code via JTAG because we always provide the latest version. That also includes source codes. However, it’s imperative to enable operation only of those PCBs, which are manufactured and delivered by us. In my opinion, we need to ship PCBs with a preloaded invisible key/password that is unknown for other people. If this specific key is set, then the particular device is allowed to function without limitations. In addition, it’s also possible to update its code without any restrictions. When devices don’t possess this unique key, they stop their operation and all available codes are useless. The problem is to conceal the key from revealing. I’ve not devised the procedure yet. Therefore, I’m looking for different advices.

    By the way, an external FRAM memory is also present.

    P.S.

    I’m aware that this microcontroller isn’t recommended for new designs. However, Digi-Key and Mouser stock this part meanwhile. Do you know when its manufacturing ends?

  • Unfortunately the TMS570LS20216 does not support any way to protect an invisible key from being read. Other customers have used parts such as the TMS570LS3137 to do this by putting a bootloader in the device and disabling the JTAG. The bootloader would allow reprogramming the application, but could also contain the invisible key. The software would then be written such that devices without this bootloader would not run. The TMS570LS3137 is pin compatible with the TMS570LS20216 but operates at a lower core voltage (1.2V instead of 1.5V).
  • It makes sense.

    Thank you for information. I’ll keep it in my mind.

    I’ve not implemented a bootloader before. Therefore, that is a subject for further research. As I understand, it is a program that runs in the microcontroller and uses a communication interface to be programmed. This approach would be even more desirable for end customers.

    Best regards,

    Vitalij Stepin  

  • I glanced at the TMS570LS3137. Actually, it isn’t pin compatible with the TMS570LS20216. However, it will be used in new designs because of lower price.

    How is it possible to determine the real consumption of RAM and FLASH memories of the compiled program? Where does the CCS 5.3.0 display these numbers? A figure appears during downloading the code to the microcontroller. It apparently relates to the occupied FLASH size. It’s also necessary to know the actual RAM size to select the cheapest device with sufficient resources.

    Best regards,

    Vitalij

  • Look at the <project name>. map file. It is probably in the "debug" subdirectory. The top lines show the unused amount of each defined address space.

    ******************************************************************************
                      TI ARM Linker PC v5.2.8                      
    ******************************************************************************
    >> Linked Thu Jan 12 08:53:55 2017
    
    OUTPUT FILE NAME:   <TMS570LS3137_RunFromRAM.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 00004bd8
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      VECTORS               00000000   00000020  00000020  00000000     X
      FLASH0                00000020   0017ffe0  000054dc  0017ab04  R  X
      FLASH1                00180000   00180000  00000000  00180000  R  X
      STACKS                08000000   00001500  00000000  00001500  RW  
      RAM                   08001500   0001eb00  00000040  0001eac0  RW  
    
    

  • The TMS5700714APGEQQ1 would be enough for current and future projects based on figures in the .map file.

    The TMS570LS09x/07x series isn’t certified. Is it?

    Best regards,

    Vitalij

  • The TMS570LS09x/07x are the newest members of the Hercules families. They are currently in the process of being certified. Our expectation is that certification will be complete by the end of March this year.