All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] armv8: aarch64: Fix the warning about x1-x3 nonzero issue
@ 2017-01-13  7:50 Alison Wang
  2017-01-13  8:11 ` Alexander Graf
  2017-01-13  8:16 ` Alison Wang
  0 siblings, 2 replies; 9+ messages in thread
From: Alison Wang @ 2017-01-13  7:50 UTC (permalink / raw)
  To: u-boot

For 64-bit kernel, there is a warning about x1-x3 nonzero in violation
of boot protocol. x3 should be reset to zero before jumping to the
kernel.

This patch will adjust the parameters to transfer and make sure x3 is
zero.

Signed-off-by: Alison Wang <alison.wang@nxp.com>
---
 arch/arm/cpu/armv8/transition.S | 44 +++++++++++++++++++++++++++++++++++++----
 1 file changed, 40 insertions(+), 4 deletions(-)

diff --git a/arch/arm/cpu/armv8/transition.S b/arch/arm/cpu/armv8/transition.S
index adb9f35..06b6664 100644
--- a/arch/arm/cpu/armv8/transition.S
+++ b/arch/arm/cpu/armv8/transition.S
@@ -26,9 +26,27 @@ ENTRY(armv8_switch_to_el2)
 	 * if CONFIG_ARMV8_SWITCH_TO_EL1 is defined.
          * When running in EL2 now, jump to the
 	 * address saved in x3.
+	 *
+	 * For 64-bit kernel, there is a warning about
+	 * x1-x3 nonzero in violation of boot protocol.
+	 * x3 should be reset to zero before jumping to
+	 * the kernel. Use x4 instead of x3 as parameter.
 	 */
-	br x3
-1:	armv8_switch_to_el2_m x3, x4, x5
+	mov x4, x3
+	mov x3, #0
+	br x4
+1:
+	/*
+	 * For 64-bit kernel, there is a warning about
+	 * x1-x3 nonzero in violation of boot protocol.
+	 * x3 should be reset to zero before jumping to
+	 * the kernel. Use x4, x5, x6 instead of x3, x4,
+	 * x5 as parameters.
+	 */
+	mov x5, x4
+	mov x4, x3
+	mov x3, #0
+	armv8_switch_to_el2_m x4, x5, x6
 ENDPROC(armv8_switch_to_el2)
 
 ENTRY(armv8_switch_to_el1)
@@ -36,9 +54,27 @@ ENTRY(armv8_switch_to_el1)
 0:
 	/* x3 is kernel entry point. When running in EL1
 	 * now, jump to the address saved in x3.
+	 *
+	 * For 64-bit kernel, there is a warning about
+	 * x1-x3 nonzero in violation of boot protocol.
+	 * x3 should be reset to zero before jumping to
+	 * the kernel. Use x4 instead of x3 as parameter.
+	 */
+	mov x4, x3
+	mov x3, #0
+	br x4
+1:
+	/*
+	 * For 64-bit kernel, there is a warning about
+	 * x1-x3 nonzero in violation of boot protocol.
+	 * x3 should be reset to zero before jumping to
+	 * the kernel. Use x4, x5, x6 instead of x3, x4,
+	 * x5 as parameters.
 	 */
-	br x3
-1:	armv8_switch_to_el1_m x3, x4, x5
+	mov x5, x4
+	mov x4, x3
+	mov x3, #0
+	armv8_switch_to_el1_m x4, x5, x6
 ENDPROC(armv8_switch_to_el1)
 
 WEAK(armv8_el2_to_aarch32)
-- 
2.1.0.27.g96db324

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-01-16  6:31 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-13  7:50 [U-Boot] [PATCH] armv8: aarch64: Fix the warning about x1-x3 nonzero issue Alison Wang
2017-01-13  8:11 ` Alexander Graf
2017-01-13  8:23   ` Alison Wang
2017-01-13  8:33     ` Alexander Graf
2017-01-13  9:36       ` Alison Wang
2017-01-13  9:55         ` Alexander Graf
2017-01-16  6:31           ` Alison Wang
2017-01-13  8:16 ` Alison Wang
     [not found]   ` <CAD0U-hKbBx=cYCCK1Wqd2TQsrC-D92ae0LPbdSk+unm0Y4LvVQ@mail.gmail.com>
     [not found]     ` <CAD0U-hLZnrfFWdC55s2owGue6yS4uniQXMeQUwaeWMq-g4sP+g@mail.gmail.com>
2017-01-13  8:41       ` Ryan Harkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.