#ifndef _ASM_SN_ADDRS_H
#define _ASM_SN_ADDRS_H
+#include <linux/config.h>
#ifndef __ASSEMBLY__
#include <linux/types.h>
#ifndef __ASSEMBLY__
+#if defined(CONFIG_SGI_IO) /* FIXME */
+#define PS_UINT_CAST (__psunsigned_t)
+#define UINT64_CAST (__uint64_t)
+#else /* CONFIG_SGI_IO */
#define PS_UINT_CAST (unsigned long)
#define UINT64_CAST (unsigned long)
+#endif /* CONFIG_SGI_IO */
#define HUBREG_CAST (volatile hubreg_t *)
* for _x.
*/
+#ifdef _STANDALONE
+
+/* DO NOT USE THESE DIRECTLY IN THE KERNEL. SEE BELOW. */
+#define LOCAL_HUB(_x) (HUBREG_CAST (IALIAS_BASE + (_x)))
+#define REMOTE_HUB(_n, _x) (HUBREG_CAST (NODE_SWIN_BASE(_n, 1) + \
+ 0x800000 + (_x)))
+#endif /* _STANDALONE */
+
/*
* WARNING:
* When certain Hub chip workaround are defined, it's not sufficient
PHYS_TO_K0(NODE_OFFSET(nasid) | ARCS_SPB_OFFSET)
#define ARCS_SPB_SIZE 0x0400
+#ifdef _STANDALONE
+
+#define ARCS_TVECTOR_OFFSET 0x2800
+#define ARCS_PVECTOR_OFFSET 0x2c00
+
+/*
+ * These addresses are used by the master CPU to install the transfer
+ * and private vectors. All others use the SPB to find them.
+ */
+#define TVADDR (NODE_CAC_BASE(get_nasid()) + ARCS_TVECTOR_OFFSET)
+#define PVADDR (NODE_CAC_BASE(get_nasid()) + ARCS_PVECTOR_OFFSET)
+
+#endif /* _STANDALONE */
+
#define KLDIR_OFFSET 0x2000
#define KLDIR_ADDR(nasid) \
TO_NODE_UNCAC((nasid), KLDIR_OFFSET)