| 
					
				 | 
			
			
				@@ -301,3 +301,143 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #  define KSU_KERNEL		0x00000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define ST0_UX			0x00000020 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define ST0_SX			0x00000040 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_KX 			0x00000080 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_DE			0x00010000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CE			0x00020000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Setting c0_status.co enables Hit_Writeback and Hit_Writeback_Invalidate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * cacheops in userspace.  This bit exists only on RM7000 and RM9000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * processors. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CO			0x08000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Bitfields in the R[23]000 cp0 status register. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_IEC                 0x00000001 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_KUC			0x00000002 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_IEP			0x00000004 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_KUP			0x00000008 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_IEO			0x00000010 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_KUO			0x00000020 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* bits 6 & 7 are reserved on R[23]000 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_ISC			0x00010000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_SWC			0x00020000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CM			0x00080000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Bits specific to the R4640/R4650 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_UM			(_ULCAST_(1) <<  4) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_IL			(_ULCAST_(1) << 23) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_DL			(_ULCAST_(1) << 24) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Enable the MIPS MDMX and DSP ASEs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_MX			0x01000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Bitfields in the TX39 family CP0 Configuration Register 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_ICS_SHIFT	19 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_ICS_MASK	0x00380000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_ICS_1KB 	0x00000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_ICS_2KB 	0x00080000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_ICS_4KB 	0x00100000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_ICS_8KB 	0x00180000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_ICS_16KB 	0x00200000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DCS_SHIFT	16 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DCS_MASK	0x00070000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DCS_1KB 	0x00000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DCS_2KB 	0x00010000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DCS_4KB 	0x00020000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DCS_8KB 	0x00030000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DCS_16KB 	0x00040000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_CWFON 	0x00004000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_WBON  	0x00002000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_RF_SHIFT	10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_RF_MASK	0x00000c00 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DOZE		0x00000200 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_HALT		0x00000100 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_LOCK		0x00000080 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_ICE		0x00000020 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DCE		0x00000010 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_IRSIZE_SHIFT	2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_IRSIZE_MASK	0x0000000c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DRSIZE_SHIFT	0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define TX39_CONF_DRSIZE_MASK	0x00000003 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Status register bits available in all MIPS CPUs. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_IM			0x0000ff00 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP0		8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP0		(_ULCAST_(1) <<  8) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP1		9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP1		(_ULCAST_(1) <<  9) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP2		10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP2		(_ULCAST_(1) << 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP3		11 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP3		(_ULCAST_(1) << 11) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP4		12 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP4		(_ULCAST_(1) << 12) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP5		13 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP5		(_ULCAST_(1) << 13) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP6		14 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP6		(_ULCAST_(1) << 14) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP7		15 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP7		(_ULCAST_(1) << 15) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP8		0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP8		(_ULCAST_(1) <<  0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP9		1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP9		(_ULCAST_(1) <<  1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP10		2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP10		(_ULCAST_(1) <<  2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP11		3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP11		(_ULCAST_(1) <<  3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP12		4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP12		(_ULCAST_(1) <<  4) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP13		5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP13		(_ULCAST_(1) <<  5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP14		6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP14		(_ULCAST_(1) <<  6) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSB_IP15		7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  STATUSF_IP15		(_ULCAST_(1) <<  7) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CH			0x00040000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_NMI			0x00080000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_SR			0x00100000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_TS			0x00200000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_BEV			0x00400000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_RE			0x02000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_FR			0x04000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CU			0xf0000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CU0			0x10000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CU1			0x20000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CU2			0x40000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_CU3			0x80000000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define ST0_XX			0x80000000	/* MIPS IV naming */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Bitfields and bit numbers in the coprocessor 0 IntCtl register. (MIPSR2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Refer to your MIPS R4xx0 manual, chapter 5 for explanation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define INTCTLB_IPPCI		26 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define INTCTLF_IPPCI		(_ULCAST_(7) << INTCTLB_IPPCI) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define INTCTLB_IPTI		29 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define INTCTLF_IPTI		(_ULCAST_(7) << INTCTLB_IPTI) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Bitfields and bit numbers in the coprocessor 0 cause register. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Refer to your MIPS R4xx0 manual, chapter 5 for explanation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  CAUSEB_EXCCODE		2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  CAUSEF_EXCCODE		(_ULCAST_(31)  <<  2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  CAUSEB_IP		8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  CAUSEF_IP		(_ULCAST_(255) <<  8) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define  CAUSEB_IP0		8 
			 |