arm: socfpga: spl: Notify SDM on FSBL execution
authorAlif Zakuan Yuslaimi <alif.zakuan.yuslaimi@altera.com>
Tue, 11 Mar 2025 06:38:52 +0000 (23:38 -0700)
committerTien Fong Chee <tien.fong.chee@intel.com>
Tue, 22 Apr 2025 03:47:39 +0000 (11:47 +0800)
Send out "HPS_STAGE_NOTIFY" mailbox command to the
Secure Device Manager (SDM) in SPL to inform SDM on
FSBL execution.

This is necessary for the SDM to recognize that the
FSBL stage has begun its execution and should be
made as early as possible in the FSBL process.

Therefore, the mailbox will initialize and send out
the notification right after the completion of timer
initialization.

Signed-off-by: Mahesh Rao <mahesh.rao@altera.com>
Signed-off-by: Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi@altera.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@altera.com>
arch/arm/mach-socfpga/spl_agilex.c
arch/arm/mach-socfpga/spl_agilex5.c
arch/arm/mach-socfpga/spl_n5x.c
arch/arm/mach-socfpga/spl_s10.c

index 52617a3..91c27a5 100644 (file)
@@ -50,6 +50,10 @@ void board_init_f(ulong dummy)
 
        timer_init();
 
+       mbox_init();
+
+       mbox_hps_stage_notify(HPS_EXECUTION_STATE_FSBL);
+
        sysmgr_pinmux_init();
 
        ret = uclass_get_device(UCLASS_CLK, 0, &dev);
@@ -77,8 +81,6 @@ void board_init_f(ulong dummy)
        }
 #endif
 
-       mbox_init();
-
 #ifdef CONFIG_CADENCE_QSPI
        mbox_qspi_open();
 #endif
index 3451611..a9aad53 100644 (file)
@@ -62,6 +62,10 @@ void board_init_f(ulong dummy)
 
        timer_init();
 
+       mbox_init();
+
+       mbox_hps_stage_notify(HPS_EXECUTION_STATE_FSBL);
+
        ret = uclass_get_device(UCLASS_CLK, 0, &dev);
        if (ret) {
                debug("Clock init failed: %d\n", ret);
@@ -100,8 +104,6 @@ void board_init_f(ulong dummy)
                }
        }
 
-       mbox_init();
-
        if (IS_ENABLED(CONFIG_CADENCE_QSPI))
                mbox_qspi_open();
 
index 5ff137e..81283ef 100644 (file)
@@ -49,6 +49,10 @@ void board_init_f(ulong dummy)
 
        timer_init();
 
+       mbox_init();
+
+       mbox_hps_stage_notify(HPS_EXECUTION_STATE_FSBL);
+
        sysmgr_pinmux_init();
 
        preloader_console_init();
@@ -84,8 +88,6 @@ void board_init_f(ulong dummy)
        }
 #endif
 
-       mbox_init();
-
 #ifdef CONFIG_CADENCE_QSPI
        mbox_qspi_open();
 #endif
index 53852cb..fa83ff9 100644 (file)
@@ -52,6 +52,10 @@ void board_init_f(ulong dummy)
        socfpga_per_reset(SOCFPGA_RESET(OSC1TIMER0), 0);
        timer_init();
 
+       mbox_init();
+
+       mbox_hps_stage_notify(HPS_EXECUTION_STATE_FSBL);
+
        sysmgr_pinmux_init();
 
        /* configuring the HPS clocks */
@@ -84,8 +88,6 @@ void board_init_f(ulong dummy)
                }
 #endif
 
-       mbox_init();
-
 #ifdef CONFIG_CADENCE_QSPI
        mbox_qspi_open();
 #endif