All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] RFT: arm: Switch 32-bit ARM to using generic global_data setup
@ 2015-08-18  3:43 Simon Glass
  2015-08-18  3:43 ` [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 " Simon Glass
  0 siblings, 1 reply; 5+ messages in thread
From: Simon Glass @ 2015-08-18  3:43 UTC (permalink / raw)
  To: u-boot

There is quite a bit of assembler code that can be removed if we use the
generic global_data setup. Less arch-specific code makes it easier to add
new features and maintain the start-up code.

Drop the unneeded code and adjust the hooks in board_f.c to cope.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/arm/lib/crt0.S | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S
index afd4f10..fc1252d 100644
--- a/arch/arm/lib/crt0.S
+++ b/arch/arm/lib/crt0.S
@@ -76,31 +76,11 @@ ENTRY(_main)
 #else
 	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */
 #endif
-	mov	r2, sp
-	sub	sp, sp, #GD_SIZE	/* allocate one GD above SP */
-#if defined(CONFIG_CPU_V7M)	/* v7M forbids using SP as BIC destination */
-	mov	r3, sp
-	bic	r3, r3, #7
-	mov	sp, r3
-#else
-	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */
-#endif
-	mov	r9, sp		/* GD is above SP */
-	mov	r1, sp
+	mov	r0, sp
+	bl	board_init_f_mem
+	mov	sp, r0
+
 	mov	r0, #0
-clr_gd:
-	cmp	r1, r2			/* while not at end of GD */
-#if defined(CONFIG_CPU_V7M)
-	itt	lo
-#endif
-	strlo	r0, [r1]		/* clear 32-bit GD word */
-	addlo	r1, r1, #4		/* move to next */
-	blo	clr_gd
-#if defined(CONFIG_SYS_MALLOC_F_LEN)
-	sub	sp, sp, #CONFIG_SYS_MALLOC_F_LEN
-	str	sp, [r9, #GD_MALLOC_BASE]
-#endif
-	/* mov r0, #0 not needed due to above code */
 	bl	board_init_f
 
 #if ! defined(CONFIG_SPL_BUILD)
-- 
2.5.0.276.gf5e568e

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

* [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 to using generic global_data setup
  2015-08-18  3:43 [U-Boot] [PATCH 1/2] RFT: arm: Switch 32-bit ARM to using generic global_data setup Simon Glass
@ 2015-08-18  3:43 ` Simon Glass
  2015-08-21 18:26   ` York Sun
  2015-08-21 18:57   ` York Sun
  0 siblings, 2 replies; 5+ messages in thread
From: Simon Glass @ 2015-08-18  3:43 UTC (permalink / raw)
  To: u-boot

There is quite a bit of assembler code that can be removed if we use the
generic global_data setup. Less arch-specific code makes it easier to add
new features and maintain the start-up code.

Drop the unneeded code and adjust the hooks in board_f.c to cope.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/arm/lib/crt0_64.S | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/arch/arm/lib/crt0_64.S b/arch/arm/lib/crt0_64.S
index 98a906e..31fc3b4 100644
--- a/arch/arm/lib/crt0_64.S
+++ b/arch/arm/lib/crt0_64.S
@@ -66,19 +66,10 @@ ENTRY(_main)
 #else
 	ldr	x0, =(CONFIG_SYS_INIT_SP_ADDR)
 #endif
