1. Article purpose[edit | edit source]
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) or to get a dedicated memory pool that will not be managed by Linux® conventionnal memory allocator (in DDR).
2. Use cases[edit | edit source]
In OpenSTLinux, the reserved-memory is used:
- On STM32MP1 series by:
- the dmaengine driver to reserve the region where DMA buffers are allocated, typically in internal SRAM (STM32MP13 SRAM or STM32MP15 MCU SRAM).
- 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.
- On STM32MP2 series by:
- the dmaengine driver to reserve the region where DMA buffers are allocated, typically in internal STM32MP2 SRAM.
- the remoteproc driver to reserve the regions in RETRAM and 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 SRAM.
- the LTDC driver, see DRM KMS overview.
- the Vivante Gcnano driver to reserve the region where the GPU working memory is allocated, typically the DDR.
3. References[edit | edit source]