Home
last modified time | relevance | path

Searched full:mpu (Results 1 – 25 of 625) sorted by relevance

12345678910>>...25

/Zephyr-Core-3.5.0/arch/arm/core/mpu/
DKconfig1 # Memory Protection Unit (MPU) configuration options
9 bool "ARM MPU Support"
10 select MPU
21 The ARMv6-M and ARMv7-M MPU architecture requires a power-of-two
22 alignment of MPU region base address and size.
24 The NXP MPU as well as the ARMv8-M MPU do not require MPU regions
27 The ARMv8-M MPU requires the active MPU regions be non-overlapping.
28 As a result of this, the ARMv8-M MPU needs to fully partition the
35 By not enforcing full partition, MPU may leave part of kernel
44 of full partitioning the default behavior for the ARMv8-M MPU
[all …]
Darm_core_mpu_dev.h25 * may be defined in a memory domain, given the amount of available HW MPU
28 * @param mpu_regions_num the number of available HW MPU regions.
33 * For ARM MPU architectures, where the domain partitions cannot be defined
35 * memory domain partitions is set to half of the number of available MPU
38 * programmed using the available number of HW MPU regions.
44 * For ARM MPU architectures, where the domain partitions can be defined
46 * of memory domain partitions is equal to the number of available MPU regions.
53 * @brief Maximum number of MPU regions required to configure a
60 * requires two additional MPU regions to be configured; one for
68 * single MPU region.
[all …]
Dnxp_mpu.c21 LOG_MODULE_DECLARE(mpu);
28 "`zephyr,memory-region-mpu` was deprecated in favor of `zephyr,memory-attr`");
31 * Global status variable holding the number of HW MPU region indices, which
32 * have been reserved by the MPU driver to program the static (fixed) memory
37 /* Global MPU configuration at system initialization. */
40 /* Enable clock for the Memory Protection Unit (MPU). */ in mpu_init()
45 * Get the number of supported MPU regions.
55 * MPU region start address and size.
62 /* Partition size must be a multiple of the minimum MPU region in mpu_partition_is_valid()
64 * minimum MPU region size. in mpu_partition_is_valid()
[all …]
Darm_mpu.c19 LOG_MODULE_DECLARE(mpu);
42 "`zephyr,memory-region-mpu` was deprecated in favor of `zephyr,memory-attr`");
45 * Global status variable holding the number of HW MPU region indices, which
46 * have been reserved by the MPU driver to program the static (fixed) memory
73 /* No available MPU region index. */ in region_allocate_and_init()
74 LOG_ERR("Failed to allocate new MPU region %u\n", index); in region_allocate_and_init()
78 LOG_DBG("Program MPU region at index 0x%x", index); in region_allocate_and_init()
92 /* This internal function programs the MPU regions defined in the DT when using
159 /* This internal function programs an MPU region
160 * of a given configuration at a given MPU index.
[all …]
Darm_mpu_v7_internal.h18 /* Global MPU configuration at system initialization. */
21 /* No specific configuration at init for ARMv7-M MPU. */ in mpu_init()
24 /* This internal function performs MPU region initialization.
47 MPU->RBAR = (region_conf->base & MPU_RBAR_ADDR_Msk) in region_init()
49 MPU->RASR = region_conf->attr.rasr | MPU_RASR_ENABLE_Msk; in region_init()
58 * MPU region start address and size.
67 * MPU region size. Start address of the in mpu_partition_is_valid()
109 * This internal function is utilized by the MPU driver to combine a given
111 * structure with the correct MPU region configuration.
117 /* in ARMv7-M MPU the base address is not required in get_region_attr_from_mpu_partition_info()
[all …]
Darm_core_mpu.c17 LOG_MODULE_REGISTER(mpu);
23 * Maximum number of dynamic memory partitions that may be supplied to the MPU
25 * available MPU regions for dynamic programming depends on the number of the
26 * static MPU regions currently being programmed, and the total number of HW-
27 * available MPU regions. This macro is only used internally in function
101 /* Main stack MPU guard to detect overflow.
104 * under CONFIG_MULTITHREADING=n, so the MPU guard (if
118 * @brief Use the HW-specific MPU driver to program
119 * the static MPU regions.
121 * Program the static MPU regions using the HW-specific MPU driver. The
[all …]
Darm_mpu_v8_internal.h19 * memory areas where dynamic MPU programming
28 * Global array, holding the MPU region index of
37 MPU->MAIR0 = mair0; in mpu_set_mair0()
42 MPU->RNR = rnr; in mpu_set_rnr()
47 MPU->RBAR = rbar; in mpu_set_rbar()
52 return MPU->RBAR; in mpu_get_rbar()
57 MPU->RLAR = rlar; in mpu_set_rlar()
62 return MPU->RLAR; in mpu_get_rlar()
67 uint32_t type = MPU->TYPE; in mpu_get_num_regions()
137 /* Global MPU configuration at system initialization. */
[all …]
/Zephyr-Core-3.5.0/arch/arc/core/mpu/
DKconfig1 # Memory Protection Unit (MPU) configuration options
7 int "ARC MPU version"
11 ARC MPU has several versions. For MPU v2, the minimum region is 2048 bytes;
13 v6 supports up to 32 regions. Note: MPU v5 & v7 are not supported.
16 bool "ARC Core MPU functionalities"
18 ARC core MPU functionalities
24 Enable thread stack guards via MPU. ARC supports built-in stack protection.
25 If your core supports that, it is preferred over MPU stack guard.
30 bool "ARC MPU Support"
31 select MPU
[all …]
Darc_mpu_common_internal.h14 #error "Unsupported MPU version"
18 * @brief configure the base address and size for an MPU region
20 * @param type MPU region type
36 * For ARC MPU, MPU regions can be overlapped, smaller in _mpu_configure()
44 /* ARC Core MPU Driver API Implementation for ARC MP */
47 * @brief enable the MPU
51 /* Enable MPU */ in arc_core_mpu_enable()
57 * @brief disable the MPU
61 /* Disable MPU */ in arc_core_mpu_disable()
67 * @brief configure the thread's MPU regions
[all …]
Darc_mpu_v4_internal.h15 /* For MPU version 4, the minimum protection region size is 32 bytes */
21 /* ARC MPU version 4 does not support mpu region overlap in hardware
22 * so if we want to allocate MPU region dynamically, e.g. thread stack,
27 * As a trade off, we can use the default mpu region as the background region
30 * explicit mpu entry. Considering memory protection is mainly used to
32 * thread switch performance through default mpu region.
52 * memory areas where dynamic MPU programming is allowed.
65 * Global array, holding the MPU region index of
75 /* \todo through secure service to access mpu */
111 * This internal function probes the given addr's MPU index.if not
[all …]
/Zephyr-Core-3.5.0/arch/arm64/core/cortex_r/
DKconfig1 # Memory Protection Unit (MPU) configuration options
11 bool "ARM MPU Support"
13 select MPU
18 MPU implements Memory Protection Unit.
21 The ARMv8-R MPU architecture requires a power-of-two alignment
22 of MPU region base address and size(64 bytes aligned).
24 The ARMv8-R MPU requires the active MPU regions be non-overlapping.
25 As a result of this, the ARMv8-R MPU needs to fully partition the
32 By not enforcing full partition, MPU may leave part of kernel
41 of full partitioning the default behavior for the ARMv8-R MPU
[all …]
/Zephyr-Core-3.5.0/include/zephyr/arch/arc/v2/mpu/
Darc_core_mpu.h14 * The defines below represent the region types. The MPU driver is responsible
18 * Each MPU is different and has a different set of attributes, hence instead
22 * of operations and attributes for each MPU and it is responsibility of the
23 * MPU driver to select the correct ones.
28 * be managed inside the MPU driver and not escalated.
38 /* ARC Core MPU Driver API */
41 * This API has to be implemented by all the MPU drivers that have
46 * @brief enable the MPU
51 * @brief disable the MPU
56 * @brief configure the thread's mpu regions
[all …]
/Zephyr-Core-3.5.0/arch/arm/core/mpu/cortex_m/
Darm_mpu_internal.h9 * Get the number of supported MPU regions.
17 * have a fixed number of 8 MPU regions. in get_num_regions()
24 uint32_t type = MPU->TYPE; in get_num_regions()
34 MPU->RNR = index; in set_region_number()
39 MPU->RNR = index; in mpu_region_get_base()
40 return MPU->RBAR & MPU_RBAR_ADDR_Msk; in mpu_region_get_base()
65 MPU->RNR = index; in is_enabled_region()
66 rasr = MPU->RASR; in is_enabled_region()
73 * This internal function returns the access permissions of an MPU region
86 MPU->RNR = r_index; in get_region_ap()
[all …]
/Zephyr-Core-3.5.0/arch/arm/include/cortex_m/
Dcmse.h38 * @brief Get the MPU region number of an address
40 * Return the non-negative MPU region that the address maps to,
41 * or -EINVAL to indicate that an invalid MPU region was retrieved.
46 * - the MPU is implemented and enabled
47 * - the given address matches a single, enabled MPU region
49 * @param addr The address for which the MPU region is requested
51 * @return a valid MPU region number or -EINVAL
59 * permissions of the current state MPU and the specified operation mode.
63 * - if the address matches multiple MPU regions.
78 * to the permissions of the current state MPU and the specified operation
[all …]
/Zephyr-Core-3.5.0/samples/arch/mpu/mpu_test/
DREADME.rst3 Memory Protection Unit (MPU) Sample
8 This application provides a set options to check the correct MPU configuration
15 If the MPU configuration is correct each option selected ends up in an MPU
24 :zephyr-app: samples/arch/mpu/mpu_test
33 :zephyr-app: samples/arch/mpu/mpu_test
51 uart:~$ mpu read
66 uart:~$ mpu write
68 <err> os: ***** MPU FAULT *****
82 uart:~$ mpu run
83 <err> os: ***** MPU FAULT *****
[all …]
Dsample.yaml2 name: MPU Test
4 sample.mpu.mpu_test:
7 tags: mpu
/Zephyr-Core-3.5.0/doc/kernel/usermode/
Dmpu_stack_objects.rst3 MPU Stack Objects
11 For architectures which utilize memory protection unit (MPU) hardware,
16 requirements for MPU regions. This is discussed in the memory placement
24 The MPU provides a fixed number of regions. Each region contains information
28 Stack guards are implemented by using a single MPU region and setting the
41 The main source of the memory constraints is the MPU design for the SoC. The
42 MPU design may require specific constraints on the region definition. These
51 v7m MPU will have these constraints.
53 Some ARM MPUs use start and end addresses to define MPU regions and both the
55 MPU is found in the NXP FRDM K64F.
/Zephyr-Core-3.5.0/dts/bindings/mmu_mpu/
Darm,armv7m-mpu.yaml1 description: ARMv7-M Memory Protection Unit (MPU)
3 compatible: "arm,armv7m-mpu"
11 arm,num-mpu-regions:
14 description: number of MPU regions supported by hardware
Darm,armv8m-mpu.yaml1 description: ARMv8-M MPU (Memory Protection Unit)
3 compatible: "arm,armv8m-mpu"
11 arm,num-mpu-regions:
14 description: number of MPU regions supported by hardware
Darm,armv8.1m-mpu.yaml1 description: ARMv8.1-M MPU (Memory Protection Unit)
3 compatible: "arm,armv8.1m-mpu"
11 arm,num-mpu-regions:
14 description: number of MPU regions supported by hardware
Darm,armv6m-mpu.yaml4 description: ARMv6-M Memory Protection Unit (MPU)
6 compatible: "arm,armv6m-mpu"
14 arm,num-mpu-regions:
18 description: number of MPU regions supported by hardware
/Zephyr-Core-3.5.0/include/zephyr/arch/arm/mpu/
Darm_mpu.h14 #include <zephyr/arch/arm/mpu/arm_mpu_v7m.h>
19 #include <zephyr/arch/arm/mpu/arm_mpu_v8.h>
40 /* MPU configuration data structure */
65 /* Reference to the MPU configuration.
68 * and holds the build-time configuration information for the fixed MPU
69 * regions enabled during kernel initialization. Dynamic MPU regions (e.g.
/Zephyr-Core-3.5.0/soc/arm/
DKconfig10 This option is enabled when the CPU has a Memory Protection Unit (MPU)
17 This option is enabled when the CPU has a Memory Protection Unit (MPU)
21 bool "Custom fixed SoC MPU region definition"
24 define and configure its own fixed MPU regions in the
25 SoC definition. These fixed MPU regions are currently
/Zephyr-Core-3.5.0/soc/arm/st_stm32/stm32mp1/
DKconfig.series1 # ST Microelectronics STM32MP1 MPU series
7 bool "STM32MP15 Series MPU"
16 Enable support for STM32MP1 MPU series
/Zephyr-Core-3.5.0/samples/application_development/code_relocation_nocopy/src/
Dmain.c28 MPU->RNR = index; in disable_mpu_rasr_xn()
30 if (MPU->RBAR & MPU_RBAR_XN_Msk) { in disable_mpu_rasr_xn()
31 MPU->RBAR ^= MPU_RBAR_XN_Msk; in disable_mpu_rasr_xn()
34 if (MPU->RASR & MPU_RASR_XN_Msk) { in disable_mpu_rasr_xn()
35 MPU->RASR ^= MPU_RASR_XN_Msk; in disable_mpu_rasr_xn()

12345678910>>...25