1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2016-2022, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu #ifndef MTK_PLAT_COMMON_H 7*91f16700Schasinglulu #define MTK_PLAT_COMMON_H 8*91f16700Schasinglulu 9*91f16700Schasinglulu #include <stdint.h> 10*91f16700Schasinglulu 11*91f16700Schasinglulu #include <common/bl_common.h> 12*91f16700Schasinglulu #include <common/param_header.h> 13*91f16700Schasinglulu 14*91f16700Schasinglulu /******************************************************************************* 15*91f16700Schasinglulu * Function and variable prototypes 16*91f16700Schasinglulu ******************************************************************************/ 17*91f16700Schasinglulu #define SMC32_PARAM_MASK (0xFFFFFFFF) 18*91f16700Schasinglulu 19*91f16700Schasinglulu #define JEDEC_MTK_BKID U(4) 20*91f16700Schasinglulu #define JEDEC_MTK_MFID U(0x26) 21*91f16700Schasinglulu 22*91f16700Schasinglulu struct mtk_bl31_params { 23*91f16700Schasinglulu param_header_t h; 24*91f16700Schasinglulu image_info_t *bl31_image_info; 25*91f16700Schasinglulu entry_point_info_t *bl32_ep_info; 26*91f16700Schasinglulu image_info_t *bl32_image_info; 27*91f16700Schasinglulu entry_point_info_t *bl33_ep_info; 28*91f16700Schasinglulu image_info_t *bl33_image_info; 29*91f16700Schasinglulu }; 30*91f16700Schasinglulu 31*91f16700Schasinglulu /* Declarations for mtk_plat_common.c */ 32*91f16700Schasinglulu uint32_t plat_get_spsr_for_bl32_entry(void); 33*91f16700Schasinglulu uint32_t plat_get_spsr_for_bl33_entry(void); 34*91f16700Schasinglulu void clean_top_32b_of_param(uint32_t smc_fid, u_register_t *x1, 35*91f16700Schasinglulu u_register_t *x2, 36*91f16700Schasinglulu u_register_t *x3, 37*91f16700Schasinglulu u_register_t *x4); 38*91f16700Schasinglulu void bl31_prepare_kernel_entry(uint64_t k32_64); 39*91f16700Schasinglulu void enable_ns_access_to_cpuectlr(void); 40*91f16700Schasinglulu void boot_to_kernel(uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4); 41*91f16700Schasinglulu uint64_t get_kernel_info_pc(void); 42*91f16700Schasinglulu uint64_t get_kernel_info_r0(void); 43*91f16700Schasinglulu uint64_t get_kernel_info_r1(void); 44*91f16700Schasinglulu uint64_t get_kernel_info_r2(void); 45*91f16700Schasinglulu 46*91f16700Schasinglulu extern struct atf_arg_t gteearg; 47*91f16700Schasinglulu #endif /* MTK_PLAT_COMMON_H */ 48