Extract the EL3 initialization from the entry function as cleanup and to
be able to adjust the el3_init code more easily.

Signed-off-by: Michael Tretter <[email protected]>
---
 arch/arm/mach-socfpga/atf.c | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git a/arch/arm/mach-socfpga/atf.c b/arch/arm/mach-socfpga/atf.c
index e1f0a3558b04..1fd11c426bc2 100644
--- a/arch/arm/mach-socfpga/atf.c
+++ b/arch/arm/mach-socfpga/atf.c
@@ -61,27 +61,32 @@ static void __noreturn 
agilex5_load_and_start_image_via_tfa(void)
        __builtin_unreachable();
 }
 
+static void agilex5_el3_init(void)
+{
+       agilex5_initialize_security_policies();
+       pr_debug("Security policies initialized\n");
+
+       /*
+        * need to set the bank select enable before the
+        * agilex5_ddr_init_full() otherwise the serial doesn't show
+        * anything.
+        */
+       if (!IS_ENABLED(CONFIG_DEBUG_LL))
+               writel(LCR_BKSE, SOCFPGA_UART0_ADDRESS + LCR);
+       agilex5_ddr_init_full();
+
+       socfpga_agilex5_qspi_init();
+
+       agilex5_load_and_start_image_via_tfa();
+}
+
 void __noreturn agilex5_barebox_entry(void *fdt)
 {
        phys_addr_t membase;
        phys_size_t memsize;
 
        if (current_el() == 3) {
-               agilex5_initialize_security_policies();
-               pr_debug("Security policies initialized\n");
-
-               /*
-                * need to set the bank select enable before the
-                * agilex5_ddr_init_full() otherwise the serial doesn't show
-                * anything.
-                */
-               if (!IS_ENABLED(CONFIG_DEBUG_LL))
-                       writel(LCR_BKSE, SOCFPGA_UART0_ADDRESS + LCR);
-               agilex5_ddr_init_full();
-
-               socfpga_agilex5_qspi_init();
-
-               agilex5_load_and_start_image_via_tfa();
+               agilex5_el3_init();
                __builtin_unreachable();
        }
 

-- 
2.47.3


Reply via email to