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