1736e30afSLi Zhengyu/* SPDX-License-Identifier: GPL-2.0-only */ 2736e30afSLi Zhengyu/* 3736e30afSLi Zhengyu * purgatory: Runs between two kernels 4736e30afSLi Zhengyu * 5736e30afSLi Zhengyu * Copyright (C) 2022 Huawei Technologies Co, Ltd. 6736e30afSLi Zhengyu * 7736e30afSLi Zhengyu * Author: Li Zhengyu (lizhengyu3@huawei.com) 8736e30afSLi Zhengyu * 9736e30afSLi Zhengyu */ 10736e30afSLi Zhengyu 11736e30afSLi Zhengyu.macro size, sym:req 12736e30afSLi Zhengyu .size \sym, . - \sym 13736e30afSLi Zhengyu.endm 14*6e62dab3SDaniel Maslowski#include <asm/asm.h> 15*6e62dab3SDaniel Maslowski#include <linux/linkage.h> 16736e30afSLi Zhengyu 17736e30afSLi Zhengyu.text 18736e30afSLi Zhengyu 19736e30afSLi Zhengyu.globl purgatory_start 20736e30afSLi Zhengyupurgatory_start: 21736e30afSLi Zhengyu 22736e30afSLi Zhengyu lla sp, .Lstack 23736e30afSLi Zhengyu mv s0, a0 /* The hartid of the current hart */ 24736e30afSLi Zhengyu mv s1, a1 /* Phys address of the FDT image */ 25736e30afSLi Zhengyu 26736e30afSLi Zhengyu jal purgatory 27736e30afSLi Zhengyu 28736e30afSLi Zhengyu /* Start new image. */ 29736e30afSLi Zhengyu mv a0, s0 30736e30afSLi Zhengyu mv a1, s1 31736e30afSLi Zhengyu ld a2, riscv_kernel_entry 32736e30afSLi Zhengyu jr a2 33736e30afSLi Zhengyu 34736e30afSLi Zhengyusize purgatory_start 35736e30afSLi Zhengyu 36736e30afSLi Zhengyu.align 4 37736e30afSLi Zhengyu .rept 256 38736e30afSLi Zhengyu .quad 0 39736e30afSLi Zhengyu .endr 40736e30afSLi Zhengyu.Lstack: 41736e30afSLi Zhengyu 42736e30afSLi Zhengyu.data 43736e30afSLi Zhengyu 44*6e62dab3SDaniel Maslowski.align LGREG 45736e30afSLi Zhengyu.globl riscv_kernel_entry 46736e30afSLi Zhengyuriscv_kernel_entry: 47736e30afSLi Zhengyu .quad 0 48736e30afSLi Zhengyusize riscv_kernel_entry 49736e30afSLi Zhengyu 50736e30afSLi Zhengyu.end 51