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 
11 .macro	size, sym:req
12 	.size \sym, . - \sym
13 .endm
14 
15 .text
16 
17 .globl purgatory_start
18 purgatory_start:
19 
20 	lla	sp, .Lstack
21 	mv	s0, a0	/* The hartid of the current hart */
22 	mv	s1, a1	/* Phys address of the FDT image */
23 
24 	jal	purgatory
25 
26 	/* Start new image. */
27 	mv	a0, s0
28 	mv	a1, s1
29 	ld	a2, riscv_kernel_entry
30 	jr	a2
31 
32 size purgatory_start
33 
34 .align 4
35 	.rept	256
36 	.quad	0
37 	.endr
38 .Lstack:
39 
40 .data
41 
42 .globl riscv_kernel_entry
43 riscv_kernel_entry:
44 	.quad	0
45 size riscv_kernel_entry
46 
47 .end
48