Add version to PATCH_LOG and LAST_LOG.
[linux-flexiantxendom0-3.2.10.git] / arch / ia64 / sn / kernel / sn_asm.S
1 /*
2  * Copyright (c) 2000-2002 Silicon Graphics, Inc.  All Rights Reserved.
3  * 
4  * This program is free software; you can redistribute it and/or modify it 
5  * under the terms of version 2 of the GNU General Public License 
6  * as published by the Free Software Foundation.
7  * 
8  * This program is distributed in the hope that it would be useful, but 
9  * WITHOUT ANY WARRANTY; without even the implied warranty of 
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
11  * 
12  * Further, this software is distributed without any warranty that it is 
13  * free of the rightful claim of any third person regarding infringement 
14  * or the like.  Any license provided herein, whether implied or 
15  * otherwise, applies only to this software file.  Patent licenses, if 
16  * any, provided herein do not apply to combinations of this program with 
17  * other software, or any other product whatsoever.
18  * 
19  * You should have received a copy of the GNU General Public 
20  * License along with this program; if not, write the Free Software 
21  * Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
22  * 
23  * Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, 
24  * Mountain View, CA  94043, or:
25  * 
26  * http://www.sgi.com 
27  * 
28  * For further information regarding this notice, see: 
29  * 
30  * http://oss.sgi.com/projects/GenInfo/NoticeExplan
31  */
32
33 #include <linux/config.h>
34 #ifdef CONFIG_IA64_SGI_AUTOTEST
35
36 // Testing only.
37 // Routine will cause MCAs
38 //   zzzmca(n)
39 //      n=0 MCA via duplicate TLB dropin
40 //      n=1 MCA via read of garbage address
41 //      n=2 MCA via lfetch read of garbage address
42 //
43
44 #define ITIR(key, ps)           ((key<<8) | (ps<<2))
45 #define TLB_PAGESIZE            28                      // Use 256MB pages for now.
46
47                         .global zzzmca
48                         .proc   zzzmca
49 zzzmca:
50                         alloc   loc4       = ar.pfs,2,8,1,0;;
51                         cmp.ne  p6,p0=r32,r0;;
52                         movl    r2=0x2dead
53                         movl    r3=0x3dead
54                         movl    r15=0x15dead
55                         movl    r16=0x16dead
56                         movl    r31=0x31dead
57                         movl    loc0=0x34beef
58                         movl    loc1=0x35beef
59                         movl    loc2=0x36beef
60                         movl    loc3=0x37beef
61                         movl    out0=0x42beef
62
63                         movl    r20=0x32feed;;
64                         mov     ar32=r20
65                         movl    r20=0x36feed;;
66                         mov     ar36=r20
67                         movl    r20=0x65feed;;
68                         mov     ar65=r20
69                         movl    r20=0x66feed;;
70                         mov     ar66=r20
71
72 (p6)                    br.cond.sptk    1f
73
74                         rsm      0x2000;;
75                         srlz.d;
76                         mov      r11      = 5
77                         mov      r3       = ITIR(0,TLB_PAGESIZE);;
78                         mov      cr.itir  = r3
79                         mov      r10      = 0;;
80                         itr.d    dtr[r11] = r10;;
81                         mov      r11      = 6
82
83                         itr.d    dtr[r11] = r10;;
84                         br      9f
85
86 1:
87                         cmp.eq  p6,p7=1,r32
88 #ifdef CONFIG_IA64_SGI_SN1
89                         movl    r8=0xe00000fe00000048;;
90 #else
91                         movl    r8=0xe0007fb000000048;;
92 #endif
93                  (p6)   ld8     r9=[r8]
94                  (p7)   lfetch.fault.nt2  [r8]
95                         ;;
96                         mf
97                         ;;
98                         mf.a
99                         ;;
100                         srlz.d
101
102 9:                      mov     ar.pfs=loc4
103                         br.ret.sptk     rp
104
105                         .endp   zzzmca
106
107 #endif