SPRUI33H November 2015 – June 2024 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1
The security module restricts the CPU access to on-chip secure memory and resources without interrupting or stalling CPU execution. When a read occurs to a secure memory location, the read returns a zero value and CPU execution continues with the next instruction. This, in effect, blocks read and write access to secure memories through the JTAG port or external peripherals.
The code security mechanism offers protection for two zones, Zone 1 (Z1) and Zone 2 (Z2). The security mechanism for both the zones is identical. Each zone has its own dedicated secure resource and allocated secure resource. The following are different secure resources available on this device:
Table 3-16 shows the status of a RAM block/Flash sector based on the configuration in the GRABRAM/GRABSECT register.
Zone 1 GRAMRAMx/GRABSECTx Bits | Zone 2 GRAMRAMx/GRABSECT | Ownership and Accessibility |
---|---|---|
01 | 10 | RAM block/Flash Sector belongs to Zone1 |
01 | 11(2) | RAM block/Flash Sector belongs to Zone1 |
10 | 01 | RAM block/Flash Sector belongs to Zone2 |
11(1) | 01 | RAM block/Flash Sector belongs to Zone2 |
10 | 10 | RAM block/Flash Sector is unsecure |
The user should never program any other values in these fields. Failing any these conditions for a RAM block/Flash sector will make that RAM block/Flash sector inaccessible.
The security of each zone is ensured by its own 128-bit (four 32-bit words) password (CSM password). The password for each zone is stored in Bank0 USER OTP. A zone can be unsecured by executing the password match flow (PMF), described in Section 3.13.7.4.
There are three types of accesses:
PMF Executed With Correct Password? | Operating Mode of the Zone | Program Fetch Location | Security Description |
---|---|---|---|
No | Secure | Outside secure memory | Only instruction fetches by the CPU are allowed to secure memory. In other words, code can still be executed, but not read. |
No | Secure | Inside secure memory | CPU has full access (except for EXEONLY memories where read is not allowed). JTAG port cannot read the secured memory contents. |
Yes | Unsecure | Anywhere | Full access for CPU and JTAG port to secure memory of that zone. |