diff --git a/plat/st/stm32mp1/bl2_plat_setup.c b/plat/st/stm32mp1/bl2_plat_setup.c
index 1d20c7155726a65501245f1d1d43349055107ad5..d20f156fa8d6246b8eda434fdde9245e84d92535 100644
--- a/plat/st/stm32mp1/bl2_plat_setup.c
+++ b/plat/st/stm32mp1/bl2_plat_setup.c
@@ -142,10 +142,6 @@ void bl2_platform_setup(void)
 	int ret;
 	uint32_t ddr_ns_size;
 
-	if (dt_pmic_status() > 0) {
-		initialize_pmic();
-	}
-
 	ret = stm32mp1_ddr_probe();
 	if (ret < 0) {
 		ERROR("Invalid DDR init: error %d\n", ret);
@@ -398,6 +394,10 @@ skip_console_init:
 
 	update_monotonic_counter();
 
+	if (dt_pmic_status() > 0) {
+		initialize_pmic();
+	}
+
 	stm32mp_io_setup();
 }