public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/3] Add workaround for Cortex-A9 errata
@ 2014-04-02 12:58 nitin.garg at freescale.com
  2014-04-02 12:58 ` [U-Boot] [PATCH 1/3] ARM: Add workaround for Cortex-A9 errata 794072 nitin.garg at freescale.com
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: nitin.garg at freescale.com @ 2014-04-02 12:58 UTC (permalink / raw)
  To: u-boot

From: Nitin Garg <nitin.garg@freescale.com>

These patches implement workaround for 2 Cortex-A9 erratas.
Enable these errata workaround for MX6.

Nitin Garg (3):
  ARM: Add workaround for Cortex-A9 errata 794072
  ARM: Add workaround for Cortex-A9 errata 761320
  MX6: Enable ARM errata workaround 794072 and 761320

 README                       |    2 ++
 arch/arm/cpu/armv7/start.S   |    7 ++++++-
 include/configs/mx6_common.h |    2 ++
 3 files changed, 10 insertions(+), 1 deletions(-)

-- 
1.7.4.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 1/3] ARM: Add workaround for Cortex-A9 errata 794072
  2014-04-02 12:58 [U-Boot] [PATCH 0/3] Add workaround for Cortex-A9 errata nitin.garg at freescale.com
@ 2014-04-02 12:58 ` nitin.garg at freescale.com
  2014-04-02 13:11   ` Dirk Behme
  2014-04-02 12:58 ` [U-Boot] [PATCH 2/3] ARM: Add workaround for Cortex-A9 errata 761320 nitin.garg at freescale.com
  2014-04-02 12:58 ` [U-Boot] [PATCH 3/3] MX6: Enable ARM errata workaround 794072 and 761320 nitin.garg at freescale.com
  2 siblings, 1 reply; 5+ messages in thread
From: nitin.garg at freescale.com @ 2014-04-02 12:58 UTC (permalink / raw)
  To: u-boot

From: Nitin Garg <nitin.garg@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@freescale.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
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 2/3] ARM: Add workaround for Cortex-A9 errata 761320
  2014-04-02 12:58 [U-Boot] [PATCH 0/3] Add workaround for Cortex-A9 errata nitin.garg at freescale.com
  2014-04-02 12:58 ` [U-Boot] [PATCH 1/3] ARM: Add workaround for Cortex-A9 errata 794072 nitin.garg at freescale.com
@ 2014-04-02 12:58 ` nitin.garg at freescale.com
  2014-04-02 12:58 ` [U-Boot] [PATCH 3/3] MX6: Enable ARM errata workaround 794072 and 761320 nitin.garg at freescale.com
  2 siblings, 0 replies; 5+ messages in thread
From: nitin.garg at freescale.com @ 2014-04-02 12:58 UTC (permalink / raw)
  To: u-boot

From: Nitin Garg <nitin.garg@freescale.com>

Full cache line writes to the same memory region from at least two
processors might deadlock the processor. Exists on r1, r2, r3
revisions.

Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
---
 README                     |    1 +
 arch/arm/cpu/armv7/start.S |    5 +++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/README b/README
index a496c65..b7c0f68 100644
--- a/README
+++ b/README
@@ -567,6 +567,7 @@ The following options need to be configured:
 		CONFIG_ARM_ERRATA_743622
 		CONFIG_ARM_ERRATA_751472
 		CONFIG_ARM_ERRATA_794072
+		CONFIG_ARM_ERRATA_761320
 
 		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 f3830c8..27be451 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -222,6 +222,11 @@ ENTRY(cpu_init_cp15)
 	orr	r0, r0, #1 << 11	@ set bit #11
 	mcr	p15, 0, r0, c15, c0, 1	@ write diagnostic register
 #endif
+#ifdef CONFIG_ARM_ERRATA_761320
+	mrc	p15, 0, r0, c15, c0, 1	@ read diagnostic register
+	orr	r0, r0, #1 << 21	@ set bit #21
+	mcr	p15, 0, r0, c15, c0, 1	@ write diagnostic register
+#endif
 
 	mov	pc, lr			@ back to my caller
 ENDPROC(cpu_init_cp15)
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 3/3] MX6: Enable ARM errata workaround 794072 and 761320
  2014-04-02 12:58 [U-Boot] [PATCH 0/3] Add workaround for Cortex-A9 errata nitin.garg at freescale.com
  2014-04-02 12:58 ` [U-Boot] [PATCH 1/3] ARM: Add workaround for Cortex-A9 errata 794072 nitin.garg at freescale.com
  2014-04-02 12:58 ` [U-Boot] [PATCH 2/3] ARM: Add workaround for Cortex-A9 errata 761320 nitin.garg at freescale.com
@ 2014-04-02 12:58 ` nitin.garg at freescale.com
  2 siblings, 0 replies; 5+ messages in thread
From: nitin.garg at freescale.com @ 2014-04-02 12:58 UTC (permalink / raw)
  To: u-boot

From: Nitin Garg <nitin.garg@freescale.com>

Since MX6 is Cortex-A9 r2p10, enable software workaround
for errata 794072 and 761320.

Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
---
 include/configs/mx6_common.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
index eb107d3..8a8920f 100644
--- a/include/configs/mx6_common.h
+++ b/include/configs/mx6_common.h
@@ -20,6 +20,8 @@
 #define CONFIG_ARM_ERRATA_742230
 #define CONFIG_ARM_ERRATA_743622
 #define CONFIG_ARM_ERRATA_751472
+#define CONFIG_ARM_ERRATA_794072
+#define CONFIG_ARM_ERRATA_761320
 #define CONFIG_BOARD_POSTCLK_INIT
 
 #ifndef CONFIG_SYS_L2CACHE_OFF
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 1/3] ARM: Add workaround for Cortex-A9 errata 794072
  2014-04-02 12:58 ` [U-Boot] [PATCH 1/3] ARM: Add workaround for Cortex-A9 errata 794072 nitin.garg at freescale.com
@ 2014-04-02 13:11   ` Dirk Behme
  0 siblings, 0 replies; 5+ messages in thread
From: Dirk Behme @ 2014-04-02 13:11 UTC (permalink / raw)
  To: u-boot

On 02.04.2014 14:58, nitin.garg at freescale.com wrote:
> From: Nitin Garg <nitin.garg@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@freescale.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
>

Acked-by: Dirk Behme <dirk.behme@de.bosch.com>

Best regards

Dirk

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-04-02 13:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-02 12:58 [U-Boot] [PATCH 0/3] Add workaround for Cortex-A9 errata nitin.garg at freescale.com
2014-04-02 12:58 ` [U-Boot] [PATCH 1/3] ARM: Add workaround for Cortex-A9 errata 794072 nitin.garg at freescale.com
2014-04-02 13:11   ` Dirk Behme
2014-04-02 12:58 ` [U-Boot] [PATCH 2/3] ARM: Add workaround for Cortex-A9 errata 761320 nitin.garg at freescale.com
2014-04-02 12:58 ` [U-Boot] [PATCH 3/3] MX6: Enable ARM errata workaround 794072 and 761320 nitin.garg at freescale.com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox