diff mbox

[U-Boot,1/2] arm, arm926ejs: always do cpu critical inits

Message ID 4EDDB88A.6020903@denx.de
State RFC
Headers show

Commit Message

Heiko Schocher Dec. 6, 2011, 6:39 a.m. UTC
Hello Albert,

Albert ARIBAUD wrote:
> Le 29/11/2011 20:27, Tom Rini a écrit :
>> On Wed, Nov 9, 2011 at 11:06 PM, Heiko Schocher<hs@denx.de>  wrote:
>>> always do the cpu critical inits in cpu_init_crit,
>>> and only jump to lowlevel_init, if CONFIG_SKIP_LOWLEVEL_INIT
>>> is not defined.
>>>
>>> Signed-off-by: Heiko Schocher<hs@denx.de>
>>> Cc: Albert ARIBAUD<albert.u.boot@aribaud.net>
>>> Cc: Wolfgang Denk<hs@denx.de>
>>> Cc: Sandeep Paulraj<s-paulraj@ti.com>
>>> Cc: Tom Rini<tom.rini@gmail.com>
>>> Cc: Christian Riesch<christian.riesch@omicron.at>
>>
>> (Will be) queued to u-boot-ti, thanks.
> 
> Hmm... This commit alters the effect of CONFIG_SKIP_LOWLEVEL_INIT
> without making it possible to recreate it through configuration -- you
> now have to alter the source code to get the same effect as before. I'd
> prefer the CPU init crit code to be kept under a config option, and
> another option to be added for finer control.

Would the following be OK?


If so, I post it as a v2 ...

bye,
Heiko
diff mbox

Patch

diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S
index 339c5ed..b72ad4b 100644
--- a/arch/arm/cpu/arm926ejs/start.S
+++ b/arch/arm/cpu/arm926ejs/start.S
@@ -194,7 +194,7 @@  reset:
 	 * we do sys-critical inits only at reboot,
 	 * not when booting from ram!
 	 */
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+#ifndef CONFIG_SKIP_CPU_INIT_CRIT
 	bl	cpu_init_crit
 #endif

@@ -353,7 +353,7 @@  _dynsym_start_ofs:
  *
  *************************************************************************
  */
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+#ifndef CONFIG_SKIP_CPU_INIT_CRIT
 cpu_init_crit:
 	/*
 	 * flush v4 I/D caches
@@ -372,14 +372,16 @@  cpu_init_crit:
 	orr	r0, r0, #0x00001000	/* set bit 12 (I) I-Cache */
 	mcr	p15, 0, r0, c1, c0, 0

+#ifndef CONFIG_SKIP_LOWLEVEL_INIT
 	/*
 	 * Go setup Memory and board specific bits prior to relocation.
 	 */
 	mov	ip, lr		/* perserve link reg across call */
 	bl	lowlevel_init	/* go setup pll,mux,memory */
 	mov	lr, ip		/* restore link */
+#endif
 	mov	pc, lr		/* back to my caller */
-#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
+#endif /* CONFIG_SKIP_CPU_INIT_CRIT */

 #ifndef CONFIG_SPL_BUILD
 /*