1 /* 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 #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 #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_ */ 96