Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
memory-attr-riscv.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
12
13#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_RISCV_H_
14#define ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_RISCV_H_
15
18
24
26#define DT_MEM_RISCV_MASK DT_MEM_ARCH_ATTR_MASK
27#define DT_MEM_RISCV(x) ((x) << DT_MEM_ARCH_ATTR_SHIFT)
28
29#define ATTR_RISCV_TYPE_MAIN BIT(0)
30#define ATTR_RISCV_TYPE_IO BIT(1)
31#define ATTR_RISCV_TYPE_IO_R BIT(2)
32#define ATTR_RISCV_TYPE_IO_W BIT(3)
33#define ATTR_RISCV_TYPE_IO_X BIT(4)
34#define ATTR_RISCV_TYPE_EMPTY BIT(5)
35#define ATTR_RISCV_AMO_SWAP BIT(6)
36#define ATTR_RISCV_AMO_LOGICAL BIT(7)
37#define ATTR_RISCV_AMO_ARITHMETIC BIT(8)
38#define ATTR_RISCV_IO_IDEMPOTENT_READ BIT(9)
39#define ATTR_RISCV_IO_IDEMPOTENT_WRITE BIT(10)
41
49 #define DT_MEM_RISCV_GET(x) ((x) & DT_MEM_RISCV_MASK)
50
52#define DT_MEM_RISCV_TYPE_MAIN DT_MEM_RISCV(ATTR_RISCV_TYPE_MAIN)
54#define DT_MEM_RISCV_TYPE_IO DT_MEM_RISCV(ATTR_RISCV_TYPE_IO)
56#define DT_MEM_RISCV_TYPE_IO_R DT_MEM_RISCV(ATTR_RISCV_TYPE_IO_R)
58#define DT_MEM_RISCV_TYPE_IO_W DT_MEM_RISCV(ATTR_RISCV_TYPE_IO_W)
60#define DT_MEM_RISCV_TYPE_IO_X DT_MEM_RISCV(ATTR_RISCV_TYPE_IO_X)
62#define DT_MEM_RISCV_TYPE_EMPTY DT_MEM_RISCV(ATTR_RISCV_TYPE_EMPTY)
64#define DT_MEM_RISCV_AMO_SWAP DT_MEM_RISCV(ATTR_RISCV_AMO_SWAP)
66#define DT_MEM_RISCV_AMO_LOGICAL DT_MEM_RISCV(ATTR_RISCV_AMO_LOGICAL)
68#define DT_MEM_RISCV_AMO_ARITHMETIC DT_MEM_RISCV(ATTR_RISCV_AMO_ARITHMETIC)
70#define DT_MEM_RISCV_IO_IDEMPOTENT_READ DT_MEM_RISCV(ATTR_RISCV_IO_IDEMPOTENT_READ)
72#define DT_MEM_RISCV_IO_IDEMPOTENT_WRITE DT_MEM_RISCV(ATTR_RISCV_IO_IDEMPOTENT_WRITE)
74#define DT_MEM_RISCV_UNKNOWN DT_MEM_ARCH_ATTR_UNKNOWN
75
77
78#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_MEM_ATTR_RISCV_H_ */
Generic devicetree memory attribute definitions.
Macro utilities.