You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/porting/psa/spm.md
+7-6Lines changed: 7 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -58,7 +58,7 @@ These is demonstrated in the example below:
58
58
59
59
#### Memory layout
60
60
61
-
Typically, PSA platforms share the same RAM and flash between secure and nonsecure cores. To provide PSA isolation level 1 or higher, you need to partition both RAM and flash in a way the following image describes:
61
+
Typically, PSA platforms share the same RAM and flash between secure and nonsecure cores. To provide PSA isolation level 1 or higher, you need to partition both RAM and flash to secure and nonsecure parts, in a way the following image describes:
62
62
63
63
```text
64
64
RAM
@@ -77,6 +77,8 @@ Typically, PSA platforms share the same RAM and flash between secure and nonsecu
77
77
78
78
To achieve RAM and flash partitioning, you must add start and size values to a target configuration in `targets.json` as in the example above.
79
79
80
+
Note that for isolation levels higher than 1, on top of the partitioning between secure and nonsecure parts, secure flash and RAM must have an inner level of partitioning, creating sections per secure partition.
81
+
80
82
### Linker scripts
81
83
82
84
Linker scripts must include `MBED_ROM_START`, `MBED_ROM_SIZE`, `MBED_RAM_START` and `MBED_RAM_START` macros for defining memory regions. You can define a shared memory region by reserving RAM space for shared memory use. The shared memory location is target specific and depends on the memory protection scheme applied.
Mailbox is the SPM mechanism in charge of IPC, and is **relevant for multicore systems only**.
192
+
Mailbox is the mechanism used to implement Inter Processor Communication and **only relevant for multicore systems**. Mailbox is used by SPM for communicating with secure partitions from nonsecure processing environment.
191
193
192
194
#### Concepts
193
195
@@ -205,9 +207,8 @@ The SPM mailbox mechanism requires the platform to have the following capabiliti
205
207
These are the guidelines you should follow if you have multicore systems:
206
208
207
209
- For each core, initialize, configure and enable the a mailbox event (usually an interrupt) at `SystemInit()`.
208
-
- For each core, implement the mailbox event handler (usually interrupt handler):
209
-
- This handler must call an Arm callback function. The [HAL functions section](#hal-functions) explains this in more detail.
210
-
- It is your responsibility to clear the mailbox event. You can do this in the event handler.
210
+
- For each core, implement the IPC event handler (usually interrupt handler):
211
+
- The handler must call an Arm callback function. Refer to [HAL functions section](#hal-functions) for more details.
211
212
- For each core, implement the HAL function that notifies the peer processor about a mailbox event occurrence. This is a part of the HAL, and the section below explains this in more detail.
212
213
- For each core, add the "SPM_MAILBOX" component field for its target node in mbed-os/targets/targets.json file.
213
214
@@ -216,7 +217,7 @@ These are the guidelines you should follow if you have multicore systems:
216
217
Target specific code of silicon partners who wish to have SPM capabilities must:
217
218
218
219
- Implement a list of functions which are being called by SPM code.
219
-
- Call other functions supplied by ARM.
220
+
- Call Arm callback functions declared and documented in the HAL header files.
220
221
221
222
The HAL can be logically divided into two different fields:
0 commit comments