[U-Boot] [PATCH 2/2] pxa: fix memory coherency problem after relocation

Marek Vasut marex at denx.de
Sat Jun 22 04:29:56 CEST 2013


Dear Mike Dunn,

> On the xscale, the icache must be invalidated and the write buffers drained
> after writing code over the data bus, even if the caches are disabled. 
> Tested on the pxa270.
> 
> Signed-off-by: Mike Dunn <mikedunn at newsguy.com>
> ---
>  arch/arm/lib/relocate.S |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/lib/relocate.S b/arch/arm/lib/relocate.S
> index 4446da9..eedf314 100644
> --- a/arch/arm/lib/relocate.S
> +++ b/arch/arm/lib/relocate.S
> @@ -92,6 +92,15 @@ fixnext:
> 
>  relocate_done:
> 
> +#ifdef __XSCALE__
> +	/*
> +	 * On xscale, icache must be invalidated and write buffers drained,
> +	 * even with cache disabled - 4.2.7 of xscale core developer's manual
> +	 */
> +	mcr	p15, 0, r0, c7, c7, 0	/* invalidate icache */
> +	mcr	p15, 0, r0, c7, c10, 4	/* drain write buffer */
> +#endif
> +
>  	/* ARMv4- don't know bx lr but the assembler fails to see that */
> 
>  #ifdef __ARM_ARCH_4__

Acked-by: Marek Vasut <marex at denx.de>

Albert, do you want me to pick these or will you?

Best regards,
Marek Vasut


More information about the U-Boot mailing list