SPRUJ79 November 2024 F29H850TU
The SSU is tightly coupled to the C29x CPUs and the C29x Flash Controllers. Each C29x CPU is designed to support hardware function isolation and protections using memory protection identifiers (LINKs), safety and security isolation contexts (STACKs), and debug access ZONEs. An example of a system SSU configuration, showing the relationship between access protection ranges, LINKs, STACKs and ZONEs is shown in Figure 10-2. When the CPU requests an instruction fetch, the SSU first decodes the instruction address to a LINK, STACK, and ZONE, and then passes that information back to the CPU along with the fetched data. The CPU retains this security context information together with the instruction throughout the execution pipeline, and passes the context along to the SSU when making a data memory read or write access.
Each LINK consists of one or more regions of executable code, defined by the memory ranges in which the code resides, and is typically associated with a specific task or software module. The Access Protection Ranges, or APRs, are the basic unit of memory protection. Each APR has a start address and an end address, and can be associated with executable code (associating that code with a specific LINK), or can cover data or peripheral memory. Each APR then defines read and write access permissions for every LINK available on the CPU, enabling dynamic memory access permissions that automatically change based on which code is accessing the memory region. Each LINK is associated with one STACK. Each STACK is associated with a physically distinct and separate stack pointer in the CPU for secure code isolation. Finally, every STACK is associated with one device-level ZONE that governs debug and firmware update security.
These concepts are explained in detail in the following sections.