All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] MIPS: zboot: head.S clean up
@ 2020-12-30  3:47 Jiaxun Yang
  2020-12-31  0:28 ` Huacai Chen
  2021-01-04 10:41 ` Thomas Bogendoerfer
  0 siblings, 2 replies; 3+ messages in thread
From: Jiaxun Yang @ 2020-12-30  3:47 UTC (permalink / raw)
  To: linux-mips; +Cc: Jiaxun Yang, Paul Cercueil, Thomas Bogendoerfer, linux-kernel

.cprestore is removed as we don't expect Position Independent
zboot ELF.

.noreorder is also removed and rest instructions are massaged
to improve readability.

t9 register is used for indirect jump as MIPS ABI requirement.

start label is removed as it already defined in LEAF.

Reported-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>

--
v2: Remove start label (paul)
---
 arch/mips/boot/compressed/head.S | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/arch/mips/boot/compressed/head.S b/arch/mips/boot/compressed/head.S
index 409cb483a9ff..070b2fbabae4 100644
--- a/arch/mips/boot/compressed/head.S
+++ b/arch/mips/boot/compressed/head.S
@@ -15,10 +15,7 @@
 #include <asm/asm.h>
 #include <asm/regdef.h>
 
-	.set noreorder
-	.cprestore
 	LEAF(start)
-start:
 	/* Save boot rom start args */
 	move	s0, a0
 	move	s1, a1
@@ -35,21 +32,20 @@ start:
 	PTR_LA	a0, (.heap)	     /* heap address */
 	PTR_LA	sp, (.stack + 8192)  /* stack address */
 
-	PTR_LA	ra, 2f
-	PTR_LA	k0, decompress_kernel
-	jr	k0
-	 nop
+	PTR_LA	t9, decompress_kernel
+	jalr	t9
+
 2:
 	move	a0, s0
 	move	a1, s1
 	move	a2, s2
 	move	a3, s3
-	PTR_LI	k0, KERNEL_ENTRY
-	jr	k0
-	 nop
+	PTR_LI	t9, KERNEL_ENTRY
+	jalr	t9
+
 3:
 	b	3b
-	 nop
+
 	END(start)
 
 	.comm .heap,BOOT_HEAP_SIZE,4
-- 
2.30.0


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

* Re: [PATCH v3] MIPS: zboot: head.S clean up
  2020-12-30  3:47 [PATCH v3] MIPS: zboot: head.S clean up Jiaxun Yang
@ 2020-12-31  0:28 ` Huacai Chen
  2021-01-04 10:41 ` Thomas Bogendoerfer
  1 sibling, 0 replies; 3+ messages in thread
From: Huacai Chen @ 2020-12-31  0:28 UTC (permalink / raw)
  To: Jiaxun Yang; +Cc: open list:MIPS, Paul Cercueil, Thomas Bogendoerfer, LKML

Reviewed-by: Huacai Chen <chenhuacai@kernel.org>

On Wed, Dec 30, 2020 at 11:49 AM Jiaxun Yang <jiaxun.yang@flygoat.com> wrote:
>
> .cprestore is removed as we don't expect Position Independent
> zboot ELF.
>
> .noreorder is also removed and rest instructions are massaged
> to improve readability.
>
> t9 register is used for indirect jump as MIPS ABI requirement.
>
> start label is removed as it already defined in LEAF.
>
> Reported-by: Paul Cercueil <paul@crapouillou.net>
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
>
> --
> v2: Remove start label (paul)
> ---
>  arch/mips/boot/compressed/head.S | 18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/arch/mips/boot/compressed/head.S b/arch/mips/boot/compressed/head.S
> index 409cb483a9ff..070b2fbabae4 100644
> --- a/arch/mips/boot/compressed/head.S
> +++ b/arch/mips/boot/compressed/head.S
> @@ -15,10 +15,7 @@
>  #include <asm/asm.h>
>  #include <asm/regdef.h>
>
> -       .set noreorder
> -       .cprestore
>         LEAF(start)
> -start:
>         /* Save boot rom start args */
>         move    s0, a0
>         move    s1, a1
> @@ -35,21 +32,20 @@ start:
>         PTR_LA  a0, (.heap)          /* heap address */
>         PTR_LA  sp, (.stack + 8192)  /* stack address */
>
> -       PTR_LA  ra, 2f
> -       PTR_LA  k0, decompress_kernel
> -       jr      k0
> -        nop
> +       PTR_LA  t9, decompress_kernel
> +       jalr    t9
> +
>  2:
>         move    a0, s0
>         move    a1, s1
>         move    a2, s2
>         move    a3, s3
> -       PTR_LI  k0, KERNEL_ENTRY
> -       jr      k0
> -        nop
> +       PTR_LI  t9, KERNEL_ENTRY
> +       jalr    t9
> +
>  3:
>         b       3b
> -        nop
> +
>         END(start)
>
>         .comm .heap,BOOT_HEAP_SIZE,4
> --
> 2.30.0
>

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

* Re: [PATCH v3] MIPS: zboot: head.S clean up
  2020-12-30  3:47 [PATCH v3] MIPS: zboot: head.S clean up Jiaxun Yang
  2020-12-31  0:28 ` Huacai Chen
@ 2021-01-04 10:41 ` Thomas Bogendoerfer
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Bogendoerfer @ 2021-01-04 10:41 UTC (permalink / raw)
  To: Jiaxun Yang; +Cc: linux-mips, Paul Cercueil, linux-kernel

On Wed, Dec 30, 2020 at 11:47:22AM +0800, Jiaxun Yang wrote:
> .cprestore is removed as we don't expect Position Independent
> zboot ELF.
> 
> .noreorder is also removed and rest instructions are massaged
> to improve readability.
> 
> t9 register is used for indirect jump as MIPS ABI requirement.
> 
> start label is removed as it already defined in LEAF.
> 
> Reported-by: Paul Cercueil <paul@crapouillou.net>
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> 
> --
> v2: Remove start label (paul)
> ---
>  arch/mips/boot/compressed/head.S | 18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)

applied to mips-next.

Thomas.

-- 
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]

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

end of thread, other threads:[~2021-01-04 10:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-30  3:47 [PATCH v3] MIPS: zboot: head.S clean up Jiaxun Yang
2020-12-31  0:28 ` Huacai Chen
2021-01-04 10:41 ` Thomas Bogendoerfer

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.