.endm
 
 /*
- * Set SCTLR_EL1 to the passed value, and invalidate the local icache
+ * Set SCTLR_ELx to the @reg value, and invalidate the local icache
  * in the process. This is called when setting the MMU on.
  */
-.macro set_sctlr_el1, reg
-       msr     sctlr_el1, \reg
+.macro set_sctlr, sreg, reg
+       msr     \sreg, \reg
        isb
        /*
         * Invalidate the local I-cache so that any instructions fetched
        isb
 .endm
 
+.macro set_sctlr_el1, reg
+       set_sctlr sctlr_el1, \reg
+.endm
+
+.macro set_sctlr_el2, reg
+       set_sctlr sctlr_el2, \reg
+.endm
+
 /*
  * Check whether to yield to another runnable task from kernel mode NEON code
  * (which runs with preemption disabled).