Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71030994 authored by Colin Ngam's avatar Colin Ngam Committed by Tony Luck
Browse files

[IA64-SGI] Fix TIO IOSPACE MMR Addres



This patches provides support on Shub2 for the separate TIO IOSPACE MMR.  This 
patch is SN specific.

Signed-off-by: default avatarColin Ngam <cngam@sgi.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 71a5d027
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -216,6 +216,10 @@
#define TIO_SWIN_WIDGETNUM(x)		(((x)  >> TIO_SWIN_SIZE_BITS) & TIO_SWIN_WIDGET_MASK)


#define TIO_IOSPACE_ADDR(n,x)					\
	/* Move in the Chiplet ID for TIO Local Block MMR */	\
	(REMOTE_ADDR(n,x) | 1UL << (NASID_SHIFT - 2))

/*
 * The following macros produce the correct base virtual address for
 * the hub registers. The REMOTE_HUB_* macro produce
@@ -233,13 +237,16 @@
#define REMOTE_HUB_ADDR(n,x)						\
	((n & 1) ?							\
	/* TIO: */							\
	((volatile u64 *)(GLOBAL_MMR_ADDR(n,x)))			\
	: /* SHUB: */							\
	(is_shub2() ?							\
	/* TIO on Shub2 */						\
	(volatile u64 *)(TIO_IOSPACE_ADDR(n,x))				\
	: /* TIO on shub1 */						\
	(volatile u64 *)(GLOBAL_MMR_ADDR(n,x)))				\
									\
	: /* SHUB1 and SHUB2 MMRs: */					\
	(((x) & BWIN_TOP) ? ((volatile u64 *)(GLOBAL_MMR_ADDR(n,x)))	\
	: ((volatile u64 *)(NODE_SWIN_BASE(n,1) + 0x800000 + (x)))))



#define HUB_L(x)			(*((volatile typeof(*x) *)x))
#define	HUB_S(x,d)			(*((volatile typeof(*x) *)x) = (d))