xref: /openbmc/linux/arch/mips/include/asm/sn/sn0/hub.h (revision e9d2eb99)
1384740dcSRalf Baechle /*
2384740dcSRalf Baechle  * This file is subject to the terms and conditions of the GNU General Public
3384740dcSRalf Baechle  * License.  See the file "COPYING" in the main directory of this archive
4384740dcSRalf Baechle  * for more details.
5384740dcSRalf Baechle  *
6384740dcSRalf Baechle  * Copyright (C) 1992 - 1997, 1999 Silicon Graphics, Inc.
7384740dcSRalf Baechle  * Copyright (C) 1999 by Ralf Baechle
8384740dcSRalf Baechle  */
9384740dcSRalf Baechle #ifndef _ASM_SN_SN0_HUB_H
10384740dcSRalf Baechle #define _ASM_SN_SN0_HUB_H
11384740dcSRalf Baechle 
12384740dcSRalf Baechle /* The secret password; used to release protection */
13384740dcSRalf Baechle #define HUB_PASSWORD		0x53474972756c6573ull
14384740dcSRalf Baechle 
15384740dcSRalf Baechle #define CHIPID_HUB		0
16384740dcSRalf Baechle #define CHIPID_ROUTER		1
17384740dcSRalf Baechle 
18384740dcSRalf Baechle #define HUB_REV_1_0		1
19384740dcSRalf Baechle #define HUB_REV_2_0		2
20384740dcSRalf Baechle #define HUB_REV_2_1		3
21384740dcSRalf Baechle #define HUB_REV_2_2		4
22384740dcSRalf Baechle #define HUB_REV_2_3		5
23384740dcSRalf Baechle #define HUB_REV_2_4		6
24384740dcSRalf Baechle 
25384740dcSRalf Baechle #define MAX_HUB_PATH		80
26384740dcSRalf Baechle 
27384740dcSRalf Baechle #include <asm/sn/sn0/addrs.h>
28384740dcSRalf Baechle #include <asm/sn/sn0/hubpi.h>
29384740dcSRalf Baechle #include <asm/sn/sn0/hubmd.h>
30384740dcSRalf Baechle #include <asm/sn/sn0/hubio.h>
31384740dcSRalf Baechle #include <asm/sn/sn0/hubni.h>
32384740dcSRalf Baechle //#include <asm/sn/sn0/hubcore.h>
33384740dcSRalf Baechle 
34384740dcSRalf Baechle /* Translation of uncached attributes */
35384740dcSRalf Baechle #define UATTR_HSPEC	0
36384740dcSRalf Baechle #define UATTR_IO	1
37384740dcSRalf Baechle #define UATTR_MSPEC	2
38384740dcSRalf Baechle #define UATTR_UNCAC	3
39384740dcSRalf Baechle 
4058fd034dSThomas Bogendoerfer #ifdef __ASSEMBLY__
4158fd034dSThomas Bogendoerfer /*
4258fd034dSThomas Bogendoerfer  * Returns the local nasid into res.
4358fd034dSThomas Bogendoerfer  */
4458fd034dSThomas Bogendoerfer 	.macro GET_NASID_ASM res
4558fd034dSThomas Bogendoerfer 	dli	\res, LOCAL_HUB_ADDR(NI_STATUS_REV_ID)
4658fd034dSThomas Bogendoerfer 	ld	\res, (\res)
4758fd034dSThomas Bogendoerfer 	and	\res, NSRI_NODEID_MASK
4858fd034dSThomas Bogendoerfer 	dsrl	\res, NSRI_NODEID_SHFT
4958fd034dSThomas Bogendoerfer 	.endm
50e9d2eb99SThomas Bogendoerfer #else
51e9d2eb99SThomas Bogendoerfer 
52e9d2eb99SThomas Bogendoerfer /*
53e9d2eb99SThomas Bogendoerfer  * get_nasid() returns the physical node id number of the caller.
54e9d2eb99SThomas Bogendoerfer  */
55e9d2eb99SThomas Bogendoerfer static inline nasid_t get_nasid(void)
56e9d2eb99SThomas Bogendoerfer {
57e9d2eb99SThomas Bogendoerfer 	return (nasid_t)((LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_NODEID_MASK)
58e9d2eb99SThomas Bogendoerfer 			 >> NSRI_NODEID_SHFT);
59e9d2eb99SThomas Bogendoerfer }
6058fd034dSThomas Bogendoerfer #endif
6158fd034dSThomas Bogendoerfer 
62384740dcSRalf Baechle #endif /* _ASM_SN_SN0_HUB_H */
63