sh: perf: Support SH-X3 hardware counters.
The PMCAT location has conveniently moved on newer SH-X3 parts, special case this for now with a note. This will probably want to be redone in a less visually offensive way when/if more information becomes available. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Performance events support for SH-4A performance counters
|
* Performance events support for SH-4A performance counters
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 Paul Mundt
|
* Copyright (C) 2009, 2010 Paul Mundt
|
||||||
*
|
*
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
* This file is subject to the terms and conditions of the GNU General Public
|
||||||
* License. See the file "COPYING" in the main directory of this archive
|
* License. See the file "COPYING" in the main directory of this archive
|
||||||
@@ -22,7 +22,25 @@
|
|||||||
#define CCBR_CMDS (1 << 1)
|
#define CCBR_CMDS (1 << 1)
|
||||||
#define CCBR_PPCE (1 << 0)
|
#define CCBR_PPCE (1 << 0)
|
||||||
|
|
||||||
|
#ifdef CONFIG_CPU_SHX3
|
||||||
|
/*
|
||||||
|
* The PMCAT location for SH-X3 CPUs was quietly moved, while the CCBR
|
||||||
|
* and PMCTR locations remains tentatively constant. This change remains
|
||||||
|
* wholly undocumented, and was simply found through trial and error.
|
||||||
|
*
|
||||||
|
* Early cuts of SH-X3 still appear to use the SH-X/SH-X2 locations, and
|
||||||
|
* it's unclear when this ceased to be the case. For now we always use
|
||||||
|
* the new location (if future parts keep up with this trend then
|
||||||
|
* scanning for them at runtime also remains a viable option.)
|
||||||
|
*
|
||||||
|
* The gap in the register space also suggests that there are other
|
||||||
|
* undocumented counters, so this will need to be revisited at a later
|
||||||
|
* point in time.
|
||||||
|
*/
|
||||||
|
#define PPC_PMCAT 0xfc100240
|
||||||
|
#else
|
||||||
#define PPC_PMCAT 0xfc100080
|
#define PPC_PMCAT 0xfc100080
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PMCAT_OVF3 (1 << 27)
|
#define PMCAT_OVF3 (1 << 27)
|
||||||
#define PMCAT_CNN3 (1 << 26)
|
#define PMCAT_CNN3 (1 << 26)
|
||||||
|
Reference in New Issue
Block a user