aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/early.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/early.c')
-rw-r--r--arch/s390/kernel/early.c69
1 files changed, 0 insertions, 69 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
index 4427ab7ac23a..549a73a4b543 100644
--- a/arch/s390/kernel/early.c
+++ b/arch/s390/kernel/early.c
@@ -64,7 +64,6 @@ asm(
64 " .align 4\n" 64 " .align 4\n"
65 " .type savesys_ipl_nss, @function\n" 65 " .type savesys_ipl_nss, @function\n"
66 "savesys_ipl_nss:\n" 66 "savesys_ipl_nss:\n"
67#ifdef CONFIG_64BIT
68 " stmg 6,15,48(15)\n" 67 " stmg 6,15,48(15)\n"
69 " lgr 14,3\n" 68 " lgr 14,3\n"
70 " sam31\n" 69 " sam31\n"
@@ -72,13 +71,6 @@ asm(
72 " sam64\n" 71 " sam64\n"
73 " lgr 2,14\n" 72 " lgr 2,14\n"
74 " lmg 6,15,48(15)\n" 73 " lmg 6,15,48(15)\n"
75#else
76 " stm 6,15,24(15)\n"
77 " lr 14,3\n"
78 " diag 2,14,0x8\n"
79 " lr 2,14\n"
80 " lm 6,15,24(15)\n"
81#endif
82 " br 14\n" 74 " br 14\n"
83 " .size savesys_ipl_nss, .-savesys_ipl_nss\n" 75 " .size savesys_ipl_nss, .-savesys_ipl_nss\n"
84 " .previous\n"); 76 " .previous\n");
@@ -240,7 +232,6 @@ static noinline __init void detect_machine_type(void)
240 232
241static __init void setup_topology(void) 233static __init void setup_topology(void)
242{ 234{
243#ifdef CONFIG_64BIT
244 int max_mnest; 235 int max_mnest;
245 236
246 if (!test_facility(11)) 237 if (!test_facility(11))
@@ -251,7 +242,6 @@ static __init void setup_topology(void)
251 break; 242 break;
252 } 243 }
253 topology_max_mnest = max_mnest; 244 topology_max_mnest = max_mnest;
254#endif
255} 245}
256 246
257static void early_pgm_check_handler(void) 247static void early_pgm_check_handler(void)
@@ -290,58 +280,6 @@ static noinline __init void setup_facility_list(void)
290 ARRAY_SIZE(S390_lowcore.stfle_fac_list)); 280 ARRAY_SIZE(S390_lowcore.stfle_fac_list));
291} 281}
292 282
293static __init void detect_mvpg(void)
294{
295#ifndef CONFIG_64BIT
296 int rc;
297
298 asm volatile(
299 " la 0,0\n"
300 " mvpg %2,%2\n"
301 "0: la %0,0\n"
302 "1:\n"
303 EX_TABLE(0b,1b)
304 : "=d" (rc) : "0" (-EOPNOTSUPP), "a" (0) : "memory", "cc", "0");
305 if (!rc)
306 S390_lowcore.machine_flags |= MACHINE_FLAG_MVPG;
307#endif
308}
309
310static __init void detect_ieee(void)
311{
312#ifndef CONFIG_64BIT
313 int rc, tmp;
314
315 asm volatile(
316 " efpc %1,0\n"
317 "0: la %0,0\n"
318 "1:\n"
319 EX_TABLE(0b,1b)
320 : "=d" (rc), "=d" (tmp): "0" (-EOPNOTSUPP) : "cc");
321 if (!rc)
322 S390_lowcore.machine_flags |= MACHINE_FLAG_IEEE;
323#endif
324}
325
326static __init void detect_csp(void)
327{
328#ifndef CONFIG_64BIT
329 int rc;
330
331 asm volatile(
332 " la 0,0\n"
333 " la 1,0\n"
334 " la 2,4\n"
335 " csp 0,2\n"
336 "0: la %0,0\n"
337 "1:\n"
338 EX_TABLE(0b,1b)
339 : "=d" (rc) : "0" (-EOPNOTSUPP) : "cc", "0", "1", "2");
340 if (!rc)
341 S390_lowcore.machine_flags |= MACHINE_FLAG_CSP;
342#endif
343}
344
345static __init void detect_diag9c(void) 283static __init void detect_diag9c(void)
346{ 284{
347 unsigned int cpu_address; 285 unsigned int cpu_address;
@@ -360,7 +298,6 @@ static __init void detect_diag9c(void)
360 298
361static __init void detect_diag44(void) 299static __init void detect_diag44(void)
362{ 300{
363#ifdef CONFIG_64BIT
364 int rc; 301 int rc;
365 302
366 asm volatile( 303 asm volatile(
@@ -371,12 +308,10 @@ static __init void detect_diag44(void)
371 : "=d" (rc) : "0" (-EOPNOTSUPP) : "cc"); 308 : "=d" (rc) : "0" (-EOPNOTSUPP) : "cc");
372 if (!rc) 309 if (!rc)
373 S390_lowcore.machine_flags |= MACHINE_FLAG_DIAG44; 310 S390_lowcore.machine_flags |= MACHINE_FLAG_DIAG44;
374#endif
375} 311}
376 312
377static __init void detect_machine_facilities(void) 313static __init void detect_machine_facilities(void)
378{ 314{
379#ifdef CONFIG_64BIT
380 if (test_facility(8)) { 315 if (test_facility(8)) {
381 S390_lowcore.machine_flags |= MACHINE_FLAG_EDAT1; 316 S390_lowcore.machine_flags |= MACHINE_FLAG_EDAT1;
382 __ctl_set_bit(0, 23); 317 __ctl_set_bit(0, 23);
@@ -393,7 +328,6 @@ static __init void detect_machine_facilities(void)
393 S390_lowcore.machine_flags |= MACHINE_FLAG_TLB_LC; 328 S390_lowcore.machine_flags |= MACHINE_FLAG_TLB_LC;
394 if (test_facility(129)) 329 if (test_facility(129))
395 S390_lowcore.machine_flags |= MACHINE_FLAG_VX; 330 S390_lowcore.machine_flags |= MACHINE_FLAG_VX;
396#endif
397} 331}
398 332
399static int __init cad_setup(char *str) 333static int __init cad_setup(char *str)
@@ -501,9 +435,6 @@ void __init startup_init(void)
501 ipl_update_parameters(); 435 ipl_update_parameters();
502 setup_boot_command_line(); 436 setup_boot_command_line();
503 create_kernel_nss(); 437 create_kernel_nss();
504 detect_mvpg();
505 detect_ieee();
506 detect_csp();
507 detect_diag9c(); 438 detect_diag9c();
508 detect_diag44(); 439 detect_diag44();
509 detect_machine_facilities(); 440 detect_machine_facilities();