| 1 | |
| 2 | .section .text |
| 3 | |
| 4 | .global riscv_spinup |
| 5 | riscv_spinup: |
| 6 | .option norelax |
| 7 | li t0, (2 << 32) |
| 8 | csrw sstatus, t0 |
| 9 | csrw sie, zero |
| 10 | |
| 11 | lla t0, 0f |
| 12 | add t0, t0, a3 |
| 13 | csrw stvec, t0 |
| 14 | csrw satp, a2 |
| 15 | sfence.vma |
| 16 | unimp |
| 17 | .align 4 |
| 18 | 0: |
| 19 | csrw stvec, zero |
| 20 | |
| 21 | mv t0, a0 |
| 22 | mv sp, a1 |
| 23 | |
| 24 | mv a0, zero |
| 25 | mv a1, zero |
| 26 | mv a2, zero |
| 27 | mv a3, zero |
| 28 | mv a4, zero |
| 29 | mv a5, zero |
| 30 | mv a6, zero |
| 31 | mv a7, zero |
| 32 | mv s0, zero |
| 33 | mv s1, zero |
| 34 | mv s2, zero |
| 35 | mv s3, zero |
| 36 | mv s4, zero |
| 37 | mv s5, zero |
| 38 | mv s6, zero |
| 39 | mv s7, zero |
| 40 | mv s8, zero |
| 41 | mv s9, zero |
| 42 | mv s10, zero |
| 43 | mv s11, zero |
| 44 | mv t1, zero |
| 45 | mv t2, zero |
| 46 | mv t3, zero |
| 47 | mv t4, zero |
| 48 | mv t5, zero |
| 49 | mv t6, zero |
| 50 | mv tp, zero |
| 51 | mv gp, zero |
| 52 | mv ra, zero |
| 53 | |
| 54 | jr t0 |
| 55 | |
| 56 | .section .note.GNU-stack,"",%progbits |
