Commit c02ee6a1 authored by Vasily Gorbik's avatar Vasily Gorbik
Browse files

s390/early: move control registers setup in C code

parent 13f9bae5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
#include <linux/bits.h>

#define CR0_CLOCK_COMPARATOR_SIGN	BIT(63 - 10)
#define CR0_LOW_ADDRESS_PROTECTION	BIT(63 - 35)
#define CR0_EMERGENCY_SIGNAL_SUBMASK	BIT(63 - 49)
#define CR0_EXTERNAL_CALL_SUBMASK	BIT(63 - 50)
#define CR0_CLOCK_COMPARATOR_SUBMASK	BIT(63 - 52)
+12 −0
Original line number Diff line number Diff line
@@ -260,6 +260,17 @@ static inline void save_vector_registers(void)
#endif
}

static inline void setup_control_registers(void)
{
	unsigned long reg;

	__ctl_store(reg, 0, 0);
	reg |= CR0_LOW_ADDRESS_PROTECTION;
	reg |= CR0_EMERGENCY_SIGNAL_SUBMASK;
	reg |= CR0_EXTERNAL_CALL_SUBMASK;
	__ctl_load(reg, 0, 0);
}

static int __init disable_vector_extension(char *str)
{
	S390_lowcore.machine_flags &= ~MACHINE_FLAG_VX;
@@ -317,5 +328,6 @@ void __init startup_init(void)
	save_vector_registers();
	setup_topology();
	sclp_early_detect();
	setup_control_registers();
	lockdep_on();
}
+0 −6
Original line number Diff line number Diff line
@@ -42,12 +42,6 @@ ENTRY(startup_continue)
#
	brasl	%r14,startup_init

# check control registers
	stctg	%c0,%c15,0(%r15)
	oi	6(%r15),0x60		# enable sigp emergency & external call
	oi	4(%r15),0x10		# switch on low address proctection
	lctlg	%c0,%c15,0(%r15)

	lam	0,15,.Laregs-.LPG1(%r13)	# load acrs needed by uaccess
	brasl	%r14,start_kernel		# go to C code
#