Zephyr API Documentation
4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
arm_mpu_mem_cfg.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2017 Linaro Limited.
3
* Copyright 2025 NXP
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
#ifndef _ARM_CORTEX_M_MPU_MEM_CFG_H_
8
#define _ARM_CORTEX_M_MPU_MEM_CFG_H_
9
10
#include <
zephyr/arch/arm/mpu/arm_mpu.h
>
11
12
#if !defined(CONFIG_ARMV8_M_BASELINE) && !defined(CONFIG_ARMV8_M_MAINLINE)
13
14
/* Flash Region Definitions */
15
#if CONFIG_FLASH_SIZE <= 64
16
#define REGION_FLASH_SIZE REGION_64K
17
#elif CONFIG_FLASH_SIZE <= 128
18
#define REGION_FLASH_SIZE REGION_128K
19
#elif CONFIG_FLASH_SIZE <= 256
20
#define REGION_FLASH_SIZE REGION_256K
21
#elif CONFIG_FLASH_SIZE <= 512
22
#define REGION_FLASH_SIZE REGION_512K
23
#elif CONFIG_FLASH_SIZE <= 1024
24
#define REGION_FLASH_SIZE REGION_1M
25
#elif CONFIG_FLASH_SIZE <= 2048
26
#define REGION_FLASH_SIZE REGION_2M
27
#elif CONFIG_FLASH_SIZE <= 4096
28
#define REGION_FLASH_SIZE REGION_4M
29
#elif CONFIG_FLASH_SIZE <= 8192
30
#define REGION_FLASH_SIZE REGION_8M
31
#elif CONFIG_FLASH_SIZE <= 16384
32
#define REGION_FLASH_SIZE REGION_16M
33
#elif CONFIG_FLASH_SIZE <= 65536
34
#define REGION_FLASH_SIZE REGION_64M
35
#elif CONFIG_FLASH_SIZE <= 131072
36
#define REGION_FLASH_SIZE REGION_128M
37
#elif CONFIG_FLASH_SIZE <= 262144
38
#define REGION_FLASH_SIZE REGION_256M
39
#elif CONFIG_FLASH_SIZE <= 524288
40
#define REGION_FLASH_SIZE REGION_512M
41
#elif CONFIG_FLASH_SIZE <= 1048576
42
#define REGION_FLASH_SIZE REGION_1G
43
#elif CONFIG_FLASH_SIZE <= 2097152
44
#define REGION_FLASH_SIZE REGION_2G
45
#elif CONFIG_FLASH_SIZE <= 4194304
46
#define REGION_FLASH_SIZE REGION_4G
47
#else
48
#error "Unsupported flash size configuration"
49
#endif
50
51
/* SRAM Region Definitions */
52
#if CONFIG_SRAM_SIZE <= 16
53
#define REGION_SRAM_SIZE REGION_16K
54
#elif CONFIG_SRAM_SIZE <= 32
55
#define REGION_SRAM_SIZE REGION_32K
56
#elif CONFIG_SRAM_SIZE <= 64
57
#define REGION_SRAM_SIZE REGION_64K
58
#elif CONFIG_SRAM_SIZE <= 128
59
#define REGION_SRAM_SIZE REGION_128K
60
#elif CONFIG_SRAM_SIZE <= 256
61
#define REGION_SRAM_SIZE REGION_256K
62
#elif CONFIG_SRAM_SIZE <= 512
63
#define REGION_SRAM_SIZE REGION_512K
64
#elif CONFIG_SRAM_SIZE <= 1024
65
#define REGION_SRAM_SIZE REGION_1M
66
#elif CONFIG_SRAM_SIZE <= 2048
67
#define REGION_SRAM_SIZE REGION_2M
68
#elif CONFIG_SRAM_SIZE <= 4096
69
#define REGION_SRAM_SIZE REGION_4M
70
#elif CONFIG_SRAM_SIZE <= 8192
71
#define REGION_SRAM_SIZE REGION_8M
72
#elif CONFIG_SRAM_SIZE <= 16384
73
#define REGION_SRAM_SIZE REGION_16M
74
#elif CONFIG_SRAM_SIZE <= 32768
75
#define REGION_SRAM_SIZE REGION_32M
76
#elif CONFIG_SRAM_SIZE <= 65536
77
#define REGION_SRAM_SIZE REGION_64M
78
#elif CONFIG_SRAM_SIZE <= 131072
79
#define REGION_SRAM_SIZE REGION_128M
80
#elif CONFIG_SRAM_SIZE <= 262144
81
#define REGION_SRAM_SIZE REGION_256M
82
#elif CONFIG_SRAM_SIZE <= 524288
83
#define REGION_SRAM_SIZE REGION_512M
84
#elif CONFIG_SRAM_SIZE <= 1048576
85
#define REGION_SRAM_SIZE REGION_1G
86
#elif CONFIG_SRAM_SIZE <= 2097152
87
#define REGION_SRAM_SIZE REGION_2G
88
#elif CONFIG_SRAM_SIZE <= 4194304
89
#define REGION_SRAM_SIZE REGION_4G
90
#else
91
#error "Unsupported sram size configuration"
92
#endif
93
94
/* Define Wrong value */
95
#define REGION_SIZE_UNSUPPORTED -1
96
97
/* Customed Memory Region Definitions */
98
#define REGION_CUSTOMED_MEMORY_SIZE(size_kb) \
99
((size_kb) <= 16 ? REGION_16K : \
100
(size_kb) <= 32 ? REGION_32K : \
101
(size_kb) <= 64 ? REGION_64K : \
102
(size_kb) <= 128 ? REGION_128K : \
103
(size_kb) <= 256 ? REGION_256K : \
104
(size_kb) <= 512 ? REGION_512K : \
105
(size_kb) <= 1024 ? REGION_1M : \
106
(size_kb) <= 2048 ? REGION_2M : \
107
(size_kb) <= 4096 ? REGION_4M : \
108
(size_kb) <= 8192 ? REGION_8M : \
109
(size_kb) <= 16384 ? REGION_16M : \
110
(size_kb) <= 32768 ? REGION_32M : \
111
(size_kb) <= 65536 ? REGION_64M : \
112
(size_kb) <= 131072 ? REGION_128M : \
113
(size_kb) <= 262144 ? REGION_256M : \
114
(size_kb) <= 524288 ? REGION_512M : \
115
(size_kb) <= 1048576 ? REGION_1G : \
116
(size_kb) <= 2097152 ? REGION_2G : \
117
(size_kb) <= 4194304 ? REGION_4G : \
118
REGION_SIZE_UNSUPPORTED)
119
120
#endif
/* !ARMV8_M_BASELINE && !ARMV8_M_MAINLINE */
121
122
#endif
/* _ARM_CORTEX_M_MPU_MEM_CFG_H_ */
arm_mpu.h
zephyr
arch
arm
cortex_m
arm_mpu_mem_cfg.h
Generated on
for Zephyr API Documentation by
1.14.0