Files
linux-kernel-module-cheat/baremetal/arch/aarch64/multicore.S
Ciro Santilli 六四事件 法轮功 8dd01415f5 baremetal: only rebuild required files based on mtime
Move multcore test up with bootloader.
2018-11-22 00:00:03 +00:00

28 lines
503 B
ArmAsm

/* https://github.com/cirosantilli/linux-kernel-module-cheat#arm-multicore */
.global main
main:
/* Reset spinlock. */
mov x0, #0
ldr x1, =spinlock
str x0, [x1]
/* Read cpu id into x1. */
mrs x1, mpidr_el1
and x1, x1, #3
cbz x1, 1f
/* Only CPU 1 reaches this point and sets the spinlock. */
mov x0, #1
ldr x1, =spinlock
str x0, [x1]
b .
1:
/* Only CPU 0 reaches this point. */
ldr x0, spinlock
cbz x0, 1b
ret
spinlock:
.skip 8