We are attempting to secure our application on the TMS320C6748 using the Generic Security provided by the DSP. We want our application AIS image to be secured from being read unencrypted from Flash.
So far we've been able to load a simple program through Secure ROM that is switching state of LEDs via I2C.
We've tripped on a problem of modifying the system MMRs which seem to be locked somehow and any attempt to change their state causes our application to abort.
Example snippet causing abort: GPIO_BANK01_DIR |= 0x000000FF
There is a register mentioned in SPRUGQ9 June 2011(TMS320C674x/OMAP-L1x Processor Security User's Guide) that is supposedly meant to allow access to the MMRs - System Security Protected Control Register (SYSCONTROLPROTECT) - bits MMR_UNLOCK / MMR_LOCK. The problem is that writes to this register don't cause any effect - reading it back yields old value. Only SYSCONTROL.TEST_AS_ SEC_MMR_REQ seems to be writable.
So the question is how to enable MMRs to be writable after booting on a Secure processor? Where do we find examples to perform that?
Another problem that we face is exiting from secure mode after boot. We were unable to get even a simple program running if "bootExitType" parameter in SecureHexAIS configuration is set to NONSECURE, only SECUREWITHSK seems to work.