Zephyr API Documentation
4.3.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 _INCLUDE_ZEPHYR_ARCH_ARM_MPU_MEM_CFG_H_
8
#define _INCLUDE_ZEPHYR_ARCH_ARM_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 <= 32
16
#define REGION_FLASH_SIZE REGION_32K
17
#elif CONFIG_FLASH_SIZE <= 64
18
#define REGION_FLASH_SIZE REGION_64K
19
#elif CONFIG_FLASH_SIZE <= 128
20
#define REGION_FLASH_SIZE REGION_128K
21
#elif CONFIG_FLASH_SIZE <= 256
22
#define REGION_FLASH_SIZE REGION_256K
23
#elif CONFIG_FLASH_SIZE <= 512
24
#define REGION_FLASH_SIZE REGION_512K
25
#elif CONFIG_FLASH_SIZE <= 1024
26
#define REGION_FLASH_SIZE REGION_1M
27
#elif CONFIG_FLASH_SIZE <= 2048
28
#define REGION_FLASH_SIZE REGION_2M
29
#elif CONFIG_FLASH_SIZE <= 4096
30
#define REGION_FLASH_SIZE REGION_4M
31
#elif CONFIG_FLASH_SIZE <= 8192
32
#define REGION_FLASH_SIZE REGION_8M
33
#elif CONFIG_FLASH_SIZE <= 16384
34
#define REGION_FLASH_SIZE REGION_16M
35
#elif CONFIG_FLASH_SIZE <= 32768
36
#define REGION_FLASH_SIZE REGION_32M
37
#elif CONFIG_FLASH_SIZE <= 65536
38
#define REGION_FLASH_SIZE REGION_64M
39
#elif CONFIG_FLASH_SIZE <= 131072
40
#define REGION_FLASH_SIZE REGION_128M
41
#elif CONFIG_FLASH_SIZE <= 262144
42
#define REGION_FLASH_SIZE REGION_256M
43
#elif CONFIG_FLASH_SIZE <= 524288
44
#define REGION_FLASH_SIZE REGION_512M
45
#elif CONFIG_FLASH_SIZE <= 1048576
46
#define REGION_FLASH_SIZE REGION_1G
47
#elif CONFIG_FLASH_SIZE <= 2097152
48
#define REGION_FLASH_SIZE REGION_2G
49
#elif CONFIG_FLASH_SIZE <= 4194304
50
#define REGION_FLASH_SIZE REGION_4G
51
#else
52
#error "Unsupported flash size configuration"
53
#endif
54
55
/* SRAM Region Definitions */
56
#if CONFIG_SRAM_SIZE <= 16
57
#define REGION_SRAM_SIZE REGION_16K
58
#elif CONFIG_SRAM_SIZE <= 32
59
#define REGION_SRAM_SIZE REGION_32K
60
#elif CONFIG_SRAM_SIZE <= 64
61
#define REGION_SRAM_SIZE REGION_64K
62
#elif CONFIG_SRAM_SIZE <= 128
63
#define REGION_SRAM_SIZE REGION_128K
64
#elif CONFIG_SRAM_SIZE <= 256
65
#define REGION_SRAM_SIZE REGION_256K
66
#elif CONFIG_SRAM_SIZE <= 512
67
#define REGION_SRAM_SIZE REGION_512K
68
#elif CONFIG_SRAM_SIZE <= 1024
69
#define REGION_SRAM_SIZE REGION_1M
70
#elif CONFIG_SRAM_SIZE <= 2048
71
#define REGION_SRAM_SIZE REGION_2M
72
#elif CONFIG_SRAM_SIZE <= 4096
73
#define REGION_SRAM_SIZE REGION_4M
74
#elif CONFIG_SRAM_SIZE <= 8192
75
#define REGION_SRAM_SIZE REGION_8M
76
#elif CONFIG_SRAM_SIZE <= 16384
77
#define REGION_SRAM_SIZE REGION_16M
78
#elif CONFIG_SRAM_SIZE <= 32768
79
#define REGION_SRAM_SIZE REGION_32M
80
#elif CONFIG_SRAM_SIZE <= 65536
81
#define REGION_SRAM_SIZE REGION_64M
82
#elif CONFIG_SRAM_SIZE <= 131072
83
#define REGION_SRAM_SIZE REGION_128M
84
#elif CONFIG_SRAM_SIZE <= 262144
85
#define REGION_SRAM_SIZE REGION_256M
86
#elif CONFIG_SRAM_SIZE <= 524288
87
#define REGION_SRAM_SIZE REGION_512M
88
#elif CONFIG_SRAM_SIZE <= 1048576
89
#define REGION_SRAM_SIZE REGION_1G
90
#elif CONFIG_SRAM_SIZE <= 2097152
91
#define REGION_SRAM_SIZE REGION_2G
92
#elif CONFIG_SRAM_SIZE <= 4194304
93
#define REGION_SRAM_SIZE REGION_4G
94
#else
95
#error "Unsupported sram size configuration"
96
#endif
97
98
/* Define Wrong value */
99
#define REGION_SIZE_UNSUPPORTED -1
100
101
/* Customed Memory Region Definitions */
102
#define REGION_CUSTOMED_MEMORY_SIZE(size_kb) \
103
((size_kb) <= 16 ? REGION_16K : \
104
(size_kb) <= 32 ? REGION_32K : \
105
(size_kb) <= 64 ? REGION_64K : \
106
(size_kb) <= 128 ? REGION_128K : \
107
(size_kb) <= 256 ? REGION_256K : \
108
(size_kb) <= 512 ? REGION_512K : \
109
(size_kb) <= 1024 ? REGION_1M : \
110
(size_kb) <= 2048 ? REGION_2M : \
111
(size_kb) <= 4096 ? REGION_4M : \
112
(size_kb) <= 8192 ? REGION_8M : \
113
(size_kb) <= 16384 ? REGION_16M : \
114
(size_kb) <= 32768 ? REGION_32M : \
115
(size_kb) <= 65536 ? REGION_64M : \
116
(size_kb) <= 131072 ? REGION_128M : \
117
(size_kb) <= 262144 ? REGION_256M : \
118
(size_kb) <= 524288 ? REGION_512M : \
119
(size_kb) <= 1048576 ? REGION_1G : \
120
(size_kb) <= 2097152 ? REGION_2G : \
121
(size_kb) <= 4194304 ? REGION_4G : \
122
REGION_SIZE_UNSUPPORTED)
123
124
#endif
/* !ARMV8_M_BASELINE && !ARMV8_M_MAINLINE */
125
126
#endif
/* _INCLUDE_ZEPHYR_ARCH_ARM_MPU_MEM_CFG_H_ */
arm_mpu.h
zephyr
arch
arm
mpu
arm_mpu_mem_cfg.h
Generated on
for Zephyr API Documentation by
1.15.0