aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/head.S
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2009-06-12 04:26:24 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-06-12 04:27:30 -0400
commitd90cbd469c9c7c1494fc2084af9319e6a557368b (patch)
treeefb312e668fa596a0493f5318c19d07795e3a8b0 /arch/s390/kernel/head.S
parent8c4caa4fbfc18aa50d9d682f502303a8e0d72726 (diff)
[S390] add mini sclp driver
This adds a mini sclp device driver for very early use. The primary and probably only use will be to emit a message to the console if the cpu doesn't provide the minimum required capabilities to run the kernel. After printing the message a disabled wait will be loaded and the machine stops operating. Printing the message is also part of this patch. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/head.S')
-rw-r--r--arch/s390/kernel/head.S18
1 files changed, 14 insertions, 4 deletions
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S
index bf8cf1caeffc..6d227413cbe7 100644
--- a/arch/s390/kernel/head.S
+++ b/arch/s390/kernel/head.S
@@ -1,7 +1,5 @@
1/* 1/*
2 * arch/s390/kernel/head.S 2 * Copyright IBM Corp. 1999,2009
3 *
4 * Copyright (C) IBM Corp. 1999,2006
5 * 3 *
6 * Author(s): Hartmut Penner <hp@de.ibm.com> 4 * Author(s): Hartmut Penner <hp@de.ibm.com>
7 * Martin Schwidefsky <schwidefsky@de.ibm.com> 5 * Martin Schwidefsky <schwidefsky@de.ibm.com>
@@ -494,7 +492,19 @@ startup:basr %r13,0 # get base
494 n %r0,2f+12-.LPG0(%r13) 492 n %r0,2f+12-.LPG0(%r13)
495 cl %r0,2f+12-.LPG0(%r13) 493 cl %r0,2f+12-.LPG0(%r13)
496 je 3f 494 je 3f
4971: lpsw 2f-.LPG0(13) # machine type not good enough, crash 4951: l %r15,.Lstack-.LPG0(%r13)
496 ahi %r15,1<<(PAGE_SHIFT+THREAD_ORDER) # init_task_union+THREAD_SIZE
497 ahi %r15,-96
498 la %r2,.Lals_string-.LPG0(%r13)
499 l %r3,.Lsclp_print-.LPG0(%r13)
500 basr %r14,%r3
501 lpsw 2f-.LPG0(%r13) # machine type not good enough, crash
502.Lals_string:
503 .asciz "The Linux kernel requires more recent processor hardware"
504.Lsclp_print:
505 .long _sclp_print_early
506.Lstack:
507 .long init_thread_union
498 .align 16 508 .align 16
4992: .long 0x000a0000,0x8badcccc 5092: .long 0x000a0000,0x8badcccc
500#if defined(CONFIG_64BIT) 510#if defined(CONFIG_64BIT)