diff options
author | Chris Redpath <chris.redpath@arm.com> | 2015-11-13 10:21:39 +0000 |
---|---|---|
committer | Jon Medhurst <tixy@linaro.org> | 2016-04-04 15:17:19 +0100 |
commit | c84631fb9437267568bedb3969a05a345c3f9e4c (patch) | |
tree | 3784911d5020b3e6a1f558ef38b01e619b00d4ff | |
parent | 7cf49a3397a6afe7aa4dd7e4718d5b11ed98724b (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.dtsi | 114 | ||||
-rw-r--r-- | arch/arm64/boot/dts/arm/juno.dts | 8 |
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 { |