plat/hisilicon/poplar/bl1_plat_setup.c
/*******************************************************************************
 * Function that takes a memory layout into which BL2 has been loaded and
 * populates a new memory layout for BL2 that ensures that BL1's data sections
 * resident in secure RAM are not visible to BL2.
 ******************************************************************************/
Function that takes a memory layout into which BL2 has been loaded and
populates a new memory layout for BL2 that ensures that BL1's data sections
resident in secure RAM are not visible to BL2.
Function that takes a memory layout into which BL2 has been loaded and populates a new memory layout for BL2 that ensures that BL1 ' s data sections resident in secure RAM are not visible to BL2 .
void bl1_init_bl2_mem_layout(const meminfo_t *bl1_mem_layout,
			     meminfo_t *bl2_mem_layout)
{
	assert(bl1_mem_layout != NULL);
	assert(bl2_mem_layout != NULL);
	bl2_mem_layout->total_base = BL2_BASE;
	bl2_mem_layout->total_size = BL32_LIMIT - BL2_BASE;
	flush_dcache_range((unsigned long)bl2_mem_layout, sizeof(meminfo_t));
}
void bl1_init_bl2_mem_layout ( const meminfo_t * bl1_mem_layout , meminfo_t * bl2_mem_layout ) { assert ( bl1_mem_layout != NULL ) ; assert ( bl2_mem_layout != NULL ) ; bl2_mem_layout -> total_base = BL2_BASE ; bl2_mem_layout -> total_size = BL32_LIMIT - BL2_BASE ; flush_dcache_range ( ( unsigned long ) bl2_mem_layout , sizeof ( meminfo_t ) ) ; }
Function that takes a memory layout into which BL2 has been loaded and
 populates a new memory layout for BL2 that ensures that BL1's data sections
 resident in secure RAM are not visible to BL2.
Function that takes a memory layout into which BL2 has been loaded and populates a new memory layout for BL2 that ensures that BL1 ' s data sections resident in secure RAM are not visible to BL2 .
/*
	 * Cannot use default weak implementation in bl1main.c because
	 * BL1 RW data is not at the top of bl1_mem_layout
	 */