Merge https://gitlab.denx.de/u-boot/custodians/u-boot-net
[platform/kernel/u-boot.git] / arch / arm / cpu / armv7 / psci.S
index 6a36208..983cd90 100644 (file)
@@ -258,6 +258,10 @@ ENDPROC(psci_enable_smp)
 ENTRY(psci_cpu_off_common)
        push    {lr}
 
+       bl      psci_v7_flush_dcache_all
+
+       clrex                                   @ Why???
+
        mrc     p15, 0, r0, c1, c0, 0           @ SCTLR
        bic     r0, r0, #(1 << 2)               @ Clear C bit
        mcr     p15, 0, r0, c1, c0, 0           @ SCTLR
@@ -317,12 +321,25 @@ ENTRY(psci_arch_init)
 ENDPROC(psci_arch_init)
 .weak psci_arch_init
 
+ENTRY(psci_arch_cpu_entry)
+       mov     pc, lr
+ENDPROC(psci_arch_cpu_entry)
+.weak psci_arch_cpu_entry
+
 ENTRY(psci_cpu_entry)
        bl      psci_enable_smp
 
        bl      _nonsec_init
 
+       bl      psci_stack_setup
+
+       bl      psci_arch_cpu_entry
+
        bl      psci_get_cpu_id                 @ CPU ID => r0
+       mov     r2, r0                          @ CPU ID => r2
+       bl      psci_get_context_id             @ context id => r0
+       mov     r1, r0                          @ context id => r1
+       mov     r0, r2                          @ CPU ID => r0
        bl      psci_get_target_pc              @ target PC => r0
        b       _do_nonsec_entry
 ENDPROC(psci_cpu_entry)