-
CONFIG_MPU_GAP_FILLING
¶
Force MPU to be filling in background memory regions
Type: bool
Help¶
This Kconfig option instructs the MPU driver to enforce a full kernel SRAM partitioning, when it programs the dynamic MPU regions (user thread stack, PRIV stack guard and application memory domains) during context-switch. We allow this to be a configurable option, in order to be able to switch the option off and have an increased number of MPU regions available for application memory domain programming.
Notes: An increased number of MPU regions should only be required, when building with USERSPACE support. As a result, when we build without USERSPACE support, gap filling should always be required.
When the option is switched off, access to memory areas not covered by explicit MPU regions is restricted to privileged code on an ARCH-specific basis. Refer to ARCH-specific documentation for more information on how this option is used.
Direct dependencies¶
MPU_REQUIRES_NON_OVERLAPPING_REGIONS
&& MPU
(Includes any dependencies from ifs and menus.)
Kconfig definition¶
At <Zephyr>/arch/Kconfig:621
Included via <Zephyr>/Kconfig:8
→ <Zephyr>/Kconfig.zephyr:29
Menu path: (Top) → Enable MPU features
config MPU_GAP_FILLING bool "Force MPU to be filling in background memory regions" default y if !USERSPACE
depends onMPU_REQUIRES_NON_OVERLAPPING_REGIONS
&&MPU
help This Kconfig option instructs the MPU driver to enforce a full kernel SRAM partitioning, when it programs the dynamic MPU regions (user thread stack, PRIV stack guard and application memory domains) during context-switch. We allow this to be a configurable option, in order to be able to switch the option off and have an increased number of MPU regions available for application memory domain programming. Notes: An increased number of MPU regions should only be required, when building with USERSPACE support. As a result, when we build without USERSPACE support, gap filling should always be required. When the option is switched off, access to memory areas not covered by explicit MPU regions is restricted to privileged code on an ARCH-specific basis. Refer to ARCH-specific documentation for more information on how this option is used.
(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)