summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/arm946es
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-05-05 07:28:06 -0600
committerAndreas Bießmann <andreas@biessmann.org>2016-06-12 23:49:38 +0200
commitb5bd09820c79dc92b3e5fb5be4b47ce22c731443 (patch)
tree6a5fe76224aed2accdc889e21ae4f5d91c31d4bd /arch/arm/cpu/arm946es
parent909584665546ec51c54ac7d362f91fdabaef2cc2 (diff)
downloadu-boot-imx-b5bd09820c79dc92b3e5fb5be4b47ce22c731443.zip
u-boot-imx-b5bd09820c79dc92b3e5fb5be4b47ce22c731443.tar.gz
u-boot-imx-b5bd09820c79dc92b3e5fb5be4b47ce22c731443.tar.bz2
arm: Allow skipping of low-level init with I-cache on
At present CONFIG_SKIP_LOWLEVEL_INIT prevents U-Boot from calling lowlevel_init(). This means that the instruction cache is not enabled and the board runs very slowly. What is really needed in many cases is to skip the call to lowlevel_init() but still perform CP15 init. Add an option to handle this. Reviewed-by: Heiko Schocher <hs@denx.de> Tested-on: smartweb, corvus, taurus, axm Tested-by: Heiko Schocher <hs@denx.de> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
Diffstat (limited to 'arch/arm/cpu/arm946es')
-rw-r--r--arch/arm/cpu/arm946es/start.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/cpu/arm946es/start.S b/arch/arm/cpu/arm946es/start.S
index 214cd8c..51053c3 100644
--- a/arch/arm/cpu/arm946es/start.S
+++ b/arch/arm/cpu/arm946es/start.S
@@ -90,11 +90,13 @@ 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_ONLY
/*
* Go setup Memory and board specific bits prior to relocation.
*/
mov ip, lr /* perserve link reg across call */
bl lowlevel_init /* go setup memory */
mov lr, ip /* restore link */
+#endif
mov pc, lr /* back to my caller */
#endif