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.

F28M35x to boot from flash?

Other Parts Discussed in Thread: CONTROLSUITE

I am having a hard time getting the F28M35x to boot from flash.  Previously it was apparently working because it was able to boot from power-on.  In the meantime I set up the RAM build configuration so that the debugger now starts properly.  I also tried to set up ramfuncs.  Now when I switch to the FLASH build configuration, it won’t boot from flash.

 

I am aware about:

SPRA958L (still tracking down possible causes suggested by this document)

SW1 on the controlcard is set to 0000.

 

Some questions you may be able to answer:

  1. Is the value for code_start correct for the device (I am using 0x0013FFF0) ?
  2. Do you have access to a F28M35x project that boots from flash?  I didn’t find one in controlsuite.  Maybe blinky does this, and I have somehow managed to break it.

 

Here are the related elements that I have been looking at:

***********************************************************************

*Function : codestart section

*

*Description : Branch to code starting point

***********************************************************************

 

    .sect "codestart"

 

code_start:

    LB _c_int00         ; Branch to start of boot.asm in RTS library

                        ; end codestart section

 

From the linker .cmd file:

MEMORY

{

PAGE 1:    /* Data Memory */

.

.

.

   BEGIN_FLASH         : origin = 0x13FFF0, length = 0x000002

   FLASH_EXE_ONLY      : origin = 0x13FFF2, length = 0x000002       /* FLASH execution only locations */

   ECSL_PWL            : origin = 0x13FFF4, length = 0x000004       /* FLASH ECSL password locations  */

   CSM_PWL             : origin = 0x13FFF8, length = 0x000008     /* FLASH CSM password locations.  */

}

.

.

.

SECTIONS

{

.

.

.

   codestart          : > BEGIN_FLASH PAGE = 1

 

/*** Code Security Module Register Structures ***/

   FlashExeOnlyFile  : > FLASH_EXE_ONLY,      PAGE = 1

   EcslPwlFile       : > ECSL_PWL,            PAGE = 1

   CsmPwlFile        : > CSM_PWL,             PAGE = 1

 

   ramfuncs : LOAD = FLASH,

                    RUN = RAML0,

                    LOAD_START(_RamfuncsLoadStart),

                    LOAD_SIZE(_RamfuncsLoadSize),

                    RUN_START(_RamfuncsRunStart),

                    PAGE = 0

}

 

When I reset in the debugger, it goes to 0x3FF7ED, and sets OBJMODE, clears AMODE, then eventually ends up at 3ff6b7:   7621        IDLE

 

I am using CCS version 5.4.0

Thanks for the help!!!

  • Hi

    Please refer to the device TRM (http://www.ti.com/litv/pdf/spruh22e) the ROM chapter 6. Looking at above linker command file references I think you are trying to get the control subsystem boot to flash.

    C28x device always ends up in low power IDLE mode on start up. It is up to the M3 application to send the boot mode IPC command and let C28x boot to flash, so you would need to have a proper M3 application.

    The dual core blinky example from control suite when built to run from flash should be able to do this properly. You can review the M3 blinky example main file in C:\ti\controlSUITE\device_support\f28m35x\v201\F28M35x_examples_Dual\blinky to check how it sends a boot mode IPC command to C-Boot ROM to let the control subsystem boot to flash.

    hope it helps.

     

    Best Regards

    Santosh