xref: /linux/arch/s390/kernel/head.S (revision 24f171c7e145f43b9f187578e89b0982ce87e54c)
1*b3bdfdf1SHeiko Carstens/* SPDX-License-Identifier: GPL-2.0 */
2*b3bdfdf1SHeiko Carstens/*
3*b3bdfdf1SHeiko Carstens * Copyright IBM Corp. 1999, 2010
4*b3bdfdf1SHeiko Carstens *
5*b3bdfdf1SHeiko Carstens *   Author(s):	Hartmut Penner <hp@de.ibm.com>
6*b3bdfdf1SHeiko Carstens *		Martin Schwidefsky <schwidefsky@de.ibm.com>
7*b3bdfdf1SHeiko Carstens *		Rob van der Heij <rvdhei@iae.nl>
8*b3bdfdf1SHeiko Carstens *
9*b3bdfdf1SHeiko Carstens */
10*b3bdfdf1SHeiko Carstens
11*b3bdfdf1SHeiko Carstens#include <linux/init.h>
12*b3bdfdf1SHeiko Carstens#include <linux/linkage.h>
13*b3bdfdf1SHeiko Carstens#include <asm/lowcore.h>
14*b3bdfdf1SHeiko Carstens#include <asm/asm-offsets.h>
15*b3bdfdf1SHeiko Carstens#include <asm/thread_info.h>
16*b3bdfdf1SHeiko Carstens#include <asm/page.h>
17*b3bdfdf1SHeiko Carstens#include <asm/ptrace.h>
18*b3bdfdf1SHeiko Carstens
19*b3bdfdf1SHeiko Carstens__HEAD
20*b3bdfdf1SHeiko CarstensSYM_CODE_START(startup_continue)
21*b3bdfdf1SHeiko Carstens#
22*b3bdfdf1SHeiko Carstens# Setup stack
23*b3bdfdf1SHeiko Carstens#
24*b3bdfdf1SHeiko Carstens	GET_LC	%r2
25*b3bdfdf1SHeiko Carstens	larl	%r14,init_task
26*b3bdfdf1SHeiko Carstens	stg	%r14,__LC_CURRENT(%r2)
27*b3bdfdf1SHeiko Carstens	larl	%r15,init_thread_union+STACK_INIT_OFFSET
28*b3bdfdf1SHeiko Carstens	stg	%r15,__LC_KERNEL_STACK(%r2)
29*b3bdfdf1SHeiko Carstens	brasl	%r14,sclp_early_adjust_va	# allow sclp_early_printk
30*b3bdfdf1SHeiko Carstens	brasl	%r14,startup_init		# s390 specific early init
31*b3bdfdf1SHeiko Carstens	brasl	%r14,start_kernel		# common init code
32*b3bdfdf1SHeiko Carstens#
33*b3bdfdf1SHeiko Carstens# We returned from start_kernel ?!? PANIK
34*b3bdfdf1SHeiko Carstens#
35*b3bdfdf1SHeiko Carstens	basr	%r13,0
36*b3bdfdf1SHeiko Carstens	lpswe	dw_psw-.(%r13)		# load disabled wait psw
37*b3bdfdf1SHeiko CarstensSYM_CODE_END(startup_continue)
38*b3bdfdf1SHeiko Carstens
39*b3bdfdf1SHeiko Carstens	.balign	16
40*b3bdfdf1SHeiko CarstensSYM_DATA_LOCAL(dw_psw,	.quad 0x0002000180000000,0x0000000000000000)
41