| Andy Fleming | 39aef68 | 2008-02-04 18:27:55 -0600 | [diff] [blame] | 1 | /* | 
 | 2 |  * Contains register definitions for the Freescale Embedded Performance | 
 | 3 |  * Monitor. | 
 | 4 |  */ | 
 | 5 | #ifdef __KERNEL__ | 
 | 6 | #ifndef __ASM_POWERPC_REG_FSL_EMB_H__ | 
 | 7 | #define __ASM_POWERPC_REG_FSL_EMB_H__ | 
 | 8 |  | 
 | 9 | #ifndef __ASSEMBLY__ | 
 | 10 | /* Performance Monitor Registers */ | 
 | 11 | #define mfpmr(rn)	({unsigned int rval; \ | 
 | 12 | 			asm volatile("mfpmr %0," __stringify(rn) \ | 
 | 13 | 				     : "=r" (rval)); rval;}) | 
 | 14 | #define mtpmr(rn, v)	asm volatile("mtpmr " __stringify(rn) ",%0" : : "r" (v)) | 
 | 15 | #endif /* __ASSEMBLY__ */ | 
 | 16 |  | 
 | 17 | /* Freescale Book E Performance Monitor APU Registers */ | 
 | 18 | #define PMRN_PMC0	0x010	/* Performance Monitor Counter 0 */ | 
 | 19 | #define PMRN_PMC1	0x011	/* Performance Monitor Counter 1 */ | 
 | 20 | #define PMRN_PMC2	0x012	/* Performance Monitor Counter 1 */ | 
 | 21 | #define PMRN_PMC3	0x013	/* Performance Monitor Counter 1 */ | 
 | 22 | #define PMRN_PMLCA0	0x090	/* PM Local Control A0 */ | 
 | 23 | #define PMRN_PMLCA1	0x091	/* PM Local Control A1 */ | 
 | 24 | #define PMRN_PMLCA2	0x092	/* PM Local Control A2 */ | 
 | 25 | #define PMRN_PMLCA3	0x093	/* PM Local Control A3 */ | 
 | 26 |  | 
 | 27 | #define PMLCA_FC	0x80000000	/* Freeze Counter */ | 
 | 28 | #define PMLCA_FCS	0x40000000	/* Freeze in Supervisor */ | 
 | 29 | #define PMLCA_FCU	0x20000000	/* Freeze in User */ | 
 | 30 | #define PMLCA_FCM1	0x10000000	/* Freeze when PMM==1 */ | 
 | 31 | #define PMLCA_FCM0	0x08000000	/* Freeze when PMM==0 */ | 
 | 32 | #define PMLCA_CE	0x04000000	/* Condition Enable */ | 
 | 33 |  | 
 | 34 | #define PMLCA_EVENT_MASK 0x007f0000	/* Event field */ | 
 | 35 | #define PMLCA_EVENT_SHIFT	16 | 
 | 36 |  | 
 | 37 | #define PMRN_PMLCB0	0x110	/* PM Local Control B0 */ | 
 | 38 | #define PMRN_PMLCB1	0x111	/* PM Local Control B1 */ | 
 | 39 | #define PMRN_PMLCB2	0x112	/* PM Local Control B2 */ | 
 | 40 | #define PMRN_PMLCB3	0x113	/* PM Local Control B3 */ | 
 | 41 |  | 
 | 42 | #define PMLCB_THRESHMUL_MASK	0x0700	/* Threshhold Multiple Field */ | 
 | 43 | #define PMLCB_THRESHMUL_SHIFT	8 | 
 | 44 |  | 
 | 45 | #define PMLCB_THRESHOLD_MASK	0x003f	/* Threshold Field */ | 
 | 46 | #define PMLCB_THRESHOLD_SHIFT	0 | 
 | 47 |  | 
 | 48 | #define PMRN_PMGC0	0x190	/* PM Global Control 0 */ | 
 | 49 |  | 
 | 50 | #define PMGC0_FAC	0x80000000	/* Freeze all Counters */ | 
 | 51 | #define PMGC0_PMIE	0x40000000	/* Interrupt Enable */ | 
 | 52 | #define PMGC0_FCECE	0x20000000	/* Freeze countes on | 
 | 53 | 					   Enabled Condition or | 
 | 54 | 					   Event */ | 
 | 55 |  | 
 | 56 | #define PMRN_UPMC0	0x000	/* User Performance Monitor Counter 0 */ | 
 | 57 | #define PMRN_UPMC1	0x001	/* User Performance Monitor Counter 1 */ | 
 | 58 | #define PMRN_UPMC2	0x002	/* User Performance Monitor Counter 1 */ | 
 | 59 | #define PMRN_UPMC3	0x003	/* User Performance Monitor Counter 1 */ | 
 | 60 | #define PMRN_UPMLCA0	0x080	/* User PM Local Control A0 */ | 
 | 61 | #define PMRN_UPMLCA1	0x081	/* User PM Local Control A1 */ | 
 | 62 | #define PMRN_UPMLCA2	0x082	/* User PM Local Control A2 */ | 
 | 63 | #define PMRN_UPMLCA3	0x083	/* User PM Local Control A3 */ | 
 | 64 | #define PMRN_UPMLCB0	0x100	/* User PM Local Control B0 */ | 
 | 65 | #define PMRN_UPMLCB1	0x101	/* User PM Local Control B1 */ | 
 | 66 | #define PMRN_UPMLCB2	0x102	/* User PM Local Control B2 */ | 
 | 67 | #define PMRN_UPMLCB3	0x103	/* User PM Local Control B3 */ | 
 | 68 | #define PMRN_UPMGC0	0x180	/* User PM Global Control 0 */ | 
 | 69 |  | 
 | 70 |  | 
 | 71 | #endif /* __ASM_POWERPC_REG_FSL_EMB_H__ */ | 
 | 72 | #endif /* __KERNEL__ */ |