diff options
author | Simon Glass <sjg@chromium.org> | 2016-05-05 16:28:06 +0300 |
---|---|---|
committer | Andreas Bießmann <andreas@biessmann.org> | 2016-06-13 00:49:38 +0300 |
commit | b5bd09820c79dc92b3e5fb5be4b47ce22c731443 (patch) | |
tree | 6a5fe76224aed2accdc889e21ae4f5d91c31d4bd /arch/arm/cpu/arm946es | |
parent | 909584665546ec51c54ac7d362f91fdabaef2cc2 (diff) | |
download | u-boot-b5bd09820c79dc92b3e5fb5be4b47ce22c731443.tar.xz |
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.S | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/cpu/arm946es/start.S b/arch/arm/cpu/arm946es/start.S index 214cd8cbd9..51053c32dc 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 |