Skip to contentSkip to conversation

ARM: mach-omap2: apply the errata at run time rather

PATCH New srinidhi kasagar 2 participants 2 messages Jan 29, 2013

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH v2 5/5 ARM: mach-omap2: apply the errata at run time rather

Get the pl310 rtl revision number which is stashed by the l2x0 driver and apply the required errata ERRATA_727915 accordingly.

---
 arch/arm/mach-omap2/sleep44xx.S |   25 +++++++++++++++++++++----
 1 files changed, 21 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/sleep44xx.S +21 -4
index 88ff83a..7440f65 100644
@@ -157,11 +157,19 @@ skip_scu_gp_set:
 	ldrne	r0, [r8, #L2X0_SAVE_OFFSET1]	@ memory.
 	cmp	r0, #3
 	bne	do_WFI
-#ifdef CONFIG_PL310_ERRATA_727915
+	/* Check for PL310_ERRATA_727915 */
+	ldr	r0, =l2x0_revision
+	cmp	r0, #0x4
+	beq	dosmc
+	cmp	r0, #0x5
+	beq	dosmc
+	b	nosmc
+dosmc:
 	mov	r0, #0x03
 	mov	r12, #OMAP4_MON_L2X0_DBG_CTRL_INDEX
 	DO_SMC
-#endif
+
+nosmc:
 	bl	omap4_get_l2cache_base
 	mov	r2, r0
 	ldr	r0, =0xffff
@@ -171,11 +179,20 @@ wait:
 	ldr	r1, =0xffff
 	ands	r0, r0, r1
 	bne	wait
-#ifdef CONFIG_PL310_ERRATA_727915
+
+	/* Check for PL310_ERRATA_727915 */
+	ldr	r0, =l2x0_revision
+	cmp	r0, #0x4
+	beq	dosmc2
+	cmp	r0, #0x5
+	beq	dosmc2
+	b	nosmc2
+dosmc2:
 	mov	r0, #0x00
 	mov	r12, #OMAP4_MON_L2X0_DBG_CTRL_INDEX
 	DO_SMC
-#endif
+
+nosmc2:
 l2x_sync:
 	bl	omap4_get_l2cache_base
 	mov	r2, r0
Signature · 1 line
1.7.2.dirty
#1 lore raw

PATCH v2 5/5 ARM: mach-omap2: apply the errata at run time rather

Hello.

Quoted 14 lines · srinidhi kasagar

Get the pl310 rtl revision number which is stashed by the l2x0 driver and apply the required errata ERRATA_727915 accordingly.

---
  arch/arm/mach-omap2/sleep44xx.S |   25 +++++++++++++++++++++----
  1 files changed, 21 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/sleep44xx.S +0 -0
index 88ff83a..7440f65 100644
@@ -157,11 +157,19 @@ skip_scu_gp_set:
  	ldrne	r0, [r8, #L2X0_SAVE_OFFSET1]	@ memory.

arch/arm/mach-omap2/sleep44xx.S skip_scu_gp_set: · line 166

Quoted 10 lines
arch/arm/mach-omap2/sleep44xx.S +7 -1
  	cmp	r0, #3
  	bne	do_WFI
-#ifdef CONFIG_PL310_ERRATA_727915
+	/* Check for PL310_ERRATA_727915 */
+	ldr	r0, =l2x0_revision
+	cmp	r0, #0x4
+	beq	dosmc
+	cmp	r0, #0x5
+	beq	dosmc
+	b	nosmc

Why not just:
bne nosmc

Quoted 13 lines
arch/arm/mach-omap2/sleep44xx.S +3 -1
+dosmc:
  	mov	r0, #0x03
  	mov	r12, #OMAP4_MON_L2X0_DBG_CTRL_INDEX
  	DO_SMC
-#endif
+
+nosmc:
  	bl	omap4_get_l2cache_base
  	mov	r2, r0
  	ldr	r0, =0xffff
@@ -171,11 +179,20 @@ wait:
  	ldr	r1, =0xffff
  	ands	r0, r0, r1

arch/arm/mach-omap2/sleep44xx.S wait: · line 189

Quoted 10 lines
arch/arm/mach-omap2/sleep44xx.S +8 -1
  	bne	wait
-#ifdef CONFIG_PL310_ERRATA_727915
+
+	/* Check for PL310_ERRATA_727915 */
+	ldr	r0, =l2x0_revision
+	cmp	r0, #0x4
+	beq	dosmc2
+	cmp	r0, #0x5
+	beq	dosmc2
+	b	nosmc2

Same question.

arch/arm/mach-omap2/sleep44xx.S wait: · line 198

Quoted 10 lines
arch/arm/mach-omap2/sleep44xx.S +3 -1
+dosmc2:
  	mov	r0, #0x00
  	mov	r12, #OMAP4_MON_L2X0_DBG_CTRL_INDEX
  	DO_SMC
-#endif
+
+nosmc2:
  l2x_sync:
  	bl	omap4_get_l2cache_base
  	mov	r2, r0

WBR, Sergei