Lines Matching refs:partition
32 Services are grouped into `Secure Partition` (aka `partition`). A partition:
47 - Manages partition runtime to follow FF-M.
58 process. Besides this, another important implementation part is partition
63 One partition must work under as `ONE` of the runtime models:
67 A partition that runs under the `IPC` model looks like a classic `process`.
68 There is `ONE` thread inside the partition keeps waiting for signals. SPM
70 and assert a signal to the partition. The partition calls corresponded service
80 model converts multiple service accesses into messages, let the partition
83 The `Secure Function` (`SFN`) model partition is close to a `library`. Each
84 service is provided as a function entry inside the partition. SPM launches
101 partition.
149 and IPC partition.
150 - These components can provide services: SFN Partition, IPC partition, and
152 - All partition services must be accessed by `Client API`.
168 - `Serving` state, when partition is under initializing or service access
192 before the first partition gets launched.
236 allocator, loading partitions and partition-specific initialization
244 * Find a partition load information.
245 * Allocate runtime objects for this partition.
247 * Init partition contexts (Thread and call context).
248 * Init partition isolation boundaries (MMIO e.g.).
249 * Init partition interrupts.
252 partitions' initialization routines have not run yet - the partition runtime
255 The partition initialization routine is a special service that serves SPM
260 - The partition initialization routine can access its depending services.
268 compare to the partition runtime execution, then an environment switching
286 Platform code can change specific partition settings in this procedure before
288 signal into a specific partition, or customized peripheral settings.
308 The partition initialization routines get called. One partition may access its
314 service access, if the target partition is not initialized but a service
333 The mechanism of how SPM interact with the target partition depends on the
334 partition runtime model.
336 - Access to a service in an SFN partition is a function call, which does not
338 - Access to a service in an IPC partition leads to scheduling, which switches
349 No matter what kind of partition a client is trying to access, the SPM API is
390 - The backend operations perform target partition runtime model decided
391 operations. For example, enqueue message into the target partition under
425 execution. When a preemption happens, a new partition thread can call SPM API
437 target partition runtime model is known. The preparation before ABI triggers
440 - The message is pushed into partition memory under a specific ABI mechanism
441 if the target partition model is `SFN` and there are boundaries between SPM
442 and the target partition. After this, requests a specific call type to the
445 there are no boundaries between SPM and the target partition and the
446 partition runtime is `SFN`.
447 - The message is queued into the partition message list if the target
448 partition runtime model is `IPC`.
449 - IPC partition replies to the client by `psa_reply`, which is another SPM API
451 - SFN partition return triggers an implied `psa_reply`, which is also another
476 request in an SFN partition.
483 shows up: The IPC partition, hence `schedule` is the mechanism when accessing
484 services inside an IPC partition.
518 - Particular partition code can be involved in the background state, for
519 example, the `First Level Interrupt Handler (FLIH)` of one partition.
554 `Floatpoint Extension` is enabled for partition usage:
638 special `partition` that:
674 Compared to Trustzone-M NSA, RPC NSA looks closer to a generic partition:
689 A partition is a set of services in the same scope. Services are generally
690 implemented as functions, and the partition exposes the services in different
691 ways based on the partition model: `IPC` or `SFN`.
693 A partition build generates these outputs:
695 - A partition load information, used by SPM.
696 - A partition program containing service interface and logic, typically a
705 information of partitions. In general, the partition load information is
710 Each partition has different numbers of dependencies and services, this makes
711 the load information size of each partition different, it would be hard to put
714 Each partition can define variable size load information type based on the
734 And the example for a specific partition load info:
743 A partition can declare multiple peripherals (Interrupts are part of
746 - The tooling references symbols in a fixed pattern in the partition load
749 - SPM calls HAL API to bind the partition info with devices when the partition