Hi Uwe, thanks for the patch. On 22-07-06, Uwe Kleine-König wrote: ... > @@ -96,11 +92,6 @@ extern struct dram_timing_info imx8mm_evk_dram_timing; > > static void start_atf(void) > { > - size_t bl31_size; > - const u8 *bl31; > - enum bootsource src; > - int instance; > - > /* > * If we are in EL3 we are running for the first time and need to > * initialize the DRAM and run TF-A (BL31). The TF-A will then jump > @@ -112,35 +103,7 @@ static void start_atf(void) > power_init_board(); > imx8mm_ddr_init(&imx8mm_evk_dram_timing); I would move the imx8mm_ddr_init() into your helper imx8mm_load_and_start_image_via_tfa() and pass the timing as argument. So your helper doesn't depend on the 'hopefully' intialized DRAM. Else I would add a comment above your helper, that the DRAM must be initialized before calling this function. Regards, Marco