armv8: aarch64: Fix the warning about x1-x3 nonzero issue
For 64-bit kernel, there is a warning about x1-x3 nonzero in violation
of boot protocol. To fix this issue, input argument 4 is added for
armv8_switch_to_el2 and armv8_switch_to_el1. The input argument 4 will
be set to the right value, such as zero.
Signed-off-by: Alison Wang <alison.wang@nxp.com>
Reviewed-by: Alexander Graf <agraf@suse.de>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
Tested-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: York Sun <york.sun@nxp.com>
diff --git a/arch/arm/cpu/armv8/sec_firmware_asm.S b/arch/arm/cpu/armv8/sec_firmware_asm.S
index 903195d..5ed3677 100644
--- a/arch/arm/cpu/armv8/sec_firmware_asm.S
+++ b/arch/arm/cpu/armv8/sec_firmware_asm.S
@@ -57,7 +57,8 @@
* x0: argument, zero
* x1: machine nr
* x2: fdt address
- * x3: kernel entry point
+ * x3: input argument
+ * x4: kernel entry point
* @param outputs for secure firmware:
* x0: function id
* x1: kernel entry point
@@ -65,10 +66,9 @@
* x3: fdt address
*/
ENTRY(armv8_el2_to_aarch32)
- mov x0, x3
mov x3, x2
mov x2, x1
- mov x1, x0
+ mov x1, x4
ldr x0, =0xc000ff04
smc #0
ret