-	sub	x18, x0, #GD_SIZE	/* allocate one GD above SP */
-	bic	x18, x18, #0x7		/* 8-byte alignment for GD */
-zero_gd:
-	sub	x0, x0, #0x8
-	str	xzr, [x0]
-	cmp	x0, x18
-	b.gt	zero_gd
-#if defined(CONFIG_SYS_MALLOC_F_LEN)
-	ldr	x0, =CONFIG_SYS_MALLOC_F_LEN
-	sub	x0, x18, x0
-	str	x0, [x18, #GD_MALLOC_BASE]
-#endif
 	bic	sp, x0, #0xf	/* 16-byte alignment for ABI compliance */
+	bl	board_init_f_mem
+	mov	sp, x0
+
 	mov	x0, #0
 	bl	board_init_f
 
-- 
2.5.0.276.gf5e568e

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

* [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 to using generic global_data setup
  2015-08-18  3:43 ` [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 " Simon Glass
@ 2015-08-21 18:26   ` York Sun
  2015-08-21 18:57   ` York Sun
  1 sibling, 0 replies; 5+ messages in thread
From: York Sun @ 2015-08-21 18:26 UTC (permalink / raw)
  To: u-boot

Sorry for top posting. Replying from OWA while traveling.

Tested on LS2085ARDB and LS2085AQDS.

Tested-by: York Sun <yorksun@freescale.com>

________________________________________
From: U-Boot <u-boot-bounces@lists.denx.de> on behalf of Simon Glass <sjg@chromium.org>
Sent: Monday, August 17, 2015 8:43 PM
To: U-Boot Mailing List
Cc: Tom Rini; Wood Scott-B07421; Thierry Reding; Sun York-R58495
Subject: [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 to using generic global_data setup

There is quite a bit of assembler code that can be removed if we use the
generic global_data setup. Less arch-specific code makes it easier to add
new features and maintain the start-up code.

Drop the unneeded code and adjust the hooks in board_f.c to cope.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/arm/lib/crt0_64.S | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/arch/arm/lib/crt0_64.S b/arch/arm/lib/crt0_64.S
index 98a906e..31fc3b4 100644
--- a/arch/arm/lib/crt0_64.S
+++ b/arch/arm/lib/crt0_64.S
@@ -66,19 +66,10 @@ ENTRY(_main)
 #else
        ldr     x0, =(CONFIG_SYS_INIT_SP_ADDR)
 #endif
-       sub     x18, x0, #GD_SIZE       /* allocate one GD above SP */
-       bic     x18, x18, #0x7          /* 8-byte alignment for GD */
-zero_gd:
-       sub     x0, x0, #0x8
-       str     xzr, [x0]
-       cmp     x0, x18
-       b.gt    zero_gd
-#if defined(CONFIG_SYS_MALLOC_F_LEN)
-       ldr     x0, =CONFIG_SYS_MALLOC_F_LEN
-       sub     x0, x18, x0
-       str     x0, [x18, #GD_MALLOC_BASE]
-#endif
        bic     sp, x0, #0xf    /* 16-byte alignment for ABI compliance */
+       bl      board_init_f_mem
+       mov     sp, x0
+
        mov     x0, #0
        bl      board_init_f

--
2.5.0.276.gf5e568e

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

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

* [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 to using generic global_data setup
  2015-08-18  3:43 ` [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 " Simon Glass
  2015-08-21 18:26   ` York Sun
@ 2015-08-21 18:57   ` York Sun
  1 sibling, 0 replies; 5+ messages in thread
From: York Sun @ 2015-08-21 18:57 UTC (permalink / raw)
  To: u-boot


> On Aug 17, 2015, at 8:43 PM, Simon Glass <sjg@chromium.org> wrote:
> 
> There is quite a bit of assembler code that can be removed if we use the
> generic global_data setup. Less arch-specific code makes it easier to add
> new features and maintain the start-up code.
> 
> Drop the unneeded code and adjust the hooks in board_f.c to cope.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
> arch/arm/lib/crt0_64.S | 15 +++------------
> 1 file changed, 3 insertions(+), 12 deletions(-)
> 
> diff --git a/arch/arm/lib/crt0_64.S b/arch/arm/lib/crt0_64.S
> index 98a906e..31fc3b4 100644
> --- a/arch/arm/lib/crt0_64.S
> +++ b/arch/arm/lib/crt0_64.S
> @@ -66,19 +66,10 @@ ENTRY(_main)
> #else
> 	ldr	x0, =(CONFIG_SYS_INIT_SP_ADDR)
> #endif
> -	sub	x18, x0, #GD_SIZE	/* allocate one GD above SP */
> -	bic	x18, x18, #0x7		/* 8-byte alignment for GD */
> -zero_gd:
> -	sub	x0, x0, #0x8
> -	str	xzr, [x0]
> -	cmp	x0, x18
> -	b.gt	zero_gd
> -#if defined(CONFIG_SYS_MALLOC_F_LEN)
> -	ldr	x0, =CONFIG_SYS_MALLOC_F_LEN
> -	sub	x0, x18, x0
> -	str	x0, [x18, #GD_MALLOC_BASE]
> -#endif
> 	bic	sp, x0, #0xf	/* 16-byte alignment for ABI compliance */
> +	bl	board_init_f_mem
> +	mov	sp, x0
> +
> 	mov	x0, #0
> 	bl	board_init_f


Let me try again. Previous reply went to a separated thread in patchwork.

Tested on LS2085ARDB and LS2085AQDS (armv8 SoC).

Tested-by: York Sun <yorksun@freescale.com>

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

* [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 to using generic global_data setup
  2015-08-18  3:45 [U-Boot] [PATCH 1/2] RFT: arm: Switch 32-bit ARM " Simon Glass
@ 2015-08-18  3:45 ` Simon Glass
  0 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2015-08-18  3:45 UTC (permalink / raw)
  To: u-boot

There is quite a bit of assembler code that can be removed if we use the
generic global_data setup. Less arch-specific code makes it easier to add
new features and maintain the start-up code.

Drop the unneeded code and adjust the hooks in board_f.c to cope.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/arm/lib/crt0_64.S | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/arch/arm/lib/crt0_64.S b/arch/arm/lib/crt0_64.S
index 98a906e..31fc3b4 100644
--- a/arch/arm/lib/crt0_64.S
+++ b/arch/arm/lib/crt0_64.S
@@ -66,19 +66,10 @@ ENTRY(_main)
 #else
 	ldr	x0, =(CONFIG_SYS_INIT_SP_ADDR)
 #endif
-	sub	x18, x0, #GD_SIZE	/* allocate one GD above SP */
-	bic	x18, x18, #0x7		/* 8-byte alignment for GD */
-zero_gd:
-	sub	x0, x0, #0x8
-	str	xzr, [x0]
-	cmp	x0, x18
-	b.gt	zero_gd
-#if defined(CONFIG_SYS_MALLOC_F_LEN)
-	ldr	x0, =CONFIG_SYS_MALLOC_F_LEN
-	sub	x0, x18, x0
-	str	x0, [x18, #GD_MALLOC_BASE]
-#endif
 	bic	sp, x0, #0xf	/* 16-byte alignment for ABI compliance */
+	bl	board_init_f_mem
+	mov	sp, x0
+
 	mov	x0, #0
 	bl	board_init_f
 
-- 
2.5.0.276.gf5e568e

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

end of thread, other threads:[~2015-08-21 18:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-18  3:43 [U-Boot] [PATCH 1/2] RFT: arm: Switch 32-bit ARM to using generic global_data setup Simon Glass
2015-08-18  3:43 ` [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 " Simon Glass
2015-08-21 18:26   ` York Sun
2015-08-21 18:57   ` York Sun
2015-08-18  3:45 [U-Boot] [PATCH 1/2] RFT: arm: Switch 32-bit ARM " Simon Glass
2015-08-18  3:45 ` [U-Boot] [PATCH 2/2] RFT: arm: Switch aarch64 " Simon Glass

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.