[U-Boot] [PATCH] OMAP3: set L1NEON bit in aux control register

Dirk Behme dirk.behme at googlemail.com
Sat Nov 15 06:52:40 CET 2008


Mans Rullgard wrote:
> This is required to work around ARM erratum 621766, affecting
> Cortex-A8 r1p0-3:
> 
>   When a sequence of Neon load instructions is intermixed with several
>   branches, some of which are mispredicted, it is possible for the
>   processor to deadlock due to Neon loads on the speculative path not
>   being properly flushed from the Neon load queue.
> 
> Signed-off-by: Mans Rullgard <mans at mansr.com>

Acked-by: Dirk Behme <dirk.behme at gmail.com>

---

Jean-Christophe: This is for u-boot-arm/omap3, so please read the 
subject as "[PATCH-OMAP3] OMAP3: ..."

> ---
>  cpu/arm_cortexa8/omap3/board.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/cpu/arm_cortexa8/omap3/board.c b/cpu/arm_cortexa8/omap3/board.c
> index 90809a6..7c2a7ea 100644
> --- a/cpu/arm_cortexa8/omap3/board.c
> +++ b/cpu/arm_cortexa8/omap3/board.c
> @@ -139,6 +139,8 @@ void setup_auxcr()
>  	__asm__ __volatile__("mrc p15, 0, r0, c1, c0, 1");
>  	/* Enabling ASA */
>  	__asm__ __volatile__("orr r0, r0, #0x10");
> +	/* Enable L1NEON */
> +	__asm__ __volatile__("orr r0, r0, #1<<5");
>  	/* SMI instruction to call ROM Code API */
>  	__asm__ __volatile__(".word 0xE1600070");
>  	__asm__ __volatile__("mov r0, %0":"=r"(i));



More information about the U-Boot mailing list