Line data Source code
1 0 : /*
2 : * Copyright (c) 2017 Linaro Limited.
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 : #ifndef _ARM_CORTEX_M_MPU_MEM_CFG_H_
7 : #define _ARM_CORTEX_M_MPU_MEM_CFG_H_
8 :
9 : #include <zephyr/arch/arm/mpu/arm_mpu.h>
10 :
11 : #if !defined(CONFIG_ARMV8_M_BASELINE) && !defined(CONFIG_ARMV8_M_MAINLINE)
12 :
13 : /* Flash Region Definitions */
14 : #if CONFIG_FLASH_SIZE <= 64
15 0 : #define REGION_FLASH_SIZE REGION_64K
16 : #elif CONFIG_FLASH_SIZE <= 128
17 : #define REGION_FLASH_SIZE REGION_128K
18 : #elif CONFIG_FLASH_SIZE <= 256
19 : #define REGION_FLASH_SIZE REGION_256K
20 : #elif CONFIG_FLASH_SIZE <= 512
21 : #define REGION_FLASH_SIZE REGION_512K
22 : #elif CONFIG_FLASH_SIZE <= 1024
23 : #define REGION_FLASH_SIZE REGION_1M
24 : #elif CONFIG_FLASH_SIZE <= 2048
25 : #define REGION_FLASH_SIZE REGION_2M
26 : #elif CONFIG_FLASH_SIZE <= 4096
27 : #define REGION_FLASH_SIZE REGION_4M
28 : #elif CONFIG_FLASH_SIZE <= 8192
29 : #define REGION_FLASH_SIZE REGION_8M
30 : #elif CONFIG_FLASH_SIZE <= 16384
31 : #define REGION_FLASH_SIZE REGION_16M
32 : #elif CONFIG_FLASH_SIZE <= 65536
33 : #define REGION_FLASH_SIZE REGION_64M
34 : #elif CONFIG_FLASH_SIZE <= 131072
35 : #define REGION_FLASH_SIZE REGION_128M
36 : #elif CONFIG_FLASH_SIZE <= 262144
37 : #define REGION_FLASH_SIZE REGION_256M
38 : #elif CONFIG_FLASH_SIZE <= 524288
39 : #define REGION_FLASH_SIZE REGION_512M
40 : #elif CONFIG_FLASH_SIZE <= 1048576
41 : #define REGION_FLASH_SIZE REGION_1G
42 : #elif CONFIG_FLASH_SIZE <= 2097152
43 : #define REGION_FLASH_SIZE REGION_2G
44 : #elif CONFIG_FLASH_SIZE <= 4194304
45 : #define REGION_FLASH_SIZE REGION_4G
46 : #else
47 : #error "Unsupported flash size configuration"
48 : #endif
49 :
50 : /* SRAM Region Definitions */
51 : #if CONFIG_SRAM_SIZE <= 16
52 0 : #define REGION_SRAM_SIZE REGION_16K
53 : #elif CONFIG_SRAM_SIZE <= 32
54 : #define REGION_SRAM_SIZE REGION_32K
55 : #elif CONFIG_SRAM_SIZE <= 64
56 : #define REGION_SRAM_SIZE REGION_64K
57 : #elif CONFIG_SRAM_SIZE <= 128
58 : #define REGION_SRAM_SIZE REGION_128K
59 : #elif CONFIG_SRAM_SIZE <= 256
60 : #define REGION_SRAM_SIZE REGION_256K
61 : #elif CONFIG_SRAM_SIZE <= 512
62 : #define REGION_SRAM_SIZE REGION_512K
63 : #elif CONFIG_SRAM_SIZE <= 1024
64 : #define REGION_SRAM_SIZE REGION_1M
65 : #elif CONFIG_SRAM_SIZE <= 2048
66 : #define REGION_SRAM_SIZE REGION_2M
67 : #elif CONFIG_SRAM_SIZE <= 4096
68 : #define REGION_SRAM_SIZE REGION_4M
69 : #elif CONFIG_SRAM_SIZE <= 8192
70 : #define REGION_SRAM_SIZE REGION_8M
71 : #elif CONFIG_SRAM_SIZE <= 16384
72 : #define REGION_SRAM_SIZE REGION_16M
73 : #elif CONFIG_SRAM_SIZE <= 32768
74 : #define REGION_SRAM_SIZE REGION_32M
75 : #elif CONFIG_SRAM_SIZE <= 65536
76 : #define REGION_SRAM_SIZE REGION_64M
77 : #elif CONFIG_SRAM_SIZE <= 131072
78 : #define REGION_SRAM_SIZE REGION_128M
79 : #elif CONFIG_SRAM_SIZE <= 262144
80 : #define REGION_SRAM_SIZE REGION_256M
81 : #elif CONFIG_SRAM_SIZE <= 524288
82 : #define REGION_SRAM_SIZE REGION_512M
83 : #elif CONFIG_SRAM_SIZE <= 1048576
84 : #define REGION_SRAM_SIZE REGION_1G
85 : #elif CONFIG_SRAM_SIZE <= 2097152
86 : #define REGION_SRAM_SIZE REGION_2G
87 : #elif CONFIG_SRAM_SIZE <= 4194304
88 : #define REGION_SRAM_SIZE REGION_4G
89 : #else
90 : #error "Unsupported sram size configuration"
91 : #endif
92 :
93 : #endif /* !ARMV8_M_BASELINE && !ARMV8_M_MAINLINE */
94 :
95 : #endif /* _ARM_CORTEX_M_MPU_MEM_CFG_H_ */
|