* [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.