diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-06-12 04:26:24 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-06-12 04:27:30 -0400 |
commit | d90cbd469c9c7c1494fc2084af9319e6a557368b (patch) | |
tree | efb312e668fa596a0493f5318c19d07795e3a8b0 /arch/s390/kernel/head.S | |
parent | 8c4caa4fbfc18aa50d9d682f502303a8e0d72726 (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.S | 18 |
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 |
497 | 1: lpsw 2f-.LPG0(13) # machine type not good enough, crash | 495 | 1: 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 |
499 | 2: .long 0x000a0000,0x8badcccc | 509 | 2: .long 0x000a0000,0x8badcccc |
500 | #if defined(CONFIG_64BIT) | 510 | #if defined(CONFIG_64BIT) |