xref: /rk3399_ARM-atf/plat/arm/board/juno/juno_tzmp1_def.h (revision 9f0f203d7e180480e95f5a261125a96dee1d65e4)
160a23fd8SSummer Qin /*
260a23fd8SSummer Qin  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
360a23fd8SSummer Qin  *
460a23fd8SSummer Qin  * SPDX-License-Identifier: BSD-3-Clause
560a23fd8SSummer Qin  */
660a23fd8SSummer Qin 
7*c3cf06f1SAntonio Nino Diaz #ifndef JUNO_TZMP1_DEF_H
8*c3cf06f1SAntonio Nino Diaz #define JUNO_TZMP1_DEF_H
960a23fd8SSummer Qin 
1060a23fd8SSummer Qin /*
1160a23fd8SSummer Qin  * Public memory regions for both protected and non-protected mode
1260a23fd8SSummer Qin  *
1360a23fd8SSummer Qin  * OPTEE shared memory 0xFEE00000 - 0xFEFFFFFF
1460a23fd8SSummer Qin  */
1560a23fd8SSummer Qin #define JUNO_AP_TZC_SHARE_DRAM1_SIZE		ULL(0x02000000)
1660a23fd8SSummer Qin #define JUNO_AP_TZC_SHARE_DRAM1_BASE		(ARM_AP_TZC_DRAM1_BASE - \
1760a23fd8SSummer Qin 						 JUNO_AP_TZC_SHARE_DRAM1_SIZE)
1860a23fd8SSummer Qin #define JUNO_AP_TZC_SHARE_DRAM1_END		(ARM_AP_TZC_DRAM1_BASE - 1)
1960a23fd8SSummer Qin 
2060a23fd8SSummer Qin /* ARM_MEDIA_FEATURES for MEDIA GPU Protect Mode Test */
2160a23fd8SSummer Qin #define JUNO_TZC400_NSAID_FPGA_MEDIA_SECURE	8	/* GPU/DPU protected, VPU outbuf */
2260a23fd8SSummer Qin #define JUNO_TZC400_NSAID_FPGA_VIDEO_PROTECTED	7	/* VPU protected */
2360a23fd8SSummer Qin #define JUNO_TZC400_NSAID_FPGA_VIDEO_PRIVATE	10	/* VPU private (firmware) */
2460a23fd8SSummer Qin 
2560a23fd8SSummer Qin #define JUNO_VPU_TZC_PRIV_DRAM1_SIZE	ULL(0x02000000)
2660a23fd8SSummer Qin #define JUNO_VPU_TZC_PRIV_DRAM1_BASE	(JUNO_AP_TZC_SHARE_DRAM1_BASE - \
2760a23fd8SSummer Qin 					 JUNO_VPU_TZC_PRIV_DRAM1_SIZE)
2860a23fd8SSummer Qin #define JUNO_VPU_TZC_PRIV_DRAM1_END	(JUNO_AP_TZC_SHARE_DRAM1_BASE - 1)
2960a23fd8SSummer Qin 
3060a23fd8SSummer Qin /* Video input protected buffer follows upper item */
3160a23fd8SSummer Qin #define JUNO_VPU_TZC_PROT_DRAM1_SIZE	ULL(0x06000000)
3260a23fd8SSummer Qin #define JUNO_VPU_TZC_PROT_DRAM1_BASE	(JUNO_VPU_TZC_PRIV_DRAM1_BASE - \
3360a23fd8SSummer Qin 					 JUNO_VPU_TZC_PROT_DRAM1_SIZE)
3460a23fd8SSummer Qin #define JUNO_VPU_TZC_PROT_DRAM1_END	(JUNO_VPU_TZC_PRIV_DRAM1_BASE - 1)
3560a23fd8SSummer Qin 
3660a23fd8SSummer Qin /* Video, graphics and display shares same NSAID and same protected buffer */
3760a23fd8SSummer Qin #define JUNO_MEDIA_TZC_PROT_DRAM1_SIZE	ULL(0x0e000000)
3860a23fd8SSummer Qin #define JUNO_MEDIA_TZC_PROT_DRAM1_BASE	(JUNO_VPU_TZC_PROT_DRAM1_BASE - \
3960a23fd8SSummer Qin 					 JUNO_MEDIA_TZC_PROT_DRAM1_SIZE)
4060a23fd8SSummer Qin #define JUNO_MEDIA_TZC_PROT_DRAM1_END	(JUNO_VPU_TZC_PROT_DRAM1_BASE - 1)
4160a23fd8SSummer Qin 
4260a23fd8SSummer Qin /* Rest of DRAM1 are Non-Secure public buffer */
4360a23fd8SSummer Qin #define JUNO_NS_DRAM1_PT1_BASE		ARM_DRAM1_BASE
4460a23fd8SSummer Qin #define JUNO_NS_DRAM1_PT1_END		(JUNO_MEDIA_TZC_PROT_DRAM1_BASE - 1)
4560a23fd8SSummer Qin #define JUNO_NS_DRAM1_PT1_SIZE		(JUNO_NS_DRAM1_PT1_END -	\
4660a23fd8SSummer Qin 					 JUNO_NS_DRAM1_PT1_BASE + 1)
4760a23fd8SSummer Qin 
4860a23fd8SSummer Qin /* TZC filter flags */
4960a23fd8SSummer Qin #define JUNO_MEDIA_TZC_NS_DEV_ACCESS	(PLAT_ARM_TZC_NS_DEV_ACCESS |	\
5060a23fd8SSummer Qin 		TZC_REGION_ACCESS_RD(JUNO_TZC400_NSAID_FPGA_MEDIA_SECURE))
5160a23fd8SSummer Qin 
5260a23fd8SSummer Qin /* VPU / GPU /DPU protected access */
5360a23fd8SSummer Qin #define JUNO_MEDIA_TZC_PROT_ACCESS \
5460a23fd8SSummer Qin 		(TZC_REGION_ACCESS_RDWR(JUNO_TZC400_NSAID_FPGA_MEDIA_SECURE) | \
5560a23fd8SSummer Qin 		TZC_REGION_ACCESS_WR(TZC400_NSAID_AP))
5660a23fd8SSummer Qin 
5760a23fd8SSummer Qin #define JUNO_VPU_TZC_PROT_ACCESS \
5860a23fd8SSummer Qin 		(TZC_REGION_ACCESS_RDWR(JUNO_TZC400_NSAID_FPGA_VIDEO_PROTECTED))
5960a23fd8SSummer Qin 
6060a23fd8SSummer Qin #define JUNO_VPU_TZC_PRIV_ACCESS \
6160a23fd8SSummer Qin 		(TZC_REGION_ACCESS_RDWR(JUNO_TZC400_NSAID_FPGA_VIDEO_PRIVATE))
6260a23fd8SSummer Qin 
6360a23fd8SSummer Qin /*******************************************************************************
6460a23fd8SSummer Qin  * Mali-DP650 related constants
6560a23fd8SSummer Qin  ******************************************************************************/
6660a23fd8SSummer Qin /* Base address of DP650 */
6760a23fd8SSummer Qin #define DP650_BASE			0x6f200000
6860a23fd8SSummer Qin /* offset to PROT_NSAID register */
6960a23fd8SSummer Qin #define DP650_PROT_NSAID_OFFSET		0x10004
7060a23fd8SSummer Qin /* config to PROT_NSAID register */
7160a23fd8SSummer Qin #define DP650_PROT_NSAID_CONFIG		0x08008888
7260a23fd8SSummer Qin 
7360a23fd8SSummer Qin /*******************************************************************************
7460a23fd8SSummer Qin  * Mali-V550 related constants
7560a23fd8SSummer Qin  ******************************************************************************/
7660a23fd8SSummer Qin /* Base address of V550 */
7760a23fd8SSummer Qin #define V550_BASE			0x6f030000
7860a23fd8SSummer Qin /* offset to PROTCTRL register */
7960a23fd8SSummer Qin #define V550_PROTCTRL_OFFSET		0x0040
8060a23fd8SSummer Qin /* config to PROTCTRL register */
8160a23fd8SSummer Qin #define V550_PROTCTRL_CONFIG		0xa8700000
8260a23fd8SSummer Qin 
83*c3cf06f1SAntonio Nino Diaz #endif /* JUNO_TZMP1_DEF_H */
84