https://wiki.st.com/stm32mpu-ecosystem-v2/index.php?title=SYSRAM_internal_memory&feed=atom&action=history
SYSRAM internal memory - Revision history
2024-03-28T19:16:47Z
Revision history for this page on the wiki
MediaWiki 1.31.16
https://wiki.st.com/stm32mpu-ecosystem-v2/index.php?title=SYSRAM_internal_memory&diff=74155&oldid=prev
Jean Christophe Trotin at 09:44, 25 September 2020
2020-09-25T09:44:08Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 09:44, 25 September 2020</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l13" >Line 13:</td>
<td colspan="2" class="diff-lineno">Line 13:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Peripheral usage and associated software==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Peripheral usage and associated software==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Boot time===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Boot time===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The [[STM32MP15 ROM code overview|STM32MP15 ROM code]] mainly configures the SYSRAM as a secure peripheral during its execution. The [[STM32MP15 ROM code overview|ROM code]] uses 9 Kbytes located at the beginning of the SYSRAM to store its read and write data. The [[STM32MP15 ROM code overview|ROM code]] stores the boot context in the first 512 bytes of SYSRAM: this boot context contains several information (such as the selected boot device) and pointers to the [[STM32MP15 ROM code overview|ROM code]] services (used for secure boot authentication). The [[STM32MP15 ROM code overview|ROM code]] loads the [[Boot <del class="diffchange diffchange-inline">chains </del>overview|FSBL]] just after the boot context, into the remaining 247 Kbytes of SYSRAM, and eventually branches the Cortex<sup>&reg;</sup>-A7 core 0 execution to this [[Boot <del class="diffchange diffchange-inline">chains </del>overview|FSBL]].</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The [[STM32MP15 ROM code overview|STM32MP15 ROM code]] mainly configures the SYSRAM as a secure peripheral during its execution. The [[STM32MP15 ROM code overview|ROM code]] uses 9 Kbytes located at the beginning of the SYSRAM to store its read and write data. The [[STM32MP15 ROM code overview|ROM code]] stores the boot context in the first 512 bytes of SYSRAM: this boot context contains several information (such as the selected boot device) and pointers to the [[STM32MP15 ROM code overview|ROM code]] services (used for secure boot authentication). The [[STM32MP15 ROM code overview|ROM code]] loads the [[Boot <ins class="diffchange diffchange-inline">chain </ins>overview|FSBL]] just after the boot context, into the remaining 247 Kbytes of SYSRAM, and eventually branches the Cortex<sup>&reg;</sup>-A7 core 0 execution to this [[Boot <ins class="diffchange diffchange-inline">chain </ins>overview|FSBL]].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The [[Boot <del class="diffchange diffchange-inline">chains </del>overview|FSBL]] code can use the whole SYSRAM, but it must take care not to overwrite the boot context before taking it into account.</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The [[Boot <ins class="diffchange diffchange-inline">chain </ins>overview|FSBL]] code can use the whole SYSRAM, but it must take care not to overwrite the boot context before taking it into account.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Runtime===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Runtime===</div></td></tr>
</table>
Jean Christophe Trotin
https://wiki.st.com/stm32mpu-ecosystem-v2/index.php?title=SYSRAM_internal_memory&diff=67527&oldid=prev
Jean Christophe Trotin at 15:48, 4 February 2020
2020-02-04T15:48:15Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 15:48, 4 February 2020</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"><noinclude></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{ArticleBasedOnModel | [[Internal peripheral article model]]}}</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{ArticleMainWriter | GeraldB}}</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{ArticleApprovedVersion| GeraldB | EricS, LionelD | No previous approved version | AnneJ - 22Oct'18 - 9290 | 10Sep'18}}</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">[[Category:RAM interfaces]]</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></noinclude></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Article purpose==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==Article purpose==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The purpose of this article is to briefly introduce the SYSRAM internal memory and indicate the level of security supported by this memory.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The purpose of this article is to briefly introduce the SYSRAM internal memory and indicate the level of security supported by this memory.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l65" >Line 65:</td>
<td colspan="2" class="diff-lineno">Line 58:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==References==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==References==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references/></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references/></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><noinclude></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Category:RAM interfaces]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{PublicationRequestId | 9290 | 2018-10-22 | AnneJ}}</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{ArticleBasedOnModel | Internal peripheral article model}}</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></noinclude></ins></div></td></tr>
</table>
Jean Christophe Trotin
https://wiki.st.com/stm32mpu-ecosystem-v2/index.php?title=SYSRAM_internal_memory&diff=46513&oldid=prev
Frq08988 at 16:33, 7 January 2019
2019-01-07T16:33:05Z
<p></p>
<p><b>New page</b></p><div><noinclude><br />
{{ArticleBasedOnModel | [[Internal peripheral article model]]}}<br />
{{ArticleMainWriter | GeraldB}}<br />
{{ArticleApprovedVersion| GeraldB | EricS, LionelD | No previous approved version | AnneJ - 22Oct'18 - 9290 | 10Sep'18}}<br />
[[Category:RAM interfaces]]<br />
</noinclude><br />
<br />
==Article purpose==<br />
The purpose of this article is to briefly introduce the SYSRAM internal memory and indicate the level of security supported by this memory.<br />
<br />
==Peripheral overview==<br />
The STM32MP15 '''SYSRAM''' is a 256-Kbyte internal memory peripheral. It is physically located near the Arm<sup>&reg;</sup> Cortex-A to optimize the core performance.<br />
<br />
===Features===<br />
Refer to the [[STM32MP15 resources#Reference manuals|STM32MP15 reference manuals]] for the complete list of features, and to the software components, introduced below, to see which features are really implemented.<br />
<br />
===Security support===<br />
The SYSRAM is a '''secure''' peripheral (under [[ETZPC_internal_peripheral|ETZPC TrustZone memory adapter (TZMA)]]): it can be split into a secure and a non-secure regions with a 4-Kbyte granularity.<br />
<br />
==Peripheral usage and associated software==<br />
===Boot time===<br />
The [[STM32MP15 ROM code overview|STM32MP15 ROM code]] mainly configures the SYSRAM as a secure peripheral during its execution. The [[STM32MP15 ROM code overview|ROM code]] uses 9 Kbytes located at the beginning of the SYSRAM to store its read and write data. The [[STM32MP15 ROM code overview|ROM code]] stores the boot context in the first 512 bytes of SYSRAM: this boot context contains several information (such as the selected boot device) and pointers to the [[STM32MP15 ROM code overview|ROM code]] services (used for secure boot authentication). The [[STM32MP15 ROM code overview|ROM code]] loads the [[Boot chains overview|FSBL]] just after the boot context, into the remaining 247 Kbytes of SYSRAM, and eventually branches the Cortex<sup>&reg;</sup>-A7 core 0 execution to this [[Boot chains overview|FSBL]].<br />
<br />
<br />
The [[Boot chains overview|FSBL]] code can use the whole SYSRAM, but it must take care not to overwrite the boot context before taking it into account.<br />
<br />
===Runtime===<br />
====Overview====<br />
In STMicroelectronics distribution, the SYSRAM runtime mapping is the one reached at the end of the boot. It is consequently fully secure and contains a minimal secure monitor (from [[TF-A overview|TF-A]] or [[U-Boot overview|U-Boot]]) or a secure OS (like [[OP-TEE overview|OP-TEE]]).<br />
<br />
<br />
You may decide to split the SYSRAM at runtime. In this case:<br />
* set the SYSRAM bottom secure, for a Cortex<sup>&reg;</sup>-A7 secure monitor (from [[TF-A overview|TF-A]] or [[U-Boot overview|U-Boot]]) or a secure OS (such as [[OP-TEE overview|OP-TEE]])<br />
and<br />
* set the SYSRAM top non-secure, for instance for using in Linux<sup>&reg;</sup> as [[Reserved memory|reserved memory]]<br />
<br />
====Software frameworks====<br />
{{:Internal_peripherals_software_table_template}}<br />
| Core/RAM<br />
| [[SYSRAM internal memory|SYSRAM]]<br />
| [[TF-A overview#BL32|TF-A overview]]<br />
| [[Reserved memory|Linux reserved memory]]<br />
| <br />
|<br />
|-<br />
|}<br />
<br />
====Peripheral configuration====<br />
The configuration is applied by the firmware running in the context to which the peripheral is assigned. The configuration can be done alone via the [[STM32CubeMX]] tool for all internal peripherals, and then manually completed (particularly for external peripherals), according to the information given in the corresponding software framework article.<br />
<br />
====Peripheral assignment====<br />
{{:Internal_peripherals_assignment_table_template}}<br />
<onlyinclude><br />
| rowspan="1" | Core/RAM<br />
| rowspan="1" | [[SYSRAM internal memory|SYSRAM]]<br />
| SYSRAM<br />
| <span title="assignable peripheral" style="font-size:21px">☐</span><br />
| <span title="assignable peripheral" style="font-size:21px">☐</span><br />
|<br />
| Shareable (multiple choices supported)<br />
|-<br />
</onlyinclude><br />
|}<br />
<br />
==References==<br />
<references/></div>
Frq08988