Logically this code belongs to cache_init.S.
If a complex SoC needs to replace the generic cache init,
mips_cache_disable() can now be called from custom start.S files.
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Stefan Roese <sr@denx.de>
mtc0 zero, CP0_COMPARE
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
- mfc0 t0, CP0_CONFIG
- and t0, t0, MIPS_CONF_IMPL
- or t0, t0, CONF_CM_UNCACHED
- mtc0 t0, CP0_CONFIG
- ehb
+ /* Disable caches */
+ PTR_LA t9, mips_cache_disable
+ jalr t9
+ nop
#endif
#ifdef CONFIG_MIPS_CM
jr R_RETURN
END(mips_cache_reset)
+LEAF(mips_cache_disable)
+ move R_RETURN, ra
+ change_k0_cca_kseg1 CONF_CM_UNCACHED
+ jr R_RETURN
+ END(mips_cache_disable)
+
LEAF(change_k0_cca)
mfc0 t0, CP0_CONFIG
#if __mips_isa_rev >= 2