Approved version. Approved on: 14:55, 18 March 2021
You are viewing an old version of this page. Return to the latest version.
Difference between revisions of "Reserved memory"
[quality revision] | [quality revision] |
(Merge articles)
|
Gerald Baeza (talk | contribs)
m
|
1 Article purpose[edit]
The Reserved-memory mechanism[1] allows reserving memory regions in the kernel. This mechanism is used by drivers to allocate buffers in specific memory regions (such as MCU SRAMinternal SRAM[2][3]) or to get a dedicated memory pool that will not be managed by Linux® conventionnal memory allocator (in DDR).
2 Use cases[edit]
In STM32 MPU Linux OSOpenSTLinux, the reserved-memory is used:
- On STM32MP1 Series by:
-
- the dmaengine driver to reserve the region where DMA buffers are allocated, typically
-
- the remoteproc driver to reserve the regions in RETRAM and MCU SRAM where the coprocessor firmware will be loaded.
- the RPMsg driver to reserve the region where RPMsg buffers used for interprocess communication with the coprocessor, are allocated, typically MCU SRAM.
- the Vivante Gcnano driver to reserve the region where the GPU working memory is allocated, typically the DDR.
3 References[edit]
== Article purpose == The '''Reserved-memory''' mechanism<ref>https://www.kernel.org/doc/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt</ref> allows reserving memory regions in the kernel. This mechanism is used by drivers to allocate buffers in specific memory regions (such as [[MCUinternal SRAM<ref name="SRAM">[[STM32MP13 SRAM internal memory|MCU SRAM]]]]</ref><ref name="MCU SRAM">[[MCU SRAM internal memory]]</ref>) or to get a dedicated memory pool that will not be managed by Linux<sup>®</sup> conventionnal memory allocator (in [[DDRCTRL and DDRPHYC internal peripherals|DDR]]).<br /> == Use cases == In STM32 MPU Linux OSOpenSTLinux, the '''reserved-memory''' is used by:: * On {{MicroprocessorDevice | device=1}} by: :* the [[Dmaengine overview|dmaengine driver]] to reserve the region where [[DMA internal peripheral|DMA]] buffers are allocated, typically [[MCUinternal SRAM internal memory|MCU SRAM]].<ref name="SRAM"/><ref name="MCU SRAM"/>. * On {{MicroprocessorDevice | device=15}} by: :* the [[Linux remoteproc framework overview|remoteproc driver]] to reserve the regions in [[RETRAM internal memory|RETRAM]] and [[MCU SRAM internal memory|MCU SRAM]] where the coprocessor firmware will be loaded.:* the [[Linux_RPMsg_framework_overview|RPMsg driver]] to reserve the region where [[Linux RPMsg framework overview|RPMsg]] buffers used for interprocess communication with the coprocessor, are allocated, typically [[MCU SRAM internal memory|MCU SRAM]].:* the Vivante Gcnano driver to reserve the region where the GPU working memory is allocated, typically the [[DDRCTRL and DDRPHYC internal peripherals|DDR]]. == References ==<references/> <noinclude> [[Category:RAM]] {{PublicationRequestId | 8903 | 2018-09-25 - AnneJ}}</noinclude>
Line 1: | Line 1: | ||
== Article purpose == |
== Article purpose == |
||
− | The '''Reserved-memory''' mechanism<ref>https://www.kernel.org/doc/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt</ref> allows reserving memory regions in the kernel. This mechanism is used by drivers to allocate buffers in specific memory regions (such as [[ |
+ | The '''Reserved-memory''' mechanism<ref>https://www.kernel.org/doc/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt</ref> allows reserving memory regions in the kernel. This mechanism is used by drivers to allocate buffers in specific memory regions (such as internal SRAM<ref name="SRAM">[[STM32MP13 SRAM internal memory]]</ref><ref name="MCU SRAM">[[MCU SRAM internal memory]]</ref>) or to get a dedicated memory pool that will not be managed by Linux<sup>®</sup> conventionnal memory allocator (in [[DDRCTRL and DDRPHYC internal peripherals|DDR]]).<br /> |
== Use cases == |
== Use cases == |
||
− | In |
+ | In OpenSTLinux, the '''reserved-memory''' is used:
|
− | * the [[Dmaengine overview|dmaengine driver]] to reserve the region where [[DMA internal peripheral|DMA]] buffers are allocated, typically |
+ |
* On {{MicroprocessorDevice | device=1}} by: |
− | * the [[Linux remoteproc framework overview|remoteproc driver]] to reserve the regions in [[RETRAM internal memory|RETRAM]] and [[MCU SRAM internal memory|MCU SRAM]] where the coprocessor firmware will be loaded. |
+ |
:* the [[Dmaengine overview|dmaengine driver]] to reserve the region where [[DMA internal peripheral|DMA]] buffers are allocated, typically internal SRAM<ref name="SRAM"/><ref name="MCU SRAM"/>. |
− | * the [[Linux_RPMsg_framework_overview|RPMsg driver]] to reserve the region where [[Linux RPMsg framework overview|RPMsg]] buffers used for interprocess communication with the coprocessor, are allocated, typically [[MCU SRAM internal memory|MCU SRAM]]. |
+ | * On {{MicroprocessorDevice | device=15}} by: |
− | * the Vivante Gcnano driver to reserve the region where the GPU working memory is allocated, typically the [[DDRCTRL and DDRPHYC internal peripherals|DDR]]. |
+ |
:* the [[Linux remoteproc framework overview|remoteproc driver]] to reserve the regions in [[RETRAM internal memory|RETRAM]] and [[MCU SRAM internal memory|MCU SRAM]] where the coprocessor firmware will be loaded. |
+ |
:* the [[Linux_RPMsg_framework_overview|RPMsg driver]] to reserve the region where [[Linux RPMsg framework overview|RPMsg]] buffers used for interprocess communication with the coprocessor, are allocated, typically [[MCU SRAM internal memory|MCU SRAM]]. |
||
+ |
:* the Vivante Gcnano driver to reserve the region where the GPU working memory is allocated, typically the [[DDRCTRL and DDRPHYC internal peripherals|DDR]]. |
||
== References == |
== References == |