xref: /rk3399_ARM-atf/fdts/stmm_common.dtsi (revision 5feb20822a68242b63d46f6811357e8c4cf1d74c)
1*8d66892aSYeoreum Yun/*
2*8d66892aSYeoreum Yun * Copyright (c) 2025, Arm Limited and Contributors. All rights reserved.
3*8d66892aSYeoreum Yun *
4*8d66892aSYeoreum Yun * SPDX-License-Identifier: BSD-3-Clause
5*8d66892aSYeoreum Yun */
6*8d66892aSYeoreum Yun
7*8d66892aSYeoreum Yun#ifndef _STMM_COMMON_DTSI
8*8d66892aSYeoreum Yun#define _STMM_COMMON_DTSI
9*8d66892aSYeoreum Yun
10*8d66892aSYeoreum Yun#define ES_AARCH32		(1)
11*8d66892aSYeoreum Yun#define ES_AARCH64		(0)
12*8d66892aSYeoreum Yun
13*8d66892aSYeoreum Yun#define TG_4KB			(0x0)
14*8d66892aSYeoreum Yun#define TG_16KB			(0x1)
15*8d66892aSYeoreum Yun#define TG_64KB			(0x2)
16*8d66892aSYeoreum Yun
17*8d66892aSYeoreum Yun#define MODE_SEL0		(0x1)
18*8d66892aSYeoreum Yun#define MODE_SEL1		(0x2)
19*8d66892aSYeoreum Yun
20*8d66892aSYeoreum Yun#define SECURE_RO		(0x1)
21*8d66892aSYeoreum Yun#define SECURE_RW		(0x3)
22*8d66892aSYeoreum Yun#define SECURE_EXECUTE_RO	(0x5)
23*8d66892aSYeoreum Yun#define SECURE_EXECUTE_RW	(0x7)
24*8d66892aSYeoreum Yun#define NON_SECURE_RO		(0x9)
25*8d66892aSYeoreum Yun#define NON_SECURE_RW		(0xB)
26*8d66892aSYeoreum Yun#define NON_SECURE_EXECUTE_RO	(0xD)
27*8d66892aSYeoreum Yun#define NON_SECURE_EXECUTE_RW	(0xF)
28*8d66892aSYeoreum Yun
29*8d66892aSYeoreum Yun#define PAGE_SHIFT		(12)
30*8d66892aSYeoreum Yun#define PAGE_ALIGN(x)		((x) & ~(PAGE_SHIFT -1))
31*8d66892aSYeoreum Yun#define PAGE_ALIGN_UP(x)	((x + (PAGE_SHIFT - 1)) & ~(PAGE_SHIFT - 1))
32*8d66892aSYeoreum Yun#define PAGE_COUNT(size)	(PAGE_ALIGN_UP(size) >> PAGE_SHIFT)
33*8d66892aSYeoreum Yun
34*8d66892aSYeoreum Yun#define ADDR_INIT(addr) \
35*8d66892aSYeoreum Yun	(PAGE_ALIGN(addr) >> 32) (PAGE_ALIGN(addr) & 0xffffffff)
36*8d66892aSYeoreum Yun
37*8d66892aSYeoreum Yun#define SIZE_INIT(size) \
38*8d66892aSYeoreum Yun	((size) >> 32) ((size) & 0xffffffff)
39*8d66892aSYeoreum Yun
40*8d66892aSYeoreum Yun#define UUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)	\
41*8d66892aSYeoreum Yun	((((a) >> 24) & 0xff) | ((((a) >> 16) & 0xff) << 8) |	\
42*8d66892aSYeoreum Yun	 ((((a) >> 8) & 0xff) << 16) | (((a) & 0xff) << 24))	\
43*8d66892aSYeoreum Yun	((((b) >> 8) & 0xff) | (((b) & 0xff) << 8) |		\
44*8d66892aSYeoreum Yun	 ((((c) >> 8) & 0xff) << 16) | (((c) & 0xff) << 24))	\
45*8d66892aSYeoreum Yun	(((d0) & 0xff) | (((d1) & 0xff) << 8) |			\
46*8d66892aSYeoreum Yun	 (((d2) & 0xff) << 16) | (((d3) & 0xff) << 24))		\
47*8d66892aSYeoreum Yun	(((d4) & 0xff) | (((d5) & 0xff) << 8) |			\
48*8d66892aSYeoreum Yun	 (((d6) & 0xff) << 16) | (((d7) & 0xff) << 24))
49*8d66892aSYeoreum Yun
50*8d66892aSYeoreum Yun#endif /* _STMM_COMMON_DTSI */
51*8d66892aSYeoreum Yun
52