Merge remote-tracking branch 'origin/master' into isa/arm64
[lunaix-os.git] / lunaix-os / arch / aarch64 / boot / start.S
1 .section .boot.data
2     .align 4
3     stack_end:
4         .skip 512
5     stack_top:
6
7 .section .boot.text
8     .global start_
9
10     /*
11         We follow Linux-arm64 boot protocol
12             ldr x0, dtb
13             mov x1, xzr
14             mov x2, xzr
15             mov x3, xzr
16      */
17     start_:
18         adr x4, stack_top
19         mov sp, x4
20         mov fp, xzr
21
22         adr x4, aarch64_init
23         bl x4
24          
25         // x0: ptr to boot_handoff
26         adr x4, kernel_bootstrap
27         bl x4