1 /*
2 * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7 #include <arch.h>
8 #include <common/debug.h>
9
10 #include <power_tracer.h>
11
12 #define trace_log(...) INFO("psci: " __VA_ARGS__)
13
trace_power_flow(unsigned long mpidr,unsigned char mode)14 void trace_power_flow(unsigned long mpidr, unsigned char mode)
15 {
16 switch (mode) {
17 case CPU_UP:
18 trace_log("core %lld:%lld ON\n",
19 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS,
20 (mpidr & MPIDR_CPU_MASK));
21 break;
22 case CPU_DOWN:
23 trace_log("core %lld:%lld OFF\n",
24 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS,
25 (mpidr & MPIDR_CPU_MASK));
26 break;
27 case CPU_SUSPEND:
28 trace_log("core %lld:%lld SUSPEND\n",
29 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS,
30 (mpidr & MPIDR_CPU_MASK));
31 break;
32 case CLUSTER_UP:
33 trace_log("cluster %lld ON\n",
34 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS);
35 break;
36 case CLUSTER_DOWN:
37 trace_log("cluster %lld OFF\n",
38 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS);
39 break;
40 case CLUSTER_SUSPEND:
41 trace_log("cluster %lld SUSPEND\n",
42 (mpidr & MPIDR_CLUSTER_MASK) >> MPIDR_AFFINITY_BITS);
43 break;
44 default:
45 trace_log("unknown power mode\n");
46 break;
47 }
48 }
49