Got IT!!
---
plat/st/stm32mp1/bl2_plat_setup.c | 10 +++++++---
plat/st/stm32mp1/stm32mp1_ssp.c | 10 +++++++---
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/plat/st/stm32mp1/bl2_plat_setup.c b/plat/st/stm32mp1/bl2_plat_setup.c
index 6232d7b..795cefe 100644
--- a/plat/st/stm32mp1/bl2_plat_setup.c
+++ b/plat/st/stm32mp1/bl2_plat_setup.c
@@ -286,10 +286,14 @@ void bl2_el3_plat_arch_setup(void)
}
/* Set minimum reset pulse duration to 31ms for discrete power supplied boards */
- if (dt_pmic_status() <= 0) {
- mmio_clrsetbits_32(rcc_base + RCC_RDLSICR, RCC_RDLSICR_MRD_MASK,
+ // if (dt_pmic_status() <= 0) {
+ // mmio_clrsetbits_32(rcc_base + RCC_RDLSICR, RCC_RDLSICR_MRD_MASK,
+ // 31U << RCC_RDLSICR_MRD_SHIFT);
+ // }
+
+ //SS set minimum reset pulse duration MDR register to 31 ms for ALL configurations
+ mmio_clrsetbits_32(rcc_base + RCC_RDLSICR, RCC_RDLSICR_MRD_MASK,
31U << RCC_RDLSICR_MRD_SHIFT);
- }
generic_delay_timer_init();
diff --git a/plat/st/stm32mp1/stm32mp1_ssp.c b/plat/st/stm32mp1/stm32mp1_ssp.c
index 14ce023..9900672 100644
--- a/plat/st/stm32mp1/stm32mp1_ssp.c
+++ b/plat/st/stm32mp1/stm32mp1_ssp.c
@@ -927,10 +927,14 @@ void bl2_el3_plat_arch_setup(void)
}
/* Set minimum reset pulse duration to 31ms for discrete power supplied boards */
- if (dt_pmic_status() <= 0) {
- mmio_clrsetbits_32(rcc_base + RCC_RDLSICR, RCC_RDLSICR_MRD_MASK,
+ // if (dt_pmic_status() <= 0) {
+ // mmio_clrsetbits_32(rcc_base + RCC_RDLSICR, RCC_RDLSICR_MRD_MASK,
+ // 31U << RCC_RDLSICR_MRD_SHIFT);
+ // }
+
+ //SS set minimum reset pulse duration MDR register to 31 ms for ALL configurations
+ mmio_clrsetbits_32(rcc_base + RCC_RDLSICR, RCC_RDLSICR_MRD_MASK,
31U << RCC_RDLSICR_MRD_SHIFT);
- }
generic_delay_timer_init();
--
2.25.1
I patched both bl2_plat_setup.c and stm32mp1_ssp.c and it works (yes, I bypassed the check of the pmic status/mode), now when I reset the board I can see 31ms on the signal.