@ -29,6 +29,8 @@
# include <imx8m_csu.h>
# include <imx8m_csu.h>
# include <plat_imx8.h>
# include <plat_imx8.h>
# define TRUSTY_PARAMS_LEN_BYTES (4096*2)
static const mmap_region_t imx_mmap [ ] = {
static const mmap_region_t imx_mmap [ ] = {
MAP_REGION_FLAT ( IMX_GIC_BASE , IMX_GIC_SIZE , MT_DEVICE | MT_RW ) ,
MAP_REGION_FLAT ( IMX_GIC_BASE , IMX_GIC_SIZE , MT_DEVICE | MT_RW ) ,
MAP_REGION_FLAT ( IMX_AIPS_BASE , IMX_AIPS_SIZE , MT_DEVICE | MT_RW ) , /* AIPS map */
MAP_REGION_FLAT ( IMX_AIPS_BASE , IMX_AIPS_SIZE , MT_DEVICE | MT_RW ) , /* AIPS map */
@ -143,13 +145,17 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
bl33_image_ep_info . spsr = get_spsr_for_bl33_entry ( ) ;
bl33_image_ep_info . spsr = get_spsr_for_bl33_entry ( ) ;
SET_SECURITY_STATE ( bl33_image_ep_info . h . attr , NON_SECURE ) ;
SET_SECURITY_STATE ( bl33_image_ep_info . h . attr , NON_SECURE ) ;
# ifdef SPD_opteed
# if defined(SPD_opteed) || defined(SPD_trusty)
/* Populate entry point information for BL32 */
/* Populate entry point information for BL32 */
SET_PARAM_HEAD ( & bl32_image_ep_info , PARAM_EP , VERSION_1 , 0 ) ;
SET_PARAM_HEAD ( & bl32_image_ep_info , PARAM_EP , VERSION_1 , 0 ) ;
SET_SECURITY_STATE ( bl32_image_ep_info . h . attr , SECURE ) ;
SET_SECURITY_STATE ( bl32_image_ep_info . h . attr , SECURE ) ;
bl32_image_ep_info . pc = BL32_BASE ;
bl32_image_ep_info . pc = BL32_BASE ;
bl32_image_ep_info . spsr = 0 ;
bl32_image_ep_info . spsr = 0 ;
# ifdef SPD_trusty
bl32_image_ep_info . args . arg0 = BL32_SIZE ;
bl32_image_ep_info . args . arg1 = BL32_BASE ;
# endif
/* Pass TEE base and size to bl33 */
/* Pass TEE base and size to bl33 */
bl33_image_ep_info . args . arg1 = BL32_BASE ;
bl33_image_ep_info . args . arg1 = BL32_BASE ;
bl33_image_ep_info . args . arg2 = BL32_SIZE ;
bl33_image_ep_info . args . arg2 = BL32_SIZE ;
@ -169,6 +175,9 @@ void bl31_plat_arch_setup(void)
( BL_COHERENT_RAM_END - BL_COHERENT_RAM_BASE ) ,
( BL_COHERENT_RAM_END - BL_COHERENT_RAM_BASE ) ,
MT_DEVICE | MT_RW | MT_SECURE ) ;
MT_DEVICE | MT_RW | MT_SECURE ) ;
# endif
# endif
/* Map TEE memory */
mmap_add_region ( BL32_BASE , BL32_BASE , BL32_SIZE , MT_MEMORY | MT_RW ) ;
mmap_add ( imx_mmap ) ;
mmap_add ( imx_mmap ) ;
init_xlat_tables ( ) ;
init_xlat_tables ( ) ;
@ -203,3 +212,12 @@ unsigned int plat_get_syscnt_freq2(void)
{
{
return COUNTER_FREQUENCY ;
return COUNTER_FREQUENCY ;
}
}
# ifdef SPD_trusty
void plat_trusty_set_boot_args ( aapcs64_params_t * args )
{
args - > arg0 = BL32_SIZE ;
args - > arg1 = BL32_BASE ;
args - > arg2 = TRUSTY_PARAMS_LEN_BYTES ;
}
# endif