xref: /rk3399_ARM-atf/plat/rockchip/rk3588/drivers/secure/secure.h (revision 44418fce30938ee483fbfc79cc32fde33753d1aa)
1*e3ec6ff4SXiaoDong Huang /*
2*e3ec6ff4SXiaoDong Huang  * Copyright (c) 2024, Rockchip, Inc. All rights reserved.
3*e3ec6ff4SXiaoDong Huang  *
4*e3ec6ff4SXiaoDong Huang  * SPDX-License-Identifier: BSD-3-Clause
5*e3ec6ff4SXiaoDong Huang  */
6*e3ec6ff4SXiaoDong Huang 
7*e3ec6ff4SXiaoDong Huang #ifndef SECURE_H
8*e3ec6ff4SXiaoDong Huang #define SECURE_H
9*e3ec6ff4SXiaoDong Huang 
10*e3ec6ff4SXiaoDong Huang /* DSUSGRF */
11*e3ec6ff4SXiaoDong Huang #define DSU_SGRF_SOC_CON(i)		((i) * 4)
12*e3ec6ff4SXiaoDong Huang #define DSUSGRF_SOC_CON(i)		((i) * 4)
13*e3ec6ff4SXiaoDong Huang #define DSUSGRF_SOC_CON_CNT		13
14*e3ec6ff4SXiaoDong Huang #define DSUSGRF_DDR_HASH_CON(i)		(0x240 + (i) * 4)
15*e3ec6ff4SXiaoDong Huang #define DSUSGRF_DDR_HASH_CON_CNT	8
16*e3ec6ff4SXiaoDong Huang 
17*e3ec6ff4SXiaoDong Huang /* PMUSGRF */
18*e3ec6ff4SXiaoDong Huang #define PMU1SGRF_SOC_CON(n)		((n) * 4)
19*e3ec6ff4SXiaoDong Huang 
20*e3ec6ff4SXiaoDong Huang /* SGRF */
21*e3ec6ff4SXiaoDong Huang #define SGRF_SOC_CON(i)			((i) * 4)
22*e3ec6ff4SXiaoDong Huang #define SGRF_FIREWALL_CON(i)		(0x240 + (i) * 4)
23*e3ec6ff4SXiaoDong Huang #define SGRF_FIREWALL_CON_CNT		32
24*e3ec6ff4SXiaoDong Huang 
25*e3ec6ff4SXiaoDong Huang /* ddr firewall */
26*e3ec6ff4SXiaoDong Huang #define FIREWALL_DDR_RGN(i)		((i) * 0x4)
27*e3ec6ff4SXiaoDong Huang #define FIREWALL_DDR_RGN_CNT		16
28*e3ec6ff4SXiaoDong Huang #define FIREWALL_DDR_MST(i)		(0x40 + (i) * 0x4)
29*e3ec6ff4SXiaoDong Huang #define FIREWALL_DDR_MST_CNT		42
30*e3ec6ff4SXiaoDong Huang #define FIREWALL_DDR_CON		0xf0
31*e3ec6ff4SXiaoDong Huang 
32*e3ec6ff4SXiaoDong Huang #define FIREWALL_SYSMEM_RGN(i)		((i) * 0x4)
33*e3ec6ff4SXiaoDong Huang #define FIREWALL_SYSMEM_RGN_CNT		8
34*e3ec6ff4SXiaoDong Huang #define FIREWALL_SYSMEM_MST(i)		(0x40 + (i) * 0x4)
35*e3ec6ff4SXiaoDong Huang #define FIREWALL_SYSMEM_MST_CNT		43
36*e3ec6ff4SXiaoDong Huang #define FIREWALL_SYSMEM_CON		0xf0
37*e3ec6ff4SXiaoDong Huang 
38*e3ec6ff4SXiaoDong Huang #define FIREWALL_DSU_RGN(i)		((i) * 0x4)
39*e3ec6ff4SXiaoDong Huang #define FIREWALL_DSU_RGN_CNT		16
40*e3ec6ff4SXiaoDong Huang #define FIREWALL_DSU_MST(i)		(0x40 + (i) * 0x4)
41*e3ec6ff4SXiaoDong Huang #define FIREWALL_DSU_MST_CNT		2
42*e3ec6ff4SXiaoDong Huang #define FIREWALL_DSU_CON(i)		(0xf0 + (i) * 4)
43*e3ec6ff4SXiaoDong Huang #define FIREWALL_DSU_CON_CNT		4
44*e3ec6ff4SXiaoDong Huang 
45*e3ec6ff4SXiaoDong Huang #define PLAT_MAX_DDR_CAPACITY_MB	0x8000	/* for 32Gb */
46*e3ec6ff4SXiaoDong Huang #define RG_MAP_SECURE(top, base)	\
47*e3ec6ff4SXiaoDong Huang 	(((((top) - 1) & 0x7fff) << 16) | ((base) & 0x7fff))
48*e3ec6ff4SXiaoDong Huang #define RG_MAP_SRAM_SECURE(top_kb, base_kb)	\
49*e3ec6ff4SXiaoDong Huang 	(((((top_kb) / 4 - 1) & 0xff) << 16) | ((base_kb) / 4 & 0xff))
50*e3ec6ff4SXiaoDong Huang 
51*e3ec6ff4SXiaoDong Huang void secure_timer_init(void);
52*e3ec6ff4SXiaoDong Huang void sgrf_init(void);
53*e3ec6ff4SXiaoDong Huang 
54*e3ec6ff4SXiaoDong Huang #endif /* SECURE_H */
55