Zephyr Project API
3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
memory-attr.h
Go to the documentation of this file.
1
/*
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_H_
7
#define ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_H_
8
9
#include <
zephyr/sys/util_macro.h
>
10
11
/*
12
* Generic memory attributes.
13
*
14
* Generic memory attributes that should be common to all architectures.
15
*/
16
#define DT_MEM_ATTR_MASK GENMASK(15, 0)
17
#define DT_MEM_ATTR_GET(x) ((x) & DT_MEM_ATTR_MASK)
18
#define DT_MEM_ATTR_SHIFT (0)
19
20
#define DT_MEM_CACHEABLE BIT(0)
/* cacheable */
21
#define DT_MEM_NON_VOLATILE BIT(1)
/* non-volatile */
22
#define DT_MEM_OOO BIT(2)
/* out-of-order */
23
#define DT_MEM_DMA BIT(3)
/* DMA-able */
24
#define DT_MEM_UNKNOWN BIT(15)
/* must be last */
25
/* to be continued */
26
27
/*
28
* Software specific memory attributes.
29
*
30
* Software can define their own memory attributes if needed using the
31
* provided mask.
32
*/
33
#define DT_MEM_SW_ATTR_MASK GENMASK(19, 16)
34
#define DT_MEM_SW_ATTR_GET(x) ((x) & DT_MEM_SW_ATTR_MASK)
35
#define DT_MEM_SW_ATTR_SHIFT (16)
36
#define DT_MEM_SW_ATTR_UNKNOWN BIT(19)
37
38
/*
39
* Architecture specific memory attributes.
40
*
41
* Architectures can define their own memory attributes if needed using the
42
* provided mask.
43
*
44
* See for example `include/zephyr/dt-bindings/memory-attr/memory-attr-arm.h`
45
*/
46
#define DT_MEM_ARCH_ATTR_MASK GENMASK(31, 20)
47
#define DT_MEM_ARCH_ATTR_GET(x) ((x) & DT_MEM_ARCH_ATTR_MASK)
48
#define DT_MEM_ARCH_ATTR_SHIFT (20)
49
#define DT_MEM_ARCH_ATTR_UNKNOWN BIT(31)
50
51
#endif
/* ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_H_ */
util_macro.h
Macro utilities.
include
zephyr
dt-bindings
memory-attr
memory-attr.h
Generated on Sun Sep 15 2024 17:01:30 for Zephyr Project API by
1.9.8