Zephyr API Documentation
4.4.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
#define Z_SRAM_SIZE (DT_CHOSEN_SRAM_SIZE / 1024)
56
57
/* SRAM Region Definitions */
58
#if Z_SRAM_SIZE <= 16
59
#define REGION_SRAM_SIZE REGION_16K
60
#elif Z_SRAM_SIZE <= 32
61
#define REGION_SRAM_SIZE REGION_32K
62
#elif Z_SRAM_SIZE <= 64
63
#define REGION_SRAM_SIZE REGION_64K
64
#elif Z_SRAM_SIZE <= 128
65
#define REGION_SRAM_SIZE REGION_128K
66
#elif Z_SRAM_SIZE <= 256
67
#define REGION_SRAM_SIZE REGION_256K
68
#elif Z_SRAM_SIZE <= 512
69
#define REGION_SRAM_SIZE REGION_512K
70
#elif Z_SRAM_SIZE <= 1024
71
#define REGION_SRAM_SIZE REGION_1M
72
#elif Z_SRAM_SIZE <= 2048
73
#define REGION_SRAM_SIZE REGION_2M
74
#elif Z_SRAM_SIZE <= 4096
75
#define REGION_SRAM_SIZE REGION_4M
76
#elif Z_SRAM_SIZE <= 8192
77
#define REGION_SRAM_SIZE REGION_8M
78
#elif Z_SRAM_SIZE <= 16384
79
#define REGION_SRAM_SIZE REGION_16M
80
#elif Z_SRAM_SIZE <= 32768
81
#define REGION_SRAM_SIZE REGION_32M
82
#elif Z_SRAM_SIZE <= 65536
83
#define REGION_SRAM_SIZE REGION_64M
84
#elif Z_SRAM_SIZE <= 131072
85
#define REGION_SRAM_SIZE REGION_128M
86
#elif Z_SRAM_SIZE <= 262144
87
#define REGION_SRAM_SIZE REGION_256M
88
#elif Z_SRAM_SIZE <= 524288
89
#define REGION_SRAM_SIZE REGION_512M
90
#elif Z_SRAM_SIZE <= 1048576
91
#define REGION_SRAM_SIZE REGION_1G
92
#elif Z_SRAM_SIZE <= 2097152
93
#define REGION_SRAM_SIZE REGION_2G
94
#elif Z_SRAM_SIZE <= 4194304
95
#define REGION_SRAM_SIZE REGION_4G
96
#else
97
#error "Unsupported sram size configuration"
98
#endif
99
100
#undef Z_SRAM_SIZE
101
102
/* Define Wrong value */
103
#define REGION_SIZE_UNSUPPORTED -1
104
105
/* Customed Memory Region Definitions */
106
#define REGION_CUSTOMED_MEMORY_SIZE(size_kb) \
107
((size_kb) <= 16 ? REGION_16K : \
108
(size_kb) <= 32 ? REGION_32K : \
109
(size_kb) <= 64 ? REGION_64K : \
110
(size_kb) <= 128 ? REGION_128K : \
111
(size_kb) <= 256 ? REGION_256K : \
112
(size_kb) <= 512 ? REGION_512K : \
113
(size_kb) <= 1024 ? REGION_1M : \
114
(size_kb) <= 2048 ? REGION_2M : \
115
(size_kb) <= 4096 ? REGION_4M : \
116
(size_kb) <= 8192 ? REGION_8M : \
117
(size_kb) <= 16384 ? REGION_16M : \
118
(size_kb) <= 32768 ? REGION_32M : \
119
(size_kb) <= 65536 ? REGION_64M : \
120
(size_kb) <= 131072 ? REGION_128M : \
121
(size_kb) <= 262144 ? REGION_256M : \
122
(size_kb) <= 524288 ? REGION_512M : \
123
(size_kb) <= 1048576 ? REGION_1G : \
124
(size_kb) <= 2097152 ? REGION_2G : \
125
(size_kb) <= 4194304 ? REGION_4G : \
126
REGION_SIZE_UNSUPPORTED)
127
128
#endif
/* !ARMV8_M_BASELINE && !ARMV8_M_MAINLINE */
129
130
#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.16.1