return mpidr_reg & CPU_ID_MASK;
}
+void __noreturn lcpu_arch_jump_to(void *sp, ukplat_lcpu_entry_t entry)
+{
+ __asm__ __volatile__ (
+ "mov sp, %0\n" /* set the sp */
+ "br %1\n" /* branch to the entry function */
+ :
+ : "r"(sp), "r"(entry)
+ : /* sp not needed */);
+
+ /* just make the compiler happy about returning function */
+ __builtin_unreachable();
+}
+
#ifdef CONFIG_HAVE_SMP
/**
* The number of cells for the size field should be 0 in cpu nodes.
return ret;
}
-void __noreturn lcpu_arch_jump_to(void *sp, ukplat_lcpu_entry_t entry)
-{
- __asm__ __volatile__ (
- "mov sp, %0\n" /* set the sp */
- "br %1\n" /* branch to the entry function */
- :
- : "r"(sp), "r"(entry)
- : /* sp not needed */);
-
- /* just make the compiler happy about returning function */
- __builtin_unreachable();
-}
-
int lcpu_arch_mp_init(void *arg)
{
int fdt_cpu;