162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * purgatory: Runs between two kernels 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2022 Huawei Technologies Co, Ltd. 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Author: Li Zhengyu (lizhengyu3@huawei.com) 862306a36Sopenharmony_ci * 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci.macro size, sym:req 1262306a36Sopenharmony_ci .size \sym, . - \sym 1362306a36Sopenharmony_ci.endm 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci.text 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci.globl purgatory_start 1862306a36Sopenharmony_cipurgatory_start: 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci lla sp, .Lstack 2162306a36Sopenharmony_ci mv s0, a0 /* The hartid of the current hart */ 2262306a36Sopenharmony_ci mv s1, a1 /* Phys address of the FDT image */ 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci jal purgatory 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci /* Start new image. */ 2762306a36Sopenharmony_ci mv a0, s0 2862306a36Sopenharmony_ci mv a1, s1 2962306a36Sopenharmony_ci ld a2, riscv_kernel_entry 3062306a36Sopenharmony_ci jr a2 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_cisize purgatory_start 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci.align 4 3562306a36Sopenharmony_ci .rept 256 3662306a36Sopenharmony_ci .quad 0 3762306a36Sopenharmony_ci .endr 3862306a36Sopenharmony_ci.Lstack: 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci.data 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci.globl riscv_kernel_entry 4362306a36Sopenharmony_ciriscv_kernel_entry: 4462306a36Sopenharmony_ci .quad 0 4562306a36Sopenharmony_cisize riscv_kernel_entry 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci.end 48