SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
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, Zone1 (Z1) and Zone2 (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 6-1 shows the status of a RAM block/Flash sector based on the configuration in the GRABRAM/GRABSECT register.
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 CPU1 USER OTP. A zone can be unsecured by executing the password match flow (PMF), described in Section 6.7.4.
Zone 1 GRAMRAMx/GRABSECTx Bits |
Zone 2 GRAMRAMx/GRABSECT 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 | If both zones are unsecure, then RAM block/Flash is unsecure. RAM block/Flash Sector inaccessible if either of the zone is secure (CSM passwords are programmed). User should never leave these values default (11) if CSM passwords are programmed for even one zone. |
There are three types of accesses:
Table 6-2 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. |