1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * purgatory: Runs between two kernels |
4 | * |
5 | * Copyright (C) 2022 Huawei Technologies Co, Ltd. |
6 | * |
7 | * Author: Li Zhengyu (lizhengyu3@huawei.com) |
8 | * |
9 | */ |
10 | #include <linux/linkage.h> |
11 | |
12 | .text |
13 | |
14 | SYM_CODE_START(purgatory_start) |
15 | |
16 | lla sp, .Lstack |
17 | mv s0, a0 /* The hartid of the current hart */ |
18 | mv s1, a1 /* Phys address of the FDT image */ |
19 | |
20 | jal purgatory |
21 | |
22 | /* Start new image. */ |
23 | mv a0, s0 |
24 | mv a1, s1 |
25 | ld a2, riscv_kernel_entry |
26 | jr a2 |
27 | SYM_CODE_END(purgatory_start) |
28 | |
29 | .align 4 |
30 | .rept 256 |
31 | .quad 0 |
32 | .endr |
33 | .Lstack: |
34 | |
35 | .data |
36 | |
37 | SYM_DATA(riscv_kernel_entry, .quad 0) |
38 | |
39 | .end |
40 | |