diff options
author | Andy Fleming <afleming@freescale.com> | 2008-02-04 19:27:55 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2008-02-06 00:34:14 -0500 |
commit | 39aef685af431c032ffd2763ec8782b13c32520c (patch) | |
tree | 2e6c8761ec9d62521418f6b0b2cf05f8e269407d | |
parent | 0367aad1ad5f8085ed15e9e30604f50108a1ea06 (diff) |
[POWERPC] Made FSL Book-E PMC support more generic
Some of the more recent e300 cores have the same performance monitor
implementation as the e500. e300 isn't book-e, so the name isn't
really appropriate. In preparation for e300 support, rename a bunch
of fsl_booke things to say fsl_emb (Freescale Embedded Performance Monitors).
Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/pmc.c | 2 | ||||
-rw-r--r-- | arch/powerpc/oprofile/Makefile | 2 | ||||
-rw-r--r-- | arch/powerpc/oprofile/common.c | 6 | ||||
-rw-r--r-- | arch/powerpc/oprofile/op_model_fsl_emb.c (renamed from arch/powerpc/oprofile/op_model_fsl_booke.c) | 28 | ||||
-rw-r--r-- | arch/powerpc/platforms/Kconfig.cputype | 4 | ||||
-rw-r--r-- | include/asm-powerpc/cputable.h | 2 | ||||
-rw-r--r-- | include/asm-powerpc/oprofile_impl.h | 2 | ||||
-rw-r--r-- | include/asm-powerpc/reg.h | 4 | ||||
-rw-r--r-- | include/asm-powerpc/reg_booke.h | 62 | ||||
-rw-r--r-- | include/asm-powerpc/reg_fsl_emb.h | 72 |
11 files changed, 102 insertions, 86 deletions
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index a4c2771b5e6..98a1c9e6b9f 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -1435,7 +1435,7 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1435 | .dcache_bsize = 32, | 1435 | .dcache_bsize = 32, |
1436 | .num_pmcs = 4, | 1436 | .num_pmcs = 4, |
1437 | .oprofile_cpu_type = "ppc/e500", | 1437 | .oprofile_cpu_type = "ppc/e500", |
1438 | .oprofile_type = PPC_OPROFILE_BOOKE, | 1438 | .oprofile_type = PPC_OPROFILE_FSL_EMB, |
1439 | .machine_check = machine_check_e500, | 1439 | .machine_check = machine_check_e500, |
1440 | .platform = "ppc8540", | 1440 | .platform = "ppc8540", |
1441 | }, | 1441 | }, |
@@ -1453,7 +1453,7 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1453 | .dcache_bsize = 32, | 1453 | .dcache_bsize = 32, |
1454 | .num_pmcs = 4, | 1454 | .num_pmcs = 4, |
1455 | .oprofile_cpu_type = "ppc/e500", | 1455 | .oprofile_cpu_type = "ppc/e500", |
1456 | .oprofile_type = PPC_OPROFILE_BOOKE, | 1456 | .oprofile_type = PPC_OPROFILE_FSL_EMB, |
1457 | .machine_check = machine_check_e500, | 1457 | .machine_check = machine_check_e500, |
1458 | .platform = "ppc8548", | 1458 | .platform = "ppc8548", |
1459 | }, | 1459 | }, |
diff --git a/arch/powerpc/kernel/pmc.c b/arch/powerpc/kernel/pmc.c index ea04e0ab3f2..0516e2d3e02 100644 --- a/arch/powerpc/kernel/pmc.c +++ b/arch/powerpc/kernel/pmc.c | |||
@@ -26,7 +26,7 @@ | |||
26 | 26 | ||
27 | static void dummy_perf(struct pt_regs *regs) | 27 | static void dummy_perf(struct pt_regs *regs) |
28 | { | 28 | { |
29 | #if defined(CONFIG_FSL_BOOKE) && !defined(CONFIG_E200) | 29 | #if defined(CONFIG_FSL_EMB_PERFMON) |
30 | mtpmr(PMRN_PMGC0, mfpmr(PMRN_PMGC0) & ~PMGC0_PMIE); | 30 | mtpmr(PMRN_PMGC0, mfpmr(PMRN_PMGC0) & ~PMGC0_PMIE); |
31 | #elif defined(CONFIG_PPC64) || defined(CONFIG_6xx) | 31 | #elif defined(CONFIG_PPC64) || defined(CONFIG_6xx) |
32 | if (cur_cpu_spec->pmc_type == PPC_PMC_IBM) | 32 | if (cur_cpu_spec->pmc_type == PPC_PMC_IBM) |
diff --git a/arch/powerpc/oprofile/Makefile b/arch/powerpc/oprofile/Makefile index c5f64c3bd66..2ef6b0dddd8 100644 --- a/arch/powerpc/oprofile/Makefile +++ b/arch/powerpc/oprofile/Makefile | |||
@@ -15,5 +15,5 @@ oprofile-$(CONFIG_OPROFILE_CELL) += op_model_cell.o \ | |||
15 | cell/spu_profiler.o cell/vma_map.o \ | 15 | cell/spu_profiler.o cell/vma_map.o \ |
16 | cell/spu_task_sync.o | 16 | cell/spu_task_sync.o |
17 | oprofile-$(CONFIG_PPC64) += op_model_rs64.o op_model_power4.o op_model_pa6t.o | 17 | oprofile-$(CONFIG_PPC64) += op_model_rs64.o op_model_power4.o op_model_pa6t.o |
18 | oprofile-$(CONFIG_FSL_BOOKE) += op_model_fsl_booke.o | 18 | oprofile-$(CONFIG_FSL_EMB_PERFMON) += op_model_fsl_emb.o |
19 | oprofile-$(CONFIG_6xx) += op_model_7450.o | 19 | oprofile-$(CONFIG_6xx) += op_model_7450.o |
diff --git a/arch/powerpc/oprofile/common.c b/arch/powerpc/oprofile/common.c index a28cce1d6c2..4908dc98f9c 100644 --- a/arch/powerpc/oprofile/common.c +++ b/arch/powerpc/oprofile/common.c | |||
@@ -202,9 +202,9 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) | |||
202 | model = &op_model_7450; | 202 | model = &op_model_7450; |
203 | break; | 203 | break; |
204 | #endif | 204 | #endif |
205 | #ifdef CONFIG_FSL_BOOKE | 205 | #if defined(CONFIG_FSL_EMB_PERFMON) |
206 | case PPC_OPROFILE_BOOKE: | 206 | case PPC_OPROFILE_FSL_EMB: |
207 | model = &op_model_fsl_booke; | 207 | model = &op_model_fsl_emb; |
208 | break; | 208 | break; |
209 | #endif | 209 | #endif |
210 | default: | 210 | default: |
diff --git a/arch/powerpc/oprofile/op_model_fsl_booke.c b/arch/powerpc/oprofile/op_model_fsl_emb.c index 183a28bb181..91596f6ba1f 100644 --- a/arch/powerpc/oprofile/op_model_fsl_booke.c +++ b/arch/powerpc/oprofile/op_model_fsl_emb.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/powerpc/oprofile/op_model_fsl_booke.c | 2 | * Freescale Embedded oprofile support, based on ppc64 oprofile support |
3 | * | ||
4 | * Freescale Book-E oprofile support, based on ppc64 oprofile support | ||
5 | * Copyright (C) 2004 Anton Blanchard <anton@au.ibm.com>, IBM | 3 | * Copyright (C) 2004 Anton Blanchard <anton@au.ibm.com>, IBM |
6 | * | 4 | * |
7 | * Copyright (c) 2004 Freescale Semiconductor, Inc | 5 | * Copyright (c) 2004 Freescale Semiconductor, Inc |
@@ -22,7 +20,7 @@ | |||
22 | #include <asm/system.h> | 20 | #include <asm/system.h> |
23 | #include <asm/processor.h> | 21 | #include <asm/processor.h> |
24 | #include <asm/cputable.h> | 22 | #include <asm/cputable.h> |
25 | #include <asm/reg_booke.h> | 23 | #include <asm/reg_fsl_emb.h> |
26 | #include <asm/page.h> | 24 | #include <asm/page.h> |
27 | #include <asm/pmc.h> | 25 | #include <asm/pmc.h> |
28 | #include <asm/oprofile_impl.h> | 26 | #include <asm/oprofile_impl.h> |
@@ -244,7 +242,7 @@ static void dump_pmcs(void) | |||
244 | mfpmr(PMRN_PMLCA3), mfpmr(PMRN_PMLCB3)); | 242 | mfpmr(PMRN_PMLCA3), mfpmr(PMRN_PMLCB3)); |
245 | } | 243 | } |
246 | 244 | ||
247 | static int fsl_booke_cpu_setup(struct op_counter_config *ctr) | 245 | static int fsl_emb_cpu_setup(struct op_counter_config *ctr) |
248 | { | 246 | { |
249 | int i; | 247 | int i; |
250 | 248 | ||
@@ -262,7 +260,7 @@ static int fsl_booke_cpu_setup(struct op_counter_config *ctr) | |||
262 | return 0; | 260 | return 0; |
263 | } | 261 | } |
264 | 262 | ||
265 | static int fsl_booke_reg_setup(struct op_counter_config *ctr, | 263 | static int fsl_emb_reg_setup(struct op_counter_config *ctr, |
266 | struct op_system_config *sys, | 264 | struct op_system_config *sys, |
267 | int num_ctrs) | 265 | int num_ctrs) |
268 | { | 266 | { |
@@ -281,7 +279,7 @@ static int fsl_booke_reg_setup(struct op_counter_config *ctr, | |||
281 | return 0; | 279 | return 0; |
282 | } | 280 | } |
283 | 281 | ||
284 | static int fsl_booke_start(struct op_counter_config *ctr) | 282 | static int fsl_emb_start(struct op_counter_config *ctr) |
285 | { | 283 | { |
286 | int i; | 284 | int i; |
287 | 285 | ||
@@ -315,7 +313,7 @@ static int fsl_booke_start(struct op_counter_config *ctr) | |||
315 | return 0; | 313 | return 0; |
316 | } | 314 | } |
317 | 315 | ||
318 | static void fsl_booke_stop(void) | 316 | static void fsl_emb_stop(void) |
319 | { | 317 | { |
320 | /* freeze counters */ | 318 | /* freeze counters */ |
321 | pmc_stop_ctrs(); | 319 | pmc_stop_ctrs(); |
@@ -329,7 +327,7 @@ static void fsl_booke_stop(void) | |||
329 | } | 327 | } |
330 | 328 | ||
331 | 329 | ||
332 | static void fsl_booke_handle_interrupt(struct pt_regs *regs, | 330 | static void fsl_emb_handle_interrupt(struct pt_regs *regs, |
333 | struct op_counter_config *ctr) | 331 | struct op_counter_config *ctr) |
334 | { | 332 | { |
335 | unsigned long pc; | 333 | unsigned long pc; |
@@ -362,10 +360,10 @@ static void fsl_booke_handle_interrupt(struct pt_regs *regs, | |||
362 | pmc_start_ctrs(1); | 360 | pmc_start_ctrs(1); |
363 | } | 361 | } |
364 | 362 | ||
365 | struct op_powerpc_model op_model_fsl_booke = { | 363 | struct op_powerpc_model op_model_fsl_emb = { |
366 | .reg_setup = fsl_booke_reg_setup, | 364 | .reg_setup = fsl_emb_reg_setup, |
367 | .cpu_setup = fsl_booke_cpu_setup, | 365 | .cpu_setup = fsl_emb_cpu_setup, |
368 | .start = fsl_booke_start, | 366 | .start = fsl_emb_start, |
369 | .stop = fsl_booke_stop, | 367 | .stop = fsl_emb_stop, |
370 | .handle_interrupt = fsl_booke_handle_interrupt, | 368 | .handle_interrupt = fsl_emb_handle_interrupt, |
371 | }; | 369 | }; |
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype index 7fc41104d53..eea2e7049fe 100644 --- a/arch/powerpc/platforms/Kconfig.cputype +++ b/arch/powerpc/platforms/Kconfig.cputype | |||
@@ -94,6 +94,7 @@ config 8xx | |||
94 | bool | 94 | bool |
95 | 95 | ||
96 | config E500 | 96 | config E500 |
97 | select FSL_EMB_PERFMON | ||
97 | bool | 98 | bool |
98 | 99 | ||
99 | config PPC_FPU | 100 | config PPC_FPU |
@@ -115,6 +116,9 @@ config FSL_BOOKE | |||
115 | depends on E200 || E500 | 116 | depends on E200 || E500 |
116 | default y | 117 | default y |
117 | 118 | ||
119 | config FSL_EMB_PERFMON | ||
120 | bool | ||
121 | |||
118 | config PTE_64BIT | 122 | config PTE_64BIT |
119 | bool | 123 | bool |
120 | depends on 44x || E500 | 124 | depends on 44x || E500 |
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index 528ef183c22..1e79673b731 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
@@ -46,7 +46,7 @@ enum powerpc_oprofile_type { | |||
46 | PPC_OPROFILE_RS64 = 1, | 46 | PPC_OPROFILE_RS64 = 1, |
47 | PPC_OPROFILE_POWER4 = 2, | 47 | PPC_OPROFILE_POWER4 = 2, |
48 | PPC_OPROFILE_G4 = 3, | 48 | PPC_OPROFILE_G4 = 3, |
49 | PPC_OPROFILE_BOOKE = 4, | 49 | PPC_OPROFILE_FSL_EMB = 4, |
50 | PPC_OPROFILE_CELL = 5, | 50 | PPC_OPROFILE_CELL = 5, |
51 | PPC_OPROFILE_PA6T = 6, | 51 | PPC_OPROFILE_PA6T = 6, |
52 | }; | 52 | }; |
diff --git a/include/asm-powerpc/oprofile_impl.h b/include/asm-powerpc/oprofile_impl.h index 938fefb4c4b..95035c602ba 100644 --- a/include/asm-powerpc/oprofile_impl.h +++ b/include/asm-powerpc/oprofile_impl.h | |||
@@ -54,7 +54,7 @@ struct op_powerpc_model { | |||
54 | int num_counters; | 54 | int num_counters; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | extern struct op_powerpc_model op_model_fsl_booke; | 57 | extern struct op_powerpc_model op_model_fsl_emb; |
58 | extern struct op_powerpc_model op_model_rs64; | 58 | extern struct op_powerpc_model op_model_rs64; |
59 | extern struct op_powerpc_model op_model_power4; | 59 | extern struct op_powerpc_model op_model_power4; |
60 | extern struct op_powerpc_model op_model_7450; | 60 | extern struct op_powerpc_model op_model_7450; |
diff --git a/include/asm-powerpc/reg.h b/include/asm-powerpc/reg.h index 2408a29507e..0d6238987df 100644 --- a/include/asm-powerpc/reg.h +++ b/include/asm-powerpc/reg.h | |||
@@ -18,6 +18,10 @@ | |||
18 | #include <asm/reg_booke.h> | 18 | #include <asm/reg_booke.h> |
19 | #endif /* CONFIG_BOOKE || CONFIG_40x */ | 19 | #endif /* CONFIG_BOOKE || CONFIG_40x */ |
20 | 20 | ||
21 | #ifdef CONFIG_FSL_EMB_PERFMON | ||
22 | #include <asm/reg_fsl_emb.h> | ||
23 | #endif | ||
24 | |||
21 | #ifdef CONFIG_8xx | 25 | #ifdef CONFIG_8xx |
22 | #include <asm/reg_8xx.h> | 26 | #include <asm/reg_8xx.h> |
23 | #endif /* CONFIG_8xx */ | 27 | #endif /* CONFIG_8xx */ |
diff --git a/include/asm-powerpc/reg_booke.h b/include/asm-powerpc/reg_booke.h index 0405ef47981..cf54a3f3175 100644 --- a/include/asm-powerpc/reg_booke.h +++ b/include/asm-powerpc/reg_booke.h | |||
@@ -9,68 +9,6 @@ | |||
9 | #ifndef __ASM_POWERPC_REG_BOOKE_H__ | 9 | #ifndef __ASM_POWERPC_REG_BOOKE_H__ |
10 | #define __ASM_POWERPC_REG_BOOKE_H__ | 10 | #define __ASM_POWERPC_REG_BOOKE_H__ |
11 | 11 | ||
12 | #ifndef __ASSEMBLY__ | ||
13 | /* Performance Monitor Registers */ | ||
14 | #define mfpmr(rn) ({unsigned int rval; \ | ||
15 | asm volatile("mfpmr %0," __stringify(rn) \ | ||
16 | : "=r" (rval)); rval;}) | ||
17 | #define mtpmr(rn, v) asm volatile("mtpmr " __stringify(rn) ",%0" : : "r" (v)) | ||
18 | #endif /* __ASSEMBLY__ */ | ||
19 | |||
20 | /* Freescale Book E Performance Monitor APU Registers */ | ||
21 | #define PMRN_PMC0 0x010 /* Performance Monitor Counter 0 */ | ||
22 | #define PMRN_PMC1 0x011 /* Performance Monitor Counter 1 */ | ||
23 | #define PMRN_PMC2 0x012 /* Performance Monitor Counter 1 */ | ||
24 | #define PMRN_PMC3 0x013 /* Performance Monitor Counter 1 */ | ||
25 | #define PMRN_PMLCA0 0x090 /* PM Local Control A0 */ | ||
26 | #define PMRN_PMLCA1 0x091 /* PM Local Control A1 */ | ||
27 | #define PMRN_PMLCA2 0x092 /* PM Local Control A2 */ | ||
28 | #define PMRN_PMLCA3 0x093 /* PM Local Control A3 */ | ||
29 | |||
30 | #define PMLCA_FC 0x80000000 /* Freeze Counter */ | ||
31 | #define PMLCA_FCS 0x40000000 /* Freeze in Supervisor */ | ||
32 | #define PMLCA_FCU 0x20000000 /* Freeze in User */ | ||
33 | #define PMLCA_FCM1 0x10000000 /* Freeze when PMM==1 */ | ||
34 | #define PMLCA_FCM0 0x08000000 /* Freeze when PMM==0 */ | ||
35 | #define PMLCA_CE 0x04000000 /* Condition Enable */ | ||
36 | |||
37 | #define PMLCA_EVENT_MASK 0x007f0000 /* Event field */ | ||
38 | #define PMLCA_EVENT_SHIFT 16 | ||
39 | |||
40 | #define PMRN_PMLCB0 0x110 /* PM Local Control B0 */ | ||
41 | #define PMRN_PMLCB1 0x111 /* PM Local Control B1 */ | ||
42 | #define PMRN_PMLCB2 0x112 /* PM Local Control B2 */ | ||
43 | #define PMRN_PMLCB3 0x113 /* PM Local Control B3 */ | ||
44 | |||
45 | #define PMLCB_THRESHMUL_MASK 0x0700 /* Threshhold Multiple Field */ | ||
46 | #define PMLCB_THRESHMUL_SHIFT 8 | ||
47 | |||
48 | #define PMLCB_THRESHOLD_MASK 0x003f /* Threshold Field */ | ||
49 | #define PMLCB_THRESHOLD_SHIFT 0 | ||
50 | |||
51 | #define PMRN_PMGC0 0x190 /* PM Global Control 0 */ | ||
52 | |||
53 | #define PMGC0_FAC 0x80000000 /* Freeze all Counters */ | ||
54 | #define PMGC0_PMIE 0x40000000 /* Interrupt Enable */ | ||
55 | #define PMGC0_FCECE 0x20000000 /* Freeze countes on | ||
56 | Enabled Condition or | ||
57 | Event */ | ||
58 | |||
59 | #define PMRN_UPMC0 0x000 /* User Performance Monitor Counter 0 */ | ||
60 | #define PMRN_UPMC1 0x001 /* User Performance Monitor Counter 1 */ | ||
61 | #define PMRN_UPMC2 0x002 /* User Performance Monitor Counter 1 */ | ||
62 | #define PMRN_UPMC3 0x003 /* User Performance Monitor Counter 1 */ | ||
63 | #define PMRN_UPMLCA0 0x080 /* User PM Local Control A0 */ | ||
64 | #define PMRN_UPMLCA1 0x081 /* User PM Local Control A1 */ | ||
65 | #define PMRN_UPMLCA2 0x082 /* User PM Local Control A2 */ | ||
66 | #define PMRN_UPMLCA3 0x083 /* User PM Local Control A3 */ | ||
67 | #define PMRN_UPMLCB0 0x100 /* User PM Local Control B0 */ | ||
68 | #define PMRN_UPMLCB1 0x101 /* User PM Local Control B1 */ | ||
69 | #define PMRN_UPMLCB2 0x102 /* User PM Local Control B2 */ | ||
70 | #define PMRN_UPMLCB3 0x103 /* User PM Local Control B3 */ | ||
71 | #define PMRN_UPMGC0 0x180 /* User PM Global Control 0 */ | ||
72 | |||
73 | |||
74 | /* Machine State Register (MSR) Fields */ | 12 | /* Machine State Register (MSR) Fields */ |
75 | #define MSR_UCLE (1<<26) /* User-mode cache lock enable */ | 13 | #define MSR_UCLE (1<<26) /* User-mode cache lock enable */ |
76 | #define MSR_SPE (1<<25) /* Enable SPE */ | 14 | #define MSR_SPE (1<<25) /* Enable SPE */ |
diff --git a/include/asm-powerpc/reg_fsl_emb.h b/include/asm-powerpc/reg_fsl_emb.h new file mode 100644 index 00000000000..1e180a59458 --- /dev/null +++ b/include/asm-powerpc/reg_fsl_emb.h | |||
@@ -0,0 +1,72 @@ | |||
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__ */ | ||