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) 1992 - 1997, 1999 Silicon Graphics, Inc.
7  * Copyright (C) 1999 by Ralf Baechle
8  */
9 #ifndef _ASM_SN_SN0_HUB_H
10 #define _ASM_SN_SN0_HUB_H
11 
12 /* The secret password; used to release protection */
13 #define HUB_PASSWORD		0x53474972756c6573ull
14 
15 #define CHIPID_HUB		0
16 #define CHIPID_ROUTER		1
17 
18 #define HUB_REV_1_0		1
19 #define HUB_REV_2_0		2
20 #define HUB_REV_2_1		3
21 #define HUB_REV_2_2		4
22 #define HUB_REV_2_3		5
23 #define HUB_REV_2_4		6
24 
25 #define MAX_HUB_PATH		80
26 
27 #include <asm/sn/sn0/addrs.h>
28 #include <asm/sn/sn0/hubpi.h>
29 #include <asm/sn/sn0/hubmd.h>
30 #include <asm/sn/sn0/hubio.h>
31 #include <asm/sn/sn0/hubni.h>
32 //#include <asm/sn/sn0/hubcore.h>
33 
34 /* Translation of uncached attributes */
35 #define UATTR_HSPEC	0
36 #define UATTR_IO	1
37 #define UATTR_MSPEC	2
38 #define UATTR_UNCAC	3
39 
40 #ifdef __ASSEMBLY__
41 /*
42  * Returns the local nasid into res.
43  */
44 	.macro GET_NASID_ASM res
45 	dli	\res, LOCAL_HUB_ADDR(NI_STATUS_REV_ID)
46 	ld	\res, (\res)
47 	and	\res, NSRI_NODEID_MASK
48 	dsrl	\res, NSRI_NODEID_SHFT
49 	.endm
50 #else
51 
52 /*
53  * get_nasid() returns the physical node id number of the caller.
54  */
55 static inline nasid_t get_nasid(void)
56 {
57 	return (nasid_t)((LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_NODEID_MASK)
58 			 >> NSRI_NODEID_SHFT);
59 }
60 #endif
61 
62 #endif /* _ASM_SN_SN0_HUB_H */
63