aboutsummaryrefslogtreecommitdiff
path: root/pk/pk.S
blob: 0273ecac3823eb1b292c612bbffc108203e8aacd (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
// See LICENSE for license details.

#include "encoding.h"

.section .text,"ax",@progbits
.globl _start
_start:

  la sp, stack_top
  la a0, trap_entry
  la gp, _gp
  csrw evec, a0

  li a0, SR_S | SR_PS | SR_EI | SR_S64
  or a1, a0, SR_EF | SR_EA
  csrw status, a1
  csrr a1, status
  csrw status, a0
  
  and a2, a1, SR_EF
  auipc a0, %pcrel_hi(have_fp)
  sw    a2, %lo(have_fp)(a0)
  
  and   a2, a1, SR_EA
  auipc a0, %pcrel_hi(have_accelerator)
  sw    a2, %lo(have_accelerator)(a0)

  call  boot