summaryrefslogtreecommitdiff
path: root/src/boot/entry.S
blob: 1a6f6b84cba7de4ebe1c3b41dd550edef99a3038 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.section .text.entry
.globl _start

_start:
    csrr t0, mhartid
    bnez t0, .L_park_harts

    la sp, _stack_top

    la a0, _bss_start
    la a1, _bss_end
    bge a0, a1, .L_call_main

.L_clear_bss:
    sd zero, (a0)
    addi a0, a0, 8
    blt a0, a1, .L_clear_bss

.L_call_main:
    call kernel_main

.L_infinite_loop:
    wfi
    j .L_infinite_loop

.L_park_harts:
    wfi
    j .L_park_harts