AnsweredAssumed Answered

Lockbox without overlay, can't print anything, can't exit

Question asked by ydfang on Apr 8, 2011
Latest reply on Oct 20, 2011 by gyi

I want to use Lockbox without overlay.

For my ideas are:

1) ues the elfpatch to abstract the security function and sign it

2) use the main function to set the parameters and call SESR function.

3) I use L2 memory so that I call run it in memory.

 

Now I found the blackfin can enter SECURITY mode (Every time when I re-start the program, the IDDE tells me that the bf is on the Security mode),

but it can't print it any thing, and can't return to the calling function.

 

Does any people can share me some code/ideas on how to use it?

 

here are some code:

1) DS and Message

// Reserve the total length for the DS and Message
#define MaxLengthForDSAndMessage    (512)
section("L1_data_a_ds") char digital_signature_in_L1_data_a[MaxLengthForDSAndMessage] =

{ 0    };
char *pMessagePtr = digital_signature_in_L1_data_a + SESR_DS_LEN_BYTES;    // Put mesage here by read the bin file

 

In LDF, put the digital signature and message in L2 so that I don'e need to copy it.

digital_signature
      {
         FORCE_CONTIGUITY
         INPUT_SECTION_ALIGN(4)
         INPUT_SECTIONS($OBJECTS(L1_data_a_ds) $LIBRARIES(L1_data_a_ds))
      } > MEM_L2_SRAM

 

2)  SESR parameters at here

RESOLVE(_security_firmware_args_in_L1_data_b, 0xFF900018) after the processor p0

 

3) security function

int security_function( void )
{
  
      /* Enable JTAG */
      *pSECURE_SYSSWT = ( *pSECURE_SYSSWT & ENABLE_JTAG_MASK );
      ssync();
 
    log_authentication_results();

 

    //led_blink();

 

    //exit the security mode
      *pSECURE_CONTROL &= SECURITY0Bit;
     
    return 0;
}

Outcomes