extern bool gic_dist_disabled(void);
 extern void gic_timer_retrigger(void);
 extern void omap_smc1(u32 fn, u32 arg);
+extern void omap4_sar_ram_init(void);
 extern void __iomem *omap4_get_sar_ram_base(void);
 extern void omap_do_wfi(void);
 
 
        omap4xxx_check_revision();
        omap4xxx_check_features();
        omap2_prcm_base_init();
+       omap4_sar_ram_init();
        omap4_pm_init_early();
        omap44xx_voltagedomains_init();
        omap44xx_powerdomains_init();
        omap4_pm_init_early();
        omap2_prcm_base_init();
        omap5xxx_check_revision();
+       omap4_sar_ram_init();
        omap54xx_voltagedomains_init();
        omap54xx_powerdomains_init();
        omap54xx_clockdomains_init();
 
 }
 
 /*
- * SAR RAM used to save and restore the HW
- * context in low power modes
+ * SAR RAM used to save and restore the HW context in low power modes.
+ * Note that we need to initialize this very early for kexec. See
+ * omap4_mpuss_early_init().
  */
-static int __init omap4_sar_ram_init(void)
+void __init omap4_sar_ram_init(void)
 {
        unsigned long sar_base;
 
        else if (soc_is_omap54xx())
                sar_base = OMAP54XX_SAR_RAM_BASE;
        else
-               return -ENOMEM;
+               return;
 
        /* Static mapping, never released */
        sar_ram_base = ioremap(sar_base, SZ_16K);
        if (WARN_ON(!sar_ram_base))
-               return -ENOMEM;
-
-       return 0;
+               return;
 }
-omap_early_initcall(omap4_sar_ram_init);
 
 static const struct of_device_id intc_match[] = {
        { .compatible = "ti,omap4-wugen-mpu", },