Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/riscv/purgatory/entry.S
26451 views
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 ([email protected])
8
*
9
*/
10
#include <asm/asm.h>
11
#include <linux/linkage.h>
12
13
.text
14
15
.align 2
16
SYM_CODE_START(purgatory_start)
17
18
lla sp, .Lstack
19
mv s0, a0 /* The hartid of the current hart */
20
mv s1, a1 /* Phys address of the FDT image */
21
22
jal purgatory
23
24
/* Start new image. */
25
mv a0, s0
26
mv a1, s1
27
ld a2, riscv_kernel_entry
28
jr a2
29
SYM_CODE_END(purgatory_start)
30
31
.align 4
32
.rept 256
33
.quad 0
34
.endr
35
.Lstack:
36
37
.data
38
39
.align LGREG
40
SYM_DATA(riscv_kernel_entry, .quad 0)
41
42
.end
43
44