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: SCI_BOOTING for TMS320F28377D

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Till now we tested SCI_BOOTMODE  on the control card. The issues are given above and as per your suggestions we tried, till the issue was not resolved.

Now we are trying this on application board still the same problem is coming in that board also.

we configured the Boot Pins to SCI Boot mode configuration.

and we configured the TX and RX pins also correctly.  

Will you please guide me, how can go further.

  • Hi Koteswararao

    Our expert will get back on this today.

  • Hello, 

    Can you please detail what steps you have taken on the application board in terms of loading the flash kernel onto the device? As noted in the previous post, did you try replacing the RAM linker command file with a flash linker command file?

    Anu

  • Yeah,I tried by changing the RAM linker command file with the FLASH linker command,But I didn't get it that How it will work. If the Flash kernel example code is loaded into the flash, Where the Application code will be loaded

  • In Application board, I configured like below

    GPIO72 to 0 and GPIO84 to 1  for SCI boot mode

    For SCI communication we are using GPIO28 and GPIO29, so I change SCI_BOOT to SCI_BOOT_ALTERNATE in flash_kernel_example code.

    Now I gave the command through serial_flash_programmer with the flash_kernel and application text files.

    But still the problem is like below

  • Hello, 

    Regarding the flash linker command file - you would reserve one sector of flash for the flash kernel, and write this flash based flash kernel into the device with the ram based flash kernel. The flash based flash kernel can be the application file, the -a field of the command. 

    Regarding the application board - if you are using pins 28 and 29 for SCI communication, you need to set the boot mode accordingly to GET mode and program the OTP so that SCI Boot 1 is the mode selected. Please refer to Section 4.6 of the F2837xD TRM. 

    Anu

  • Hello Anu

    If we load the Flash kernel code into one of the flash sector, And the application code was loaded in other sector then,After Power On Reset Which code will execute if we are not giving command through Serial_flash_programmer where in OTP Boot mode is changed to SCI_Boot1.

    Thank you.

  • After power on reset, you can throw an incorrect key to the SCI bootloader to jump to the flash entry point. After this, it depends on what you have at the flash entry point - it could be either the application or the bootloader. 

    Anu

  • Once the OTP Key was changed to 0x5A we can't change it Right? Then How can we throw an Incorrect key. Is it possible?.If Possible please give me the Procedure.

    Thank You,

    Koteswararao

  • Hi Koteswararao,

    The procedure for determining if the correct key is being used is to look at the C28x boot table header. Their functionality is described here in Table 12-4 https://www.ti.com/lit/ug/spru513w/spru513w.pdf . If you throw a key other than 0x8AA, it will throw an error. The peripheral bootloader will pick up on it, then the bootloader will determine it's the incorrect key. Also, you can look at the SCI_Boot.c file (this is for ROM Bootloader) found at this location C:\ti\c2000\C2000Ware_4_01_00_00\libraries\boot_rom\f2837xd\revB\rom_sources\F2837x_bootROM\cpu01-bootROM\source and check line 140, which states that if a key value is invalid, it will abort and load the flash entry point. When you set the OTP to the alternate SCI bootloader, you can then throw it the incorrect key so that it can jump to the flash entry point for your application.

    Regards,

    Charles

  • How to know the Flash Entry Point Address, If Two codes are there in Flash. Usually the flash entry point is at 0x08000. If Flash entry point for Kernel code is 0x08000,then what is the Flash Entry Point for application code, because the two codes for kernel and Application has to be in Flash.

  • Koteswararao,

    You would need to reserve a sector for your application code to reside in and specify the hardware value (address) for the flash application. Since the f23877D device has just one entry point, you would need to always check for a firmware update at the flash entry point, which will contain either your application or the flash kernel itself. If there is an update, proceed to the flash kernel. If no update, proceed to application. 

    Regards,

    Charles