reg_fsl_emb.h 2.8 KB

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