2006-12-04 15:40:26 +01:00
/ *
* arch/ s39 0 / k e r n e l / r e s e t . S
*
* Copyright ( C ) I B M C o r p . 2 0 0 6
* Author( s ) : H e i k o C a r s t e n s < h e i k o . c a r s t e n s @de.ibm.com>
2006-12-15 17:18:22 +01:00
* Michael H o l z h e u < h o l z h e u @de.ibm.com>
2006-12-04 15:40:26 +01:00
* /
# include < a s m / p t r a c e . h >
# include < a s m / l o w c o r e . h >
# ifdef C O N F I G _ 6 4 B I T
.globl reset_mcck_handler
reset_mcck_handler :
basr % r13 ,0
0 : lg % r15 ,_ _ L C _ P A N I C _ S T A C K # l o a d p a n i c s t a c k
aghi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
lg % r1 ,s39 0 _ r e s e t _ m c c k _ h a n d l e r - 0 b ( % r13 )
ltgr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
1 : la % r1 ,4 0 9 5
lmg % r0 ,% r15 ,_ _ L C _ G P R E G S _ S A V E _ A R E A - 4 0 9 5 ( % r1 )
lpswe _ _ L C _ M C K _ O L D _ P S W
.globl s390_reset_mcck_handler
s390_reset_mcck_handler :
.quad 0
2006-12-15 17:18:22 +01:00
.globl reset_pgm_handler
reset_pgm_handler :
stmg % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
basr % r13 ,0
0 : lg % r15 ,_ _ L C _ P A N I C _ S T A C K # l o a d p a n i c s t a c k
aghi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
lg % r1 ,s39 0 _ r e s e t _ p g m _ h a n d l e r - 0 b ( % r13 )
ltgr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
lmg % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
lpswe _ _ L C _ P G M _ O L D _ P S W
1 : lpswe d i s a b l e d _ w a i t _ p s w - 0 b ( % r13 )
.globl s390_reset_pgm_handler
s390_reset_pgm_handler :
.quad 0
.align 8
disabled_wait_psw :
.quad 0 x0 0 0 2 0 0 0 1 8 0 0 0 0 0 0 0 ,0 x00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + r e s e t _ p g m _ h a n d l e r
2006-12-04 15:40:26 +01:00
# else / * C O N F I G _ 6 4 B I T * /
.globl reset_mcck_handler
reset_mcck_handler :
basr % r13 ,0
0 : l % r15 ,_ _ L C _ P A N I C _ S T A C K # l o a d p a n i c s t a c k
ahi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
l % r1 ,s39 0 _ r e s e t _ m c c k _ h a n d l e r - 0 b ( % r13 )
ltr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
1 : lm % r0 ,% r15 ,_ _ L C _ G P R E G S _ S A V E _ A R E A
lpsw _ _ L C _ M C K _ O L D _ P S W
.globl s390_reset_mcck_handler
s390_reset_mcck_handler :
.long 0
2006-12-15 17:18:22 +01:00
.globl reset_pgm_handler
reset_pgm_handler :
stm % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
basr % r13 ,0
0 : l % r15 ,_ _ L C _ P A N I C _ S T A C K # l o a d p a n i c s t a c k
ahi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
l % r1 ,s39 0 _ r e s e t _ p g m _ h a n d l e r - 0 b ( % r13 )
ltr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
lm % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
lpsw _ _ L C _ P G M _ O L D _ P S W
1 : lpsw d i s a b l e d _ w a i t _ p s w - 0 b ( % r13 )
.globl s390_reset_pgm_handler
s390_reset_pgm_handler :
.long 0
disabled_wait_psw :
.align 8
.long 0 x0 0 0 a00 0 0 ,0 x00 0 0 0 0 0 0 + r e s e t _ p g m _ h a n d l e r
2006-12-04 15:40:26 +01:00
# endif / * C O N F I G _ 6 4 B I T * /