Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
memory-attr-arm64.h
Go to the documentation of this file.
1
9#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_ARM64_H_
10#define ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_ARM64_H_
11
13
18
20#define DT_MEM_ARM64_MASK DT_MEM_ARCH_ATTR_MASK
21
26#define DT_MEM_ARM64_GET(x) ((x) & DT_MEM_ARM64_MASK)
27
32#define DT_MEM_ARM64(x) ((x) << DT_MEM_ARCH_ATTR_SHIFT)
33
34/*
35 * Architecture-specific sub-attribute bits (before shifting).
36 *
37 * These refine the generic DT_MEM_* attributes for ARM64. They occupy
38 * bits [31:20] of the zephyr,memory-attr value via DT_MEM_ARM64().
39 */
40
42#define ATTR_ARM64_CACHE_WB BIT(1)
43
44/*
45 * Convenience macros: combinations of generic + arch-specific attributes.
46 *
47 * Following the subsystem's composable-bitmask design, each macro is
48 * built from the generic DT_MEM_CACHEABLE flag and architecture-specific
49 * sub-attributes rather than standalone one-hot enumerations.
50 */
51
53#define DT_MEM_ARM64_MMU_NORMAL_NC (0)
55#define DT_MEM_ARM64_MMU_NORMAL_WT (DT_MEM_CACHEABLE)
57#define DT_MEM_ARM64_MMU_NORMAL (DT_MEM_CACHEABLE | \
58 DT_MEM_ARM64(ATTR_ARM64_CACHE_WB))
59
60#define DT_MEM_ARM64_MMU_UNKNOWN DT_MEM_ARCH_ATTR_UNKNOWN
61
63
64#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_ARM64_H_ */