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_ */