aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Redpath <chris.redpath@arm.com>2015-11-13 10:21:39 +0000
committerJon Medhurst <tixy@linaro.org>2016-04-04 15:17:19 +0100
commitc84631fb9437267568bedb3969a05a345c3f9e4c (patch)
tree3784911d5020b3e6a1f558ef38b01e619b00d4ff
parent7cf49a3397a6afe7aa4dd7e4718d5b11ed98724b (diff)
DTB: Add EAS v5.0 compatible Juno Energy model to 'juno.dts'lsk-3.18-armlt-20160404-eas-test
EAS v5.0 expects the energy model for the CPUs and cluster states to be available in the DTB. The energy model data comes from previous versions. Signed-off-by: Chris Redpath <chris.redpath@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
-rw-r--r--arch/arm64/boot/dts/arm/juno-sched-energy.dtsi114
-rw-r--r--arch/arm64/boot/dts/arm/juno.dts8
2 files changed, 122 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/arm/juno-sched-energy.dtsi b/arch/arm64/boot/dts/arm/juno-sched-energy.dtsi
new file mode 100644
index 000000000000..3f9f10cd5ab5
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/juno-sched-energy.dtsi
@@ -0,0 +1,114 @@
+/*
+ * ARM JUNO specific energy cost model data. There are no unit requirements for
+ * the data. Data can be normalized to any reference point, but the
+ * normalization must be consistent. That is, one bogo-joule/watt must be the
+ * same quantity for all data, but we don't care what it is.
+ */
+
+/* static struct idle_state idle_states_cluster_a53[] = {
+ * { .power = 56 },
+ * { .power = 17 },
+ * };
+ *
+ * static struct idle_state idle_states_cluster_a57[] = {
+ * { .power = 65 },
+ * { .power = 24 },
+ * };
+ *
+ * static struct capacity_state cap_states_cluster_a53[] = {
+ * { .cap = 235, .power = 26, },
+ * { .cap = 303, .power = 30, },
+ * { .cap = 368, .power = 39, },
+ * { .cap = 406, .power = 47, },
+ * { .cap = 447, .power = 57, },
+ * };
+ *
+ * static struct capacity_state cap_states_cluster_a57[] = {
+ * { .cap = 417, .power = 24, },
+ * { .cap = 579, .power = 32, },
+ * ( .cap = 744, .power = 43, },
+ * { .cap = 883, .power = 49, },
+ * { .cap = 1024, .power = 64, },
+ * };
+ *
+ * static struct idle_state idle_states_core_a53[] = {
+ * { .power = 6 },
+ * { .power = 0 },
+ * };
+ *
+ * static struct idle_state idle_states_core_a57[] = {
+ * { .power = 15 },
+ * { .power = 0 },
+ * };
+ *
+ * static struct capacity_state cap_states_core_a53[] = {
+ * { .cap = 235, .power = 33, },
+ * { .cap = 302, .power = 46, },
+ * { .cap = 368, .power = 61, },
+ * { .cap = 406, .power = 76, },
+ * { .cap = 447, .power = 93, },
+ * };
+ *
+ * static struct capacity_state cap_states_core_a57[] = {
+ * { .cap = 417, .power = 168, },
+ * { .cap = 579, .power = 251, },
+ * { .cap = 744, .power = 359, },
+ * { .cap = 883, .power = 479, },
+ * { .cap = 1024, .power = 616, },
+ * };
+ */
+
+energy-costs {
+ CPU_COST_A57: core-cost0 {
+ busy-cost-data = <
+ 417 168
+ 579 251
+ 744 359
+ 883 479
+ 1023 616
+ >;
+ idle-cost-data = <
+ 15
+ 0
+ >;
+ };
+ CPU_COST_A53: core-cost1 {
+ busy-cost-data = <
+ 235 33
+ 302 46
+ 368 61
+ 406 76
+ 447 93
+ >;
+ idle-cost-data = <
+ 6
+ 0
+ >;
+ };
+ CLUSTER_COST_A57: cluster-cost0 {
+ busy-cost-data = <
+ 417 24
+ 579 32
+ 744 43
+ 883 49
+ 1024 64
+ >;
+ idle-cost-data = <
+ 65
+ 24
+ >;
+ };
+ CLUSTER_COST_A53: cluster-cost1 {
+ busy-cost-data = <
+ 235 26
+ 303 30
+ 368 39
+ 406 47
+ 447 57
+ >;
+ idle-cost-data = <
+ 56
+ 17
+ >;
+ };
+}; \ No newline at end of file
diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts
index dae7f930b681..b367d4e07a69 100644
--- a/arch/arm64/boot/dts/arm/juno.dts
+++ b/arch/arm64/boot/dts/arm/juno.dts
@@ -93,6 +93,7 @@
next-level-cache = <&A57_L2>;
clocks = <&scpi_dvfs 0>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
+ sched-energy-costs = <&CPU_COST_A57 &CLUSTER_COST_A57>;
};
A57_1: cpu@1 {
@@ -103,6 +104,7 @@
next-level-cache = <&A57_L2>;
clocks = <&scpi_dvfs 0>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
+ sched-energy-costs = <&CPU_COST_A57 &CLUSTER_COST_A57>;
};
A53_0: cpu@100 {
@@ -113,6 +115,7 @@
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
+ sched-energy-costs = <&CPU_COST_A53 &CLUSTER_COST_A53>;
};
A53_1: cpu@101 {
@@ -123,6 +126,7 @@
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
+ sched-energy-costs = <&CPU_COST_A53 &CLUSTER_COST_A53>;
};
A53_2: cpu@102 {
@@ -133,6 +137,7 @@
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
+ sched-energy-costs = <&CPU_COST_A53 &CLUSTER_COST_A53>;
};
A53_3: cpu@103 {
@@ -143,6 +148,7 @@
next-level-cache = <&A53_L2>;
clocks = <&scpi_dvfs 1>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
+ sched-energy-costs = <&CPU_COST_A53 &CLUSTER_COST_A53>;
};
A57_L2: l2-cache0 {
@@ -152,6 +158,8 @@
A53_L2: l2-cache1 {
compatible = "cache";
};
+
+ /include/ "juno-sched-energy.dtsi"
};
pmu_a57 {