drm/rockchip: vop2: Fix the windows switch between different layers
[drm/drm-misc.git] / arch / riscv / purgatory / entry.S
blob0e6ca6d5ae4b418f1c4d99906a5ab57f10485a00
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 <asm/asm.h>
11 #include <linux/linkage.h>
13 .text
15 SYM_CODE_START(purgatory_start)
17         lla     sp, .Lstack
18         mv      s0, a0  /* The hartid of the current hart */
19         mv      s1, a1  /* Phys address of the FDT image */
21         jal     purgatory
23         /* Start new image. */
24         mv      a0, s0
25         mv      a1, s1
26         ld      a2, riscv_kernel_entry
27         jr      a2
28 SYM_CODE_END(purgatory_start)
30 .align 4
31         .rept   256
32         .quad   0
33         .endr
34 .Lstack:
36 .data
38 .align LGREG
39 SYM_DATA(riscv_kernel_entry, .quad 0)
41 .end