SPRUIN7C March 2020 – March 2024 TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-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 a 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/GRABSECTx Bits |
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 |
11 | 11 | RAM block/Flash Sector is unsecure when both of the zones are UNLOCKED, otherwise memory region is inaccessible if either of the two zones are LOCKED |
The security of each zone is specified by a 128-bit (four 32-bit words) password (CSM password). The password for each zone is stored in 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: data/program reads, JTAG access, and instruction fetches (calls, jumps, code executions, ISRs). Instruction fetches are never blocked. JTAG accesses are always blocked when a memory is secure. Data reads to a secure memory are always blocked unless the program is executing from a memory that belongs to the same zone. Data reads to unsecure memory are always allowed. Table 3-17 shows the levels of security.
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. |