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