[U-Boot] [PATCH v3 1/3] ARM: Add workaround for Cortex-A9 errata 794072

Nitin Garg nitin.garg at freescale.com
Wed Apr 2 17:46:33 CEST 2014


Hi Stefano,

Errata 742230 applies to r1p0, r1p1, r1p2, r1p3, r2p0, r2p1,
r2p2 revision of Cortex-A9. Errata 794072 applies to r1, 2, 
r3, r4 revisions. Software workaround is same for both.

Since diff products use diff revisions of core, I would 
suggest to have it this way. Otherwise it might lead to 
confusion if one has to enable 742230 (for 794072 workaround)
even though the core revision does not need it.

Regards,
Nitin Garg


-----Original Message-----
From: Stefano Babic [mailto:sbabic at denx.de] 
Sent: Wednesday, April 02, 2014 10:26 AM
To: Garg Nitin-B37173; trini at ti.com; Estevam Fabio-R49496; sbabic at denx.de
Cc: u-boot at lists.denx.de
Subject: Re: [PATCH v3 1/3] ARM: Add workaround for Cortex-A9 errata 794072

Hi Nitin,

On 02/04/2014 15:55, nitin.garg at freescale.com wrote:
> From: Nitin Garg <nitin.garg at freescale.com>
> 
> A short loop including a DMB instruction might cause a denial of 
> service on another processor which executes a CP15 broadcast operation.
> Exists on r1, r2, r3, r4 revisions.
> 
> Signed-off-by: Nitin Garg <nitin.garg at freescale.com>
> Acked-by: Dirk Behme <dirk.behme at de.bosch.com>
> ---
>  README                     |    1 +
>  arch/arm/cpu/armv7/start.S |    2 +-
>  2 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/README b/README
> index 7cb7c4f..a496c65 100644
> --- a/README
> +++ b/README
> @@ -566,6 +566,7 @@ The following options need to be configured:
>  		CONFIG_ARM_ERRATA_742230
>  		CONFIG_ARM_ERRATA_743622
>  		CONFIG_ARM_ERRATA_751472
> +		CONFIG_ARM_ERRATA_794072
>  
>  		If set, the workarounds for these ARM errata are applied early
>  		during U-Boot startup. Note that these options force the diff --git 
> a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S index 
> ac1e55a..f3830c8 100644
> --- a/arch/arm/cpu/armv7/start.S
> +++ b/arch/arm/cpu/armv7/start.S
> @@ -205,7 +205,7 @@ ENTRY(cpu_init_cp15)
>  	mcr	p15, 0, r0, c1, c0, 0	@ write system control register
>  #endif
>  
> -#ifdef CONFIG_ARM_ERRATA_742230
> +#if (defined(CONFIG_ARM_ERRATA_742230) || 
> +defined(CONFIG_ARM_ERRATA_794072))
>  	mrc	p15, 0, r0, c15, c0, 1	@ read diagnostic register
>  	orr	r0, r0, #1 << 4		@ set bit #4
>  	mcr	p15, 0, r0, c15, c0, 1	@ write diagnostic register
> 

Apart having an additional errata number, which is the contribute of
CONFIG_ARM_ERRATA_794072 ? We are already covered with
CONFIG_ARM_ERRATA_742230 and the work-around for dmb is already implemented.

Best regards,
Stefano Babic

--
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================




More information about the U-Boot mailing list