xref: /rk3399_ARM-atf/plat/arm/board/juno/juno_tzmp1_def.h (revision 60a23fd8dedbcd9b4ec63bcf04f4dc804edaee1b)
1*60a23fd8SSummer Qin /*
2*60a23fd8SSummer Qin  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3*60a23fd8SSummer Qin  *
4*60a23fd8SSummer Qin  * SPDX-License-Identifier: BSD-3-Clause
5*60a23fd8SSummer Qin  */
6*60a23fd8SSummer Qin 
7*60a23fd8SSummer Qin #ifndef __JUNO_TZMP1_DEF_H__
8*60a23fd8SSummer Qin #define __JUNO_TZMP1_DEF_H__
9*60a23fd8SSummer Qin 
10*60a23fd8SSummer Qin #include <plat_arm.h>
11*60a23fd8SSummer Qin 
12*60a23fd8SSummer Qin /*
13*60a23fd8SSummer Qin  * Public memory regions for both protected and non-protected mode
14*60a23fd8SSummer Qin  *
15*60a23fd8SSummer Qin  * OPTEE shared memory 0xFEE00000 - 0xFEFFFFFF
16*60a23fd8SSummer Qin  */
17*60a23fd8SSummer Qin #define JUNO_AP_TZC_SHARE_DRAM1_SIZE		ULL(0x02000000)
18*60a23fd8SSummer Qin #define JUNO_AP_TZC_SHARE_DRAM1_BASE		(ARM_AP_TZC_DRAM1_BASE - \
19*60a23fd8SSummer Qin 						 JUNO_AP_TZC_SHARE_DRAM1_SIZE)
20*60a23fd8SSummer Qin #define JUNO_AP_TZC_SHARE_DRAM1_END		(ARM_AP_TZC_DRAM1_BASE - 1)
21*60a23fd8SSummer Qin 
22*60a23fd8SSummer Qin /* ARM_MEDIA_FEATURES for MEDIA GPU Protect Mode Test */
23*60a23fd8SSummer Qin #define JUNO_TZC400_NSAID_FPGA_MEDIA_SECURE	8	/* GPU/DPU protected, VPU outbuf */
24*60a23fd8SSummer Qin #define JUNO_TZC400_NSAID_FPGA_VIDEO_PROTECTED	7	/* VPU protected */
25*60a23fd8SSummer Qin #define JUNO_TZC400_NSAID_FPGA_VIDEO_PRIVATE	10	/* VPU private (firmware) */
26*60a23fd8SSummer Qin 
27*60a23fd8SSummer Qin #define JUNO_VPU_TZC_PRIV_DRAM1_SIZE	ULL(0x02000000)
28*60a23fd8SSummer Qin #define JUNO_VPU_TZC_PRIV_DRAM1_BASE	(JUNO_AP_TZC_SHARE_DRAM1_BASE - \
29*60a23fd8SSummer Qin 					 JUNO_VPU_TZC_PRIV_DRAM1_SIZE)
30*60a23fd8SSummer Qin #define JUNO_VPU_TZC_PRIV_DRAM1_END	(JUNO_AP_TZC_SHARE_DRAM1_BASE - 1)
31*60a23fd8SSummer Qin 
32*60a23fd8SSummer Qin /* Video input protected buffer follows upper item */
33*60a23fd8SSummer Qin #define JUNO_VPU_TZC_PROT_DRAM1_SIZE	ULL(0x06000000)
34*60a23fd8SSummer Qin #define JUNO_VPU_TZC_PROT_DRAM1_BASE	(JUNO_VPU_TZC_PRIV_DRAM1_BASE - \
35*60a23fd8SSummer Qin 					 JUNO_VPU_TZC_PROT_DRAM1_SIZE)
36*60a23fd8SSummer Qin #define JUNO_VPU_TZC_PROT_DRAM1_END	(JUNO_VPU_TZC_PRIV_DRAM1_BASE - 1)
37*60a23fd8SSummer Qin 
38*60a23fd8SSummer Qin /* Video, graphics and display shares same NSAID and same protected buffer */
39*60a23fd8SSummer Qin #define JUNO_MEDIA_TZC_PROT_DRAM1_SIZE	ULL(0x0e000000)
40*60a23fd8SSummer Qin #define JUNO_MEDIA_TZC_PROT_DRAM1_BASE	(JUNO_VPU_TZC_PROT_DRAM1_BASE - \
41*60a23fd8SSummer Qin 					 JUNO_MEDIA_TZC_PROT_DRAM1_SIZE)
42*60a23fd8SSummer Qin #define JUNO_MEDIA_TZC_PROT_DRAM1_END	(JUNO_VPU_TZC_PROT_DRAM1_BASE - 1)
43*60a23fd8SSummer Qin 
44*60a23fd8SSummer Qin /* Rest of DRAM1 are Non-Secure public buffer */
45*60a23fd8SSummer Qin #define JUNO_NS_DRAM1_PT1_BASE		ARM_DRAM1_BASE
46*60a23fd8SSummer Qin #define JUNO_NS_DRAM1_PT1_END		(JUNO_MEDIA_TZC_PROT_DRAM1_BASE - 1)
47*60a23fd8SSummer Qin #define JUNO_NS_DRAM1_PT1_SIZE		(JUNO_NS_DRAM1_PT1_END -	\
48*60a23fd8SSummer Qin 					 JUNO_NS_DRAM1_PT1_BASE + 1)
49*60a23fd8SSummer Qin 
50*60a23fd8SSummer Qin /* TZC filter flags */
51*60a23fd8SSummer Qin #define JUNO_MEDIA_TZC_NS_DEV_ACCESS	(PLAT_ARM_TZC_NS_DEV_ACCESS |	\
52*60a23fd8SSummer Qin 		TZC_REGION_ACCESS_RD(JUNO_TZC400_NSAID_FPGA_MEDIA_SECURE))
53*60a23fd8SSummer Qin 
54*60a23fd8SSummer Qin /* VPU / GPU /DPU protected access */
55*60a23fd8SSummer Qin #define JUNO_MEDIA_TZC_PROT_ACCESS \
56*60a23fd8SSummer Qin 		(TZC_REGION_ACCESS_RDWR(JUNO_TZC400_NSAID_FPGA_MEDIA_SECURE) | \
57*60a23fd8SSummer Qin 		TZC_REGION_ACCESS_WR(TZC400_NSAID_AP))
58*60a23fd8SSummer Qin 
59*60a23fd8SSummer Qin #define JUNO_VPU_TZC_PROT_ACCESS \
60*60a23fd8SSummer Qin 		(TZC_REGION_ACCESS_RDWR(JUNO_TZC400_NSAID_FPGA_VIDEO_PROTECTED))
61*60a23fd8SSummer Qin 
62*60a23fd8SSummer Qin #define JUNO_VPU_TZC_PRIV_ACCESS \
63*60a23fd8SSummer Qin 		(TZC_REGION_ACCESS_RDWR(JUNO_TZC400_NSAID_FPGA_VIDEO_PRIVATE))
64*60a23fd8SSummer Qin 
65*60a23fd8SSummer Qin /*******************************************************************************
66*60a23fd8SSummer Qin  * Mali-DP650 related constants
67*60a23fd8SSummer Qin  ******************************************************************************/
68*60a23fd8SSummer Qin /* Base address of DP650 */
69*60a23fd8SSummer Qin #define DP650_BASE			0x6f200000
70*60a23fd8SSummer Qin /* offset to PROT_NSAID register */
71*60a23fd8SSummer Qin #define DP650_PROT_NSAID_OFFSET		0x10004
72*60a23fd8SSummer Qin /* config to PROT_NSAID register */
73*60a23fd8SSummer Qin #define DP650_PROT_NSAID_CONFIG		0x08008888
74*60a23fd8SSummer Qin 
75*60a23fd8SSummer Qin /*******************************************************************************
76*60a23fd8SSummer Qin  * Mali-V550 related constants
77*60a23fd8SSummer Qin  ******************************************************************************/
78*60a23fd8SSummer Qin /* Base address of V550 */
79*60a23fd8SSummer Qin #define V550_BASE			0x6f030000
80*60a23fd8SSummer Qin /* offset to PROTCTRL register */
81*60a23fd8SSummer Qin #define V550_PROTCTRL_OFFSET		0x0040
82*60a23fd8SSummer Qin /* config to PROTCTRL register */
83*60a23fd8SSummer Qin #define V550_PROTCTRL_CONFIG		0xa8700000
84*60a23fd8SSummer Qin 
85*60a23fd8SSummer Qin #endif /* __JUNO_TZMP1_DEF_H__ */
86