Skip to content
Snippets Groups Projects
Commit da104e04 authored by Sughosh Ganu's avatar Sughosh Ganu Committed by Albert ARIBAUD
Browse files

arm, arm926ejs: Flush the data cache before disabling it

The current implementation invalidates the data cache before turning it
off and causes problems on the hawkboard. See the discussion in
http://lists.denx.de/pipermail/u-boot/2012-January/115212.html



According to the ARM926EJ-S Technical Reference Manual, the cache should
be flushed instead.

Also fix the comments to match code.

Signed-off-by: default avatarSughosh Ganu <urwithsughosh@gmail.com>

Rebased and corrected commit message.

Signed-off-by: default avatarChristian Riesch <christian.riesch@omicron.at>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Tom Rini <trini@ti.com>
Acked-by: default avatarHeiko Schocher <hs@denx.de>
Tested-by: default avatarHeiko Schocher <hs@denx.de>
parent 27b66622
No related merge requests found
......@@ -358,14 +358,18 @@ _dynsym_start_ofs:
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
cpu_init_crit:
/*
* flush v4 I/D caches
* flush D cache before disabling it
*/
mov r0, #0
mcr p15, 0, r0, c7, c7, 0 /* flush v3/v4 cache */
mcr p15, 0, r0, c8, c7, 0 /* flush v4 TLB */
flush_dcache:
mrc p15, 0, r15, c7, c10, 3
bne flush_dcache
mcr p15, 0, r0, c8, c7, 0 /* invalidate TLB */
mcr p15, 0, r0, c7, c5, 0 /* invalidate I Cache */
/*
* disable MMU stuff and caches
* disable MMU and D cache, and enable I cache
*/
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #0x00002300 /* clear bits 13, 9:8 (--V- --RS) */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment