Skip to content

JIRA SW-5991 #20

Closed
Closed
@nomis

Description

@nomis

Could you provide an explanation of the workaround that references JIRA SW-5991?

diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index 5900cd5..952736d 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -73,10 +73,19 @@ ENDPROC(cpu_v6_reset)
  *
  * IRQs are already disabled.
  */
+
+/* See jira SW-5991 for details of this workaround */
 ENTRY(cpu_v6_do_idle)
-   mov r1, #0
-   mcr p15, 0, r1, c7, c10, 4      @ DWB - WFI may enter a low-power mode
-   mcr p15, 0, r1, c7, c0, 4       @ wait for interrupt
+   .align 5
+   mov     r1, #2
+1: subs    r1, #1
+   nop
+   mcreq   p15, 0, r1, c7, c10, 4      @ DWB - WFI may enter a low-power mode
+   mcreq   p15, 0, r1, c7, c0, 4       @ wait for interrupt
+   nop
+   nop
+   nop
+   bne 1b
    mov pc, lr

 ENTRY(cpu_v6_dcache_clean_area)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions