Difference between revisions of "Reserved memory"

[unchecked revision] [quality revision]
m
m
 
Applicable for STM32MP13x lines, STM32MP15x lines

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 internal 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 OpenSTLinux, the reserved-memory is used:

  • On STM32MP1 Series by:
  • On STM32MP15x lines More info.png by:
  • 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]


<noinclude>{{ApplicableFor
|MPUs list=STM32MP13x, STM32MP15x
|MPUs checklist=STM32MP13x, STM32MP15x
}}</noinclude>

== 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 internal SRAM<ref name="SRAM">[[STM32MP13 SRAM internal memory]]</ref><ref name="MCU SRAM">[[STM32MP15 MCU SRAM internal memory]]</ref>) or to get a dedicated memory pool that will not be managed by Linux<sup>&reg;</sup> conventionnal memory allocator (in [[DDRCTRL and DDRPHYC internal peripherals|DDR]]DDR).<br />


== Use cases ==
In OpenSTLinux, the '''reserved-memory''' is used:
* On {{MicroprocessorDevice | device=1}} by:
:* the [[Dmaengine overview|dmaengine driver]] to reserve the region where [[DMA internal peripheral|DMA]] buffers are allocated, typically in internal SRAM<ref name="SRAM"/><ref name="MCU SRAM"/> ([[STM32MP13 SRAM internal memory|STM32MP13 SRAM]] or [[STM32MP15 MCU SRAM internal memory|STM32MP15 MCU SRAM]]).
* On {{MicroprocessorDevice | device=15}} by:
:* the [[Linux remoteproc framework overview|remoteproc driver]] to reserve the regions in [[RETRAM internal memory|RETRAM]] and [[STM32MP15 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 [[STM32MP15 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 4: Line 4:
 
}}</noinclude>
 
}}</noinclude>
 
== 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 internal SRAM<ref name="SRAM">[[STM32MP13 SRAM internal memory]]</ref><ref name="MCU SRAM">[[STM32MP15 MCU SRAM internal memory]]</ref>) or to get a dedicated memory pool that will not be managed by Linux<sup>&reg;</sup> conventionnal memory allocator (in [[DDRCTRL and DDRPHYC internal peripherals|DDR]]).<br />
+
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) or to get a dedicated memory pool that will not be managed by Linux<sup>&reg;</sup> conventionnal memory allocator (in DDR).<br />
 
   
 
   
 
== Use cases ==
 
== Use cases ==
 
In OpenSTLinux, the '''reserved-memory''' is used:
 
In OpenSTLinux, the '''reserved-memory''' is used:
 
* On {{MicroprocessorDevice | device=1}} by:
 
* On {{MicroprocessorDevice | device=1}} by:
:* 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 [[Dmaengine overview|dmaengine driver]] to reserve the region where [[DMA internal peripheral|DMA]] buffers are allocated, typically in internal SRAM ([[STM32MP13 SRAM internal memory|STM32MP13 SRAM]] or [[STM32MP15 MCU SRAM internal memory|STM32MP15 MCU SRAM]]).
 
* On {{MicroprocessorDevice | device=15}} by:
 
* On {{MicroprocessorDevice | device=15}} by:
 
:* the [[Linux remoteproc framework overview|remoteproc driver]] to reserve the regions in [[RETRAM internal memory|RETRAM]] and [[STM32MP15 MCU SRAM internal memory|MCU SRAM]] where the coprocessor firmware will be loaded.
 
:* the [[Linux remoteproc framework overview|remoteproc driver]] to reserve the regions in [[RETRAM internal memory|RETRAM]] and [[STM32MP15 MCU SRAM internal memory|MCU SRAM]] where the coprocessor firmware will be loaded.