Line data Source code
1 0 : /* 2 : * Copyright (c) 2023 Carlo Caione <ccaione@baylibre.com> 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_ARM_H_ 7 : #define ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_ARM_H_ 8 : 9 : #include <zephyr/sys/util_macro.h> 10 : #include <zephyr/dt-bindings/memory-attr/memory-attr.h> 11 : 12 : /* 13 : * Architecture specific ARM MPU related attributes. 14 : * 15 : * This list is to seamlessly support the MPU regions configuration using DT and 16 : * the `zephyr,memory-attr` property. 17 : * 18 : * This is legacy and it should NOT be extended further. If new MPU region 19 : * types must be added, these must rely on the generic memory attributes. 20 : */ 21 0 : #define DT_MEM_ARM_MASK DT_MEM_ARCH_ATTR_MASK 22 0 : #define DT_MEM_ARM_GET(x) ((x) & DT_MEM_ARM_MASK) 23 0 : #define DT_MEM_ARM(x) ((x) << DT_MEM_ARCH_ATTR_SHIFT) 24 : 25 0 : #define ATTR_MPU_RAM BIT(0) 26 0 : #define ATTR_MPU_RAM_NOCACHE BIT(1) 27 0 : #define ATTR_MPU_FLASH BIT(2) 28 0 : #define ATTR_MPU_PPB BIT(3) 29 0 : #define ATTR_MPU_IO BIT(4) 30 0 : #define ATTR_MPU_EXTMEM BIT(5) 31 : 32 0 : #define DT_MEM_ARM_MPU_RAM DT_MEM_ARM(ATTR_MPU_RAM) 33 0 : #define DT_MEM_ARM_MPU_RAM_NOCACHE DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) 34 0 : #define DT_MEM_ARM_MPU_FLASH DT_MEM_ARM(ATTR_MPU_FLASH) 35 0 : #define DT_MEM_ARM_MPU_PPB DT_MEM_ARM(ATTR_MPU_PPB) 36 0 : #define DT_MEM_ARM_MPU_IO DT_MEM_ARM(ATTR_MPU_IO) 37 0 : #define DT_MEM_ARM_MPU_EXTMEM DT_MEM_ARM(ATTR_MPU_EXTMEM) 38 0 : #define DT_MEM_ARM_MPU_UNKNOWN DT_MEM_ARCH_ATTR_UNKNOWN 39 : 40 : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_ARM_H_ */