From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Tue, 06 Dec 2011 07:39:06 +0100 Subject: [U-Boot] [PATCH 1/2] arm, arm926ejs: always do cpu critical inits In-Reply-To: <4EDCFB41.2000404@aribaud.net> References: <1320905184-15277-1-git-send-email-hs@denx.de> <1320905184-15277-2-git-send-email-hs@denx.de> <4EDCFB41.2000404@aribaud.net> Message-ID: <4EDDB88A.6020903@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 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 >>> Cc: Albert ARIBAUD >>> Cc: Wolfgang Denk >>> Cc: Sandeep Paulraj >>> Cc: Tom Rini >>> Cc: Christian Riesch >> >> (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? 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 /* If so, I post it as a v2 ... bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany