[IA64-SGI] add support for TIO huge-window
[linux-2.6.git] / arch / ia64 / sn / include / tio.h
1 /* 
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (C) 2000-2005 Silicon Graphics, Inc. All rights reserved.
7  */
8
9 #ifndef _ASM_IA64_SN_TIO_H
10 #define _ASM_IA64_SN_TIO_H
11
12 #define TIO_MMR_ADDR_MOD
13
14 #define TIO_NODE_ID     TIO_MMR_ADDR_MOD(0x0000000090060e80)
15
16 #define TIO_ITTE_BASE   0xb0008800        /* base of translation table entries */
17 #define TIO_ITTE(bigwin)        (TIO_ITTE_BASE + 8*(bigwin))
18
19 #define TIO_ITTE_OFFSET_BITS    8       /* size of offset field */
20 #define TIO_ITTE_OFFSET_MASK    ((1<<TIO_ITTE_OFFSET_BITS)-1)
21 #define TIO_ITTE_OFFSET_SHIFT   0
22
23 #define TIO_ITTE_WIDGET_BITS    2       /* size of widget field */
24 #define TIO_ITTE_WIDGET_MASK    ((1<<TIO_ITTE_WIDGET_BITS)-1)
25 #define TIO_ITTE_WIDGET_SHIFT   12
26 #define TIO_ITTE_VALID_MASK     0x1
27 #define TIO_ITTE_VALID_SHIFT    16
28
29 #define TIO_ITTE_WIDGET(itte) \
30         (((itte) >> TIO_ITTE_WIDGET_SHIFT) & TIO_ITTE_WIDGET_MASK)
31 #define TIO_ITTE_VALID(itte) \
32         (((itte) >> TIO_ITTE_VALID_SHIFT) & TIO_ITTE_VALID_MASK)
33
34 #define TIO_ITTE_PUT(nasid, bigwin, widget, addr, valid) \
35         REMOTE_HUB_S((nasid), TIO_ITTE(bigwin), \
36                 (((((addr) >> TIO_BWIN_SIZE_BITS) & \
37                    TIO_ITTE_OFFSET_MASK) << TIO_ITTE_OFFSET_SHIFT) | \
38                 (((widget) & TIO_ITTE_WIDGET_MASK) << TIO_ITTE_WIDGET_SHIFT)) | \
39                 (( (valid) & TIO_ITTE_VALID_MASK) << TIO_ITTE_VALID_SHIFT))
40
41 #endif /*  _ASM_IA64_SN_TIO_H */