diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:55:21 -0400 |
commit | bbb20089a3275a19e475dbc21320c3742e3ca423 (patch) | |
tree | 216fdc1cbef450ca688135c5b8969169482d9a48 /arch/s390/kernel/head.S | |
parent | 3e48e656903e9fd8bc805c6a2c4264d7808d315b (diff) | |
parent | 657a77fa7284d8ae28dfa48f1dc5d919bf5b2843 (diff) |
Merge branch 'dmaengine' into async-tx-next
Conflicts:
crypto/async_tx/async_xor.c
drivers/dma/ioat/dma_v2.h
drivers/dma/ioat/pci.c
drivers/md/raid5.c
Diffstat (limited to 'arch/s390/kernel/head.S')
-rw-r--r-- | arch/s390/kernel/head.S | 67 |
1 files changed, 48 insertions, 19 deletions
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S index 22596d70fc2e..ec6882348520 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> |
@@ -64,7 +62,7 @@ __HEAD | |||
64 | .org 0x100 | 62 | .org 0x100 |
65 | # | 63 | # |
66 | # subroutine for loading from tape | 64 | # subroutine for loading from tape |
67 | # Paramters: | 65 | # Parameters: |
68 | # R1 = device number | 66 | # R1 = device number |
69 | # R2 = load address | 67 | # R2 = load address |
70 | .Lloader: | 68 | .Lloader: |
@@ -479,27 +477,58 @@ startup:basr %r13,0 # get base | |||
479 | mvc __LC_LAST_UPDATE_TIMER(8),6f-.LPG0(%r13) | 477 | mvc __LC_LAST_UPDATE_TIMER(8),6f-.LPG0(%r13) |
480 | mvc __LC_EXIT_TIMER(8),5f-.LPG0(%r13) | 478 | mvc __LC_EXIT_TIMER(8),5f-.LPG0(%r13) |
481 | #ifndef CONFIG_MARCH_G5 | 479 | #ifndef CONFIG_MARCH_G5 |
482 | # check processor version against MARCH_{G5,Z900,Z990,Z9_109,Z10} | 480 | # check capabilities against MARCH_{G5,Z900,Z990,Z9_109,Z10} |
483 | stidp __LC_CPUID # store cpuid | 481 | xc __LC_STFL_FAC_LIST(8),__LC_STFL_FAC_LIST |
484 | lhi %r0,(3f-2f) / 2 | 482 | stfl __LC_STFL_FAC_LIST # store facility list |
485 | la %r1,2f-.LPG0(%r13) | 483 | tm __LC_STFL_FAC_LIST,0x01 # stfle available ? |
486 | 0: clc __LC_CPUID+4(2),0(%r1) | 484 | jz 0f |
487 | jne 3f | 485 | la %r0,0 |
488 | lpsw 1f-.LPG0(13) # machine type not good enough, crash | 486 | .insn s,0xb2b00000,__LC_STFL_FAC_LIST # store facility list extended |
487 | 0: l %r0,__LC_STFL_FAC_LIST | ||
488 | n %r0,2f+8-.LPG0(%r13) | ||
489 | cl %r0,2f+8-.LPG0(%r13) | ||
490 | jne 1f | ||
491 | l %r0,__LC_STFL_FAC_LIST+4 | ||
492 | n %r0,2f+12-.LPG0(%r13) | ||
493 | cl %r0,2f+12-.LPG0(%r13) | ||
494 | je 3f | ||
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 | ||
489 | .align 16 | 508 | .align 16 |
490 | 1: .long 0x000a0000,0x00000000 | 509 | 2: .long 0x000a0000,0x8badcccc |
491 | 2: | 510 | #if defined(CONFIG_64BIT) |
492 | #if defined(CONFIG_MARCH_Z10) | 511 | #if defined(CONFIG_MARCH_Z10) |
493 | .short 0x9672, 0x2064, 0x2066, 0x2084, 0x2086, 0x2094, 0x2096 | 512 | .long 0xc100efe3, 0xf0680000 |
494 | #elif defined(CONFIG_MARCH_Z9_109) | 513 | #elif defined(CONFIG_MARCH_Z9_109) |
495 | .short 0x9672, 0x2064, 0x2066, 0x2084, 0x2086 | 514 | .long 0xc100efc3, 0x00000000 |
496 | #elif defined(CONFIG_MARCH_Z990) | 515 | #elif defined(CONFIG_MARCH_Z990) |
497 | .short 0x9672, 0x2064, 0x2066 | 516 | .long 0xc0002000, 0x00000000 |
498 | #elif defined(CONFIG_MARCH_Z900) | 517 | #elif defined(CONFIG_MARCH_Z900) |
499 | .short 0x9672 | 518 | .long 0xc0000000, 0x00000000 |
519 | #endif | ||
520 | #else | ||
521 | #if defined(CONFIG_MARCH_Z10) | ||
522 | .long 0x8100c880, 0x00000000 | ||
523 | #elif defined(CONFIG_MARCH_Z9_109) | ||
524 | .long 0x8100c880, 0x00000000 | ||
525 | #elif defined(CONFIG_MARCH_Z990) | ||
526 | .long 0x80002000, 0x00000000 | ||
527 | #elif defined(CONFIG_MARCH_Z900) | ||
528 | .long 0x80000000, 0x00000000 | ||
529 | #endif | ||
500 | #endif | 530 | #endif |
501 | 3: la %r1,2(%r1) | 531 | 3: |
502 | brct %r0,0b | ||
503 | #endif | 532 | #endif |
504 | 533 | ||
505 | l %r13,4f-.LPG0(%r13) | 534 | l %r13,4f-.LPG0(%r13) |