* [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it
@ 2014-12-19 21:53 Tom Rini
2014-12-19 21:53 ` [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd Tom Rini
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Tom Rini @ 2014-12-19 21:53 UTC (permalink / raw)
To: u-boot
Prior to this change we set the gd pointer early so that we can store
data in it. This becomes problematic for DM changes as well as being
odd in general. Re-work the code paths so that we don't need to set the
gd pointer so early and instead can rely upon the normal setting of it.
In order to do this we do need to move certain calls from s_init into
spl_board_init(), mainly preloader_console_init and
save_omap_boot_params.
Tested on: Beaglebone Black, AM43xx GP EVM, Beagleboard, Beagleboard xM,
OMAP5 uEVM, DRA7xx EVM
Signed-off-by: Tom Rini <trini@ti.com>
---
arch/arm/cpu/armv7/am33xx/board.c | 11 -----------
arch/arm/cpu/armv7/omap-common/boot-common.c | 10 ++++++++++
arch/arm/cpu/armv7/omap-common/hwinit-common.c | 11 -----------
arch/arm/cpu/armv7/omap3/board.c | 9 +--------
4 files changed, 11 insertions(+), 30 deletions(-)
diff --git a/arch/arm/cpu/armv7/am33xx/board.c b/arch/arm/cpu/armv7/am33xx/board.c
index eaf09d1..81477aa 100644
--- a/arch/arm/cpu/armv7/am33xx/board.c
+++ b/arch/arm/cpu/armv7/am33xx/board.c
@@ -285,14 +285,6 @@ void s_init(void)
#ifdef CONFIG_NOR_BOOT
enable_norboot_pin_mux();
#endif
- /*
- * Save the boot parameters passed from romcode.
- * We cannot delay the saving further than this,
- * to prevent overwrites.
- */
-#ifdef CONFIG_SPL_BUILD
- save_omap_boot_params();
-#endif
watchdog_disable();
set_uart_mux_conf();
setup_clocks_for_console();
@@ -301,9 +293,6 @@ void s_init(void)
gd->baudrate = CONFIG_BAUDRATE;
serial_init();
gd->have_console = 1;
-#elif defined(CONFIG_SPL_BUILD)
- gd = &gdata;
- preloader_console_init();
#endif
#if defined(CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC)
/* Enable RTC32K clock */
diff --git a/arch/arm/cpu/armv7/omap-common/boot-common.c b/arch/arm/cpu/armv7/omap-common/boot-common.c
index cb18908..3ba62db 100644
--- a/arch/arm/cpu/armv7/omap-common/boot-common.c
+++ b/arch/arm/cpu/armv7/omap-common/boot-common.c
@@ -104,6 +104,16 @@ u32 spl_boot_mode(void)
void spl_board_init(void)
{
+ /*
+ * Save the boot parameters passed from romcode.
+ * We cannot delay the saving further than this,
+ * to prevent overwrites.
+ */
+ save_omap_boot_params();
+
+ /* Prepare console output */
+ preloader_console_init();
+
#ifdef CONFIG_SPL_NAND_SUPPORT
gpmc_init();
#endif
diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
index dd52e93..cb35c19 100644
--- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
+++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
@@ -111,14 +111,6 @@ int arch_cpu_init(void)
*/
void s_init(void)
{
- /*
- * Save the boot parameters passed from romcode.
- * We cannot delay the saving further than this,
- * to prevent overwrites.
- */
-#ifdef CONFIG_SPL_BUILD
- save_omap_boot_params();
-#endif
init_omap_revision();
hw_data_init();
@@ -133,9 +125,6 @@ void s_init(void)
srcomp_enable();
setup_clocks_for_console();
- gd = &gdata;
-
- preloader_console_init();
do_io_settings();
#endif
prcm_init();
diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c
index 53a9e5d..90d6ae7 100644
--- a/arch/arm/cpu/armv7/omap3/board.c
+++ b/arch/arm/cpu/armv7/omap3/board.c
@@ -119,6 +119,7 @@ int board_mmc_init(bd_t *bis)
void spl_board_init(void)
{
+ preloader_console_init();
#if defined(CONFIG_SPL_NAND_SUPPORT) || defined(CONFIG_SPL_ONENAND_SUPPORT)
gpmc_init();
#endif
@@ -264,14 +265,6 @@ void s_init(void)
ehci_clocks_enable();
#endif
-#ifdef CONFIG_SPL_BUILD
- gd = &gdata;
-
- preloader_console_init();
-
- timer_init();
-#endif
-
if (!in_sdram)
mem_init();
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd
2014-12-19 21:53 [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it Tom Rini
@ 2014-12-19 21:53 ` Tom Rini
2014-12-19 23:54 ` Peter Howard
2014-12-21 21:34 ` Peter Howard
2014-12-21 18:52 ` [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it Simon Glass
2015-01-20 21:40 ` [U-Boot] [U-Boot, RFT, " Tom Rini
2 siblings, 2 replies; 7+ messages in thread
From: Tom Rini @ 2014-12-19 21:53 UTC (permalink / raw)
To: u-boot
In f0c3a6c we stopped setting gd in board_init_f, but later had to
revert to due problems on certain platforms. As davinci does not look
to have these problems, we can drop the setting here and rely upon
crt0.S to do it.
Cc: Peter Howard <pjh@northern-ridge.com.au>
Signed-off-by: Tom Rini <trini@ti.com>
---
Peter, I don't have my davinci board hooked up but since you were doing
some changes recently is there a chance you can test this easily?
Thanks!
---
arch/arm/cpu/arm926ejs/davinci/spl.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm/cpu/arm926ejs/davinci/spl.c b/arch/arm/cpu/arm926ejs/davinci/spl.c
index 59b304e..7b14420 100644
--- a/arch/arm/cpu/arm926ejs/davinci/spl.c
+++ b/arch/arm/cpu/arm926ejs/davinci/spl.c
@@ -51,7 +51,6 @@ void board_init_f(ulong dummy)
memset(__bss_start, 0, __bss_end - __bss_start);
/* Finally, setup gd and move to the next step. */
- gd = &gdata;
board_init_r(NULL, 0);
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd
2014-12-19 21:53 ` [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd Tom Rini
@ 2014-12-19 23:54 ` Peter Howard
2014-12-21 21:34 ` Peter Howard
1 sibling, 0 replies; 7+ messages in thread
From: Peter Howard @ 2014-12-19 23:54 UTC (permalink / raw)
To: u-boot
On Fri, 2014-12-19 at 16:53 -0500, Tom Rini wrote:
> In f0c3a6c we stopped setting gd in board_init_f, but later had to
> revert to due problems on certain platforms. As davinci does not look
> to have these problems, we can drop the setting here and rely upon
> crt0.S to do it.
>
> Cc: Peter Howard <pjh@northern-ridge.com.au>
> Signed-off-by: Tom Rini <trini@ti.com>
>
> ---
> Peter, I don't have my davinci board hooked up but since you were doing
> some changes recently is there a chance you can test this easily?
I can test on Monday - I only have access to my LCDK on the weekend, and
I have to get round to try the convoluted setup process for flashing
u-boot on it :-)
> Thanks!
> ---
> arch/arm/cpu/arm926ejs/davinci/spl.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm/cpu/arm926ejs/davinci/spl.c b/arch/arm/cpu/arm926ejs/davinci/spl.c
> index 59b304e..7b14420 100644
> --- a/arch/arm/cpu/arm926ejs/davinci/spl.c
> +++ b/arch/arm/cpu/arm926ejs/davinci/spl.c
> @@ -51,7 +51,6 @@ void board_init_f(ulong dummy)
> memset(__bss_start, 0, __bss_end - __bss_start);
>
> /* Finally, setup gd and move to the next step. */
> - gd = &gdata;
> board_init_r(NULL, 0);
> }
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it
2014-12-19 21:53 [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it Tom Rini
2014-12-19 21:53 ` [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd Tom Rini
@ 2014-12-21 18:52 ` Simon Glass
2015-01-20 21:40 ` [U-Boot] [U-Boot, RFT, " Tom Rini
2 siblings, 0 replies; 7+ messages in thread
From: Simon Glass @ 2014-12-21 18:52 UTC (permalink / raw)
To: u-boot
Hi Tom,
On 19 December 2014 at 14:53, Tom Rini <trini@ti.com> wrote:
> Prior to this change we set the gd pointer early so that we can store
> data in it. This becomes problematic for DM changes as well as being
> odd in general. Re-work the code paths so that we don't need to set the
> gd pointer so early and instead can rely upon the normal setting of it.
>
> In order to do this we do need to move certain calls from s_init into
> spl_board_init(), mainly preloader_console_init and
> save_omap_boot_params.
>
> Tested on: Beaglebone Black, AM43xx GP EVM, Beagleboard, Beagleboard xM,
> OMAP5 uEVM, DRA7xx EVM
> Signed-off-by: Tom Rini <trini@ti.com>
This seems like it's going in the right direction to me!
Tested on Beaglebone Black.
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
> ---
> arch/arm/cpu/armv7/am33xx/board.c | 11 -----------
> arch/arm/cpu/armv7/omap-common/boot-common.c | 10 ++++++++++
> arch/arm/cpu/armv7/omap-common/hwinit-common.c | 11 -----------
> arch/arm/cpu/armv7/omap3/board.c | 9 +--------
> 4 files changed, 11 insertions(+), 30 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/am33xx/board.c b/arch/arm/cpu/armv7/am33xx/board.c
> index eaf09d1..81477aa 100644
> --- a/arch/arm/cpu/armv7/am33xx/board.c
> +++ b/arch/arm/cpu/armv7/am33xx/board.c
> @@ -285,14 +285,6 @@ void s_init(void)
> #ifdef CONFIG_NOR_BOOT
> enable_norboot_pin_mux();
> #endif
> - /*
> - * Save the boot parameters passed from romcode.
> - * We cannot delay the saving further than this,
> - * to prevent overwrites.
> - */
> -#ifdef CONFIG_SPL_BUILD
> - save_omap_boot_params();
> -#endif
> watchdog_disable();
> set_uart_mux_conf();
> setup_clocks_for_console();
> @@ -301,9 +293,6 @@ void s_init(void)
> gd->baudrate = CONFIG_BAUDRATE;
> serial_init();
> gd->have_console = 1;
> -#elif defined(CONFIG_SPL_BUILD)
> - gd = &gdata;
> - preloader_console_init();
> #endif
> #if defined(CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC)
> /* Enable RTC32K clock */
> diff --git a/arch/arm/cpu/armv7/omap-common/boot-common.c b/arch/arm/cpu/armv7/omap-common/boot-common.c
> index cb18908..3ba62db 100644
> --- a/arch/arm/cpu/armv7/omap-common/boot-common.c
> +++ b/arch/arm/cpu/armv7/omap-common/boot-common.c
> @@ -104,6 +104,16 @@ u32 spl_boot_mode(void)
>
> void spl_board_init(void)
> {
> + /*
> + * Save the boot parameters passed from romcode.
> + * We cannot delay the saving further than this,
> + * to prevent overwrites.
> + */
> + save_omap_boot_params();
> +
> + /* Prepare console output */
> + preloader_console_init();
> +
> #ifdef CONFIG_SPL_NAND_SUPPORT
> gpmc_init();
> #endif
> diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> index dd52e93..cb35c19 100644
> --- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> +++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> @@ -111,14 +111,6 @@ int arch_cpu_init(void)
> */
> void s_init(void)
> {
> - /*
> - * Save the boot parameters passed from romcode.
> - * We cannot delay the saving further than this,
> - * to prevent overwrites.
> - */
> -#ifdef CONFIG_SPL_BUILD
> - save_omap_boot_params();
> -#endif
> init_omap_revision();
> hw_data_init();
>
> @@ -133,9 +125,6 @@ void s_init(void)
> srcomp_enable();
> setup_clocks_for_console();
>
> - gd = &gdata;
> -
> - preloader_console_init();
> do_io_settings();
> #endif
> prcm_init();
> diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c
> index 53a9e5d..90d6ae7 100644
> --- a/arch/arm/cpu/armv7/omap3/board.c
> +++ b/arch/arm/cpu/armv7/omap3/board.c
> @@ -119,6 +119,7 @@ int board_mmc_init(bd_t *bis)
>
> void spl_board_init(void)
> {
> + preloader_console_init();
> #if defined(CONFIG_SPL_NAND_SUPPORT) || defined(CONFIG_SPL_ONENAND_SUPPORT)
> gpmc_init();
> #endif
> @@ -264,14 +265,6 @@ void s_init(void)
> ehci_clocks_enable();
> #endif
>
> -#ifdef CONFIG_SPL_BUILD
> - gd = &gdata;
> -
> - preloader_console_init();
> -
> - timer_init();
> -#endif
> -
> if (!in_sdram)
> mem_init();
> }
> --
> 1.7.9.5
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd
2014-12-19 21:53 ` [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd Tom Rini
2014-12-19 23:54 ` Peter Howard
@ 2014-12-21 21:34 ` Peter Howard
2014-12-21 22:01 ` Tom Rini
1 sibling, 1 reply; 7+ messages in thread
From: Peter Howard @ 2014-12-21 21:34 UTC (permalink / raw)
To: u-boot
On Fri, 2014-12-19 at 16:53 -0500, Tom Rini wrote:
> In f0c3a6c we stopped setting gd in board_init_f, but later had to
> revert to due problems on certain platforms. As davinci does not look
> to have these problems, we can drop the setting here and rely upon
> crt0.S to do it.
>
> Cc: Peter Howard <pjh@northern-ridge.com.au>
> Signed-off-by: Tom Rini <trini@ti.com>
>
> ---
> Peter, I don't have my davinci board hooked up but since you were doing
> some changes recently is there a chance you can test this easily?
> Thanks!
Applied this patch (with and without 1/1 as well - given part 1 is ARMv7
it shouldn't have any bearing on davinci but wanted to be sure).
U-boot doesn't boot on the da850evm with this change. I tried both with
my changes to the generic board, and on a fresh clone of u-boot.git. And
on u-boot-ti.git. I haven't looked further, but I'm guessing there is
early access to gd of the sort you patched out for v7.
> ---
> arch/arm/cpu/arm926ejs/davinci/spl.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm/cpu/arm926ejs/davinci/spl.c b/arch/arm/cpu/arm926ejs/davinci/spl.c
> index 59b304e..7b14420 100644
> --- a/arch/arm/cpu/arm926ejs/davinci/spl.c
> +++ b/arch/arm/cpu/arm926ejs/davinci/spl.c
> @@ -51,7 +51,6 @@ void board_init_f(ulong dummy)
> memset(__bss_start, 0, __bss_end - __bss_start);
>
> /* Finally, setup gd and move to the next step. */
> - gd = &gdata;
> board_init_r(NULL, 0);
> }
>
--
Peter Howard <pjh@northern-ridge.com.au>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd
2014-12-21 21:34 ` Peter Howard
@ 2014-12-21 22:01 ` Tom Rini
0 siblings, 0 replies; 7+ messages in thread
From: Tom Rini @ 2014-12-21 22:01 UTC (permalink / raw)
To: u-boot
On Mon, Dec 22, 2014 at 08:34:11AM +1100, Peter Howard wrote:
> On Fri, 2014-12-19 at 16:53 -0500, Tom Rini wrote:
> > In f0c3a6c we stopped setting gd in board_init_f, but later had to
> > revert to due problems on certain platforms. As davinci does not look
> > to have these problems, we can drop the setting here and rely upon
> > crt0.S to do it.
> >
> > Cc: Peter Howard <pjh@northern-ridge.com.au>
> > Signed-off-by: Tom Rini <trini@ti.com>
> >
> > ---
> > Peter, I don't have my davinci board hooked up but since you were doing
> > some changes recently is there a chance you can test this easily?
> > Thanks!
>
> Applied this patch (with and without 1/1 as well - given part 1 is ARMv7
> it shouldn't have any bearing on davinci but wanted to be sure).
>
> U-boot doesn't boot on the da850evm with this change. I tried both with
> my changes to the generic board, and on a fresh clone of u-boot.git. And
> on u-boot-ti.git. I haven't looked further, but I'm guessing there is
> early access to gd of the sort you patched out for v7.
Thanks for testing, I feared it wasn't quite as easy as it looked, I'll
have a think about it and see if I can recall what else might be
tickling gd that early over there.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141221/bc48543b/attachment.pgp>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [U-Boot, RFT, 1/2] TI ARMv7: Don't use GD before crt0.S has set it
2014-12-19 21:53 [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it Tom Rini
2014-12-19 21:53 ` [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd Tom Rini
2014-12-21 18:52 ` [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it Simon Glass
@ 2015-01-20 21:40 ` Tom Rini
2 siblings, 0 replies; 7+ messages in thread
From: Tom Rini @ 2015-01-20 21:40 UTC (permalink / raw)
To: u-boot
On Fri, Dec 19, 2014 at 04:53:24PM -0500, Tom Rini wrote:
> Prior to this change we set the gd pointer early so that we can store
> data in it. This becomes problematic for DM changes as well as being
> odd in general. Re-work the code paths so that we don't need to set the
> gd pointer so early and instead can rely upon the normal setting of it.
>
> In order to do this we do need to move certain calls from s_init into
> spl_board_init(), mainly preloader_console_init and
> save_omap_boot_params.
>
> Tested on: Beaglebone Black, AM43xx GP EVM, Beagleboard, Beagleboard xM,
> OMAP5 uEVM, DRA7xx EVM
> Signed-off-by: Tom Rini <trini@ti.com>
> Tested-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150120/a54655d0/attachment.pgp>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-01-20 21:40 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-19 21:53 [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it Tom Rini
2014-12-19 21:53 ` [U-Boot] [PATCH RFT 2/2] davinci: Do not duplicate setting of gd Tom Rini
2014-12-19 23:54 ` Peter Howard
2014-12-21 21:34 ` Peter Howard
2014-12-21 22:01 ` Tom Rini
2014-12-21 18:52 ` [U-Boot] [PATCH RFT 1/2] TI ARMv7: Don't use GD before crt0.S has set it Simon Glass
2015-01-20 21:40 ` [U-Boot] [U-Boot, RFT, " Tom Rini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox