xtensa: PMU: fix base address for the newer hardware
[linux-2.6-microblaze.git] / arch / xtensa / kernel / perf_event.c
index a0d05c8..1836180 100644 (file)
 #include <linux/perf_event.h>
 #include <linux/platform_device.h>
 
+#include <asm/core.h>
 #include <asm/processor.h>
 #include <asm/stacktrace.h>
 
+#define XTENSA_HWVERSION_RG_2015_0     260000
+
+#if XCHAL_HW_MIN_VERSION >= XTENSA_HWVERSION_RG_2015_0
+#define XTENSA_PMU_ERI_BASE            0x00101000
+#else
+#define XTENSA_PMU_ERI_BASE            0x00001000
+#endif
+
 /* Global control/status for all perf counters */
-#define XTENSA_PMU_PMG                 0x1000
+#define XTENSA_PMU_PMG                 XTENSA_PMU_ERI_BASE
 /* Perf counter values */
-#define XTENSA_PMU_PM(i)               (0x1080 + (i) * 4)
+#define XTENSA_PMU_PM(i)               (XTENSA_PMU_ERI_BASE + 0x80 + (i) * 4)
 /* Perf counter control registers */
-#define XTENSA_PMU_PMCTRL(i)           (0x1100 + (i) * 4)
+#define XTENSA_PMU_PMCTRL(i)           (XTENSA_PMU_ERI_BASE + 0x100 + (i) * 4)
 /* Perf counter status registers */
-#define XTENSA_PMU_PMSTAT(i)           (0x1180 + (i) * 4)
+#define XTENSA_PMU_PMSTAT(i)           (XTENSA_PMU_ERI_BASE + 0x180 + (i) * 4)
 
 #define XTENSA_PMU_PMG_PMEN            0x1