[PATCH 3/4] mips: refactor disabling of caches
Stefan Roese
sr at denx.de
Thu Jul 16 08:20:13 CEST 2020
On 12.07.20 00:45, Daniel Schwierzeck wrote:
> 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 at gmail.com>
Reviewed-by: Stefan Roese <sr at denx.de>
Tested-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
>
> arch/mips/cpu/start.S | 9 ++++-----
> arch/mips/lib/cache_init.S | 6 ++++++
> 2 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/arch/mips/cpu/start.S b/arch/mips/cpu/start.S
> index c3d1e64c1c..a9f8743717 100644
> --- a/arch/mips/cpu/start.S
> +++ b/arch/mips/cpu/start.S
> @@ -196,11 +196,10 @@ wr_done:
> 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
> diff --git a/arch/mips/lib/cache_init.S b/arch/mips/lib/cache_init.S
> index 2233d27137..602741c65d 100644
> --- a/arch/mips/lib/cache_init.S
> +++ b/arch/mips/lib/cache_init.S
> @@ -418,6 +418,12 @@ return:
> 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
>
Viele Grüße,
Stefan
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list