DTB: Add EAS compatible Juno Energy model to 'juno.dts'
EAS expects the energy model for the CPUs and cluster states to be available in the DTB. The energy model data comes from previous versions. Change-Id: I87535c8d802797361333929d809b43383bc8954b (cherry picked from commit bf137f205f312a1814ae38f908ec7bdbdddeaa3e (LSK 4.4)) Signed-off-by: Chris Redpath <chris.redpath@arm.com> Signed-off-by: Punit Agrawal <punit.agrawal@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
This commit is contained in:
parent
174a03a0bd
commit
a2849d4502
2 changed files with 155 additions and 0 deletions
147
arch/arm64/boot/dts/arm/juno-sched-energy.dtsi
Normal file
147
arch/arm64/boot/dts/arm/juno-sched-energy.dtsi
Normal file
|
@ -0,0 +1,147 @@
|
|||
/*
|
||||
* 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 }, /\* arch_cpu_idle() (active idle) = WFI *\/ */
|
||||
/* { .power = 56 }, /\* WFI *\/ */
|
||||
/* { .power = 56 }, /\* cpu-sleep-0 *\/ */
|
||||
/* { .power = 17 }, /\* cluster-sleep-0 *\/ */
|
||||
/* }; */
|
||||
|
||||
/* static struct idle_state idle_states_cluster_a57[] = { */
|
||||
/* { .power = 65 }, /\* arch_cpu_idle() (active idle) = WFI *\/ */
|
||||
/* { .power = 65 }, /\* WFI *\/ */
|
||||
/* { .power = 65 }, /\* cpu-sleep-0 *\/ */
|
||||
/* { .power = 24 }, /\* cluster-sleep-0 *\/ */
|
||||
/* }; */
|
||||
|
||||
/* static struct capacity_state cap_states_cluster_a53[] = { */
|
||||
/* /\* Power per cluster *\/ */
|
||||
/* { .cap = 235, .power = 26, }, /\* 450 MHz *\/ */
|
||||
/* { .cap = 303, .power = 30, }, /\* 575 MHz *\/ */
|
||||
/* { .cap = 368, .power = 39, }, /\* 700 MHz *\/ */
|
||||
/* { .cap = 406, .power = 47, }, /\* 775 MHz *\/ */
|
||||
/* { .cap = 447, .power = 57, }, /\* 850 Mhz *\/ */
|
||||
/* }; */
|
||||
|
||||
/* static struct capacity_state cap_states_cluster_a57[] = { */
|
||||
/* /\* Power per cluster *\/ */
|
||||
/* { .cap = 417, .power = 24, }, /\* 450 MHz *\/ */
|
||||
/* { .cap = 579, .power = 32, }, /\* 625 MHz *\/ */
|
||||
/* { .cap = 744, .power = 43, }, /\* 800 MHz *\/ */
|
||||
/* { .cap = 883, .power = 49, }, /\* 950 MHz *\/ */
|
||||
/* { .cap = 1024, .power = 64, }, /\* 1100 MHz *\/ */
|
||||
/* }; */
|
||||
|
||||
/* static struct sched_group_energy energy_cluster_a53 = { */
|
||||
/* .nr_idle_states = ARRAY_SIZE(idle_states_cluster_a53), */
|
||||
/* .idle_states = idle_states_cluster_a53, */
|
||||
/* .nr_cap_states = ARRAY_SIZE(cap_states_cluster_a53), */
|
||||
/* .cap_states = cap_states_cluster_a53, */
|
||||
/* }; */
|
||||
|
||||
/* static struct sched_group_energy energy_cluster_a57 = { */
|
||||
/* .nr_idle_states = ARRAY_SIZE(idle_states_cluster_a57), */
|
||||
/* .idle_states = idle_states_cluster_a57, */
|
||||
/* .nr_cap_states = ARRAY_SIZE(cap_states_cluster_a57), */
|
||||
/* .cap_states = cap_states_cluster_a57, */
|
||||
/* }; */
|
||||
|
||||
/* static struct idle_state idle_states_core_a53[] = { */
|
||||
/* { .power = 6 }, /\* arch_cpu_idle() (active idle) = WFI *\/ */
|
||||
/* { .power = 6 }, /\* WFI *\/ */
|
||||
/* { .power = 0 }, /\* cpu-sleep-0 *\/ */
|
||||
/* { .power = 0 }, /\* cluster-sleep-0 *\/ */
|
||||
/* }; */
|
||||
|
||||
/* static struct idle_state idle_states_core_a57[] = { */
|
||||
/* { .power = 15 }, /\* arch_cpu_idle() (active idle) = WFI *\/ */
|
||||
/* { .power = 15 }, /\* WFI *\/ */
|
||||
/* { .power = 0 }, /\* cpu-sleep-0 *\/ */
|
||||
/* { .power = 0 }, /\* cluster-sleep-0 *\/ */
|
||||
/* }; */
|
||||
|
||||
/* static struct capacity_state cap_states_core_a53[] = { */
|
||||
/* /\* Power per cpu *\/ */
|
||||
/* { .cap = 235, .power = 33, }, /\* 450 MHz *\/ */
|
||||
/* { .cap = 302, .power = 46, }, /\* 575 MHz *\/ */
|
||||
/* { .cap = 368, .power = 61, }, /\* 700 MHz *\/ */
|
||||
/* { .cap = 406, .power = 76, }, /\* 775 MHz *\/ */
|
||||
/* { .cap = 447, .power = 93, }, /\* 850 Mhz *\/ */
|
||||
/* }; */
|
||||
|
||||
/* static struct capacity_state cap_states_core_a57[] = { */
|
||||
/* /\* Power per cpu *\/ */
|
||||
/* { .cap = 417, .power = 168, }, /\* 450 MHz *\/ */
|
||||
/* { .cap = 579, .power = 251, }, /\* 625 MHz *\/ */
|
||||
/* { .cap = 744, .power = 359, }, /\* 800 MHz *\/ */
|
||||
/* { .cap = 883, .power = 479, }, /\* 950 MHz *\/ */
|
||||
/* { .cap = 1024, .power = 616, }, /\* 1100 MHz *\/ */
|
||||
/* }; */
|
||||
|
||||
energy-costs {
|
||||
CPU_COST_A57: core-cost0 {
|
||||
busy-cost-data = <
|
||||
417 168
|
||||
579 251
|
||||
744 359
|
||||
883 479
|
||||
1023 616
|
||||
>;
|
||||
idle-cost-data = <
|
||||
15
|
||||
15
|
||||
0
|
||||
0
|
||||
>;
|
||||
};
|
||||
CPU_COST_A53: core-cost1 {
|
||||
busy-cost-data = <
|
||||
235 33
|
||||
302 46
|
||||
368 61
|
||||
406 76
|
||||
447 93
|
||||
>;
|
||||
idle-cost-data = <
|
||||
6
|
||||
6
|
||||
0
|
||||
0
|
||||
>;
|
||||
};
|
||||
CLUSTER_COST_A57: cluster-cost0 {
|
||||
busy-cost-data = <
|
||||
417 24
|
||||
579 32
|
||||
744 43
|
||||
883 49
|
||||
1024 64
|
||||
>;
|
||||
idle-cost-data = <
|
||||
65
|
||||
65
|
||||
65
|
||||
24
|
||||
>;
|
||||
};
|
||||
CLUSTER_COST_A53: cluster-cost1 {
|
||||
busy-cost-data = <
|
||||
235 26
|
||||
303 30
|
||||
368 39
|
||||
406 47
|
||||
447 57
|
||||
>;
|
||||
idle-cost-data = <
|
||||
56
|
||||
56
|
||||
56
|
||||
17
|
||||
>;
|
||||
};
|
||||
};
|
|
@ -90,6 +90,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 {
|
||||
|
@ -100,6 +101,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 {
|
||||
|
@ -110,6 +112,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 {
|
||||
|
@ -120,6 +123,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 {
|
||||
|
@ -130,6 +134,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 {
|
||||
|
@ -140,6 +145,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 {
|
||||
|
@ -149,6 +155,8 @@
|
|||
A53_L2: l2-cache1 {
|
||||
compatible = "cache";
|
||||
};
|
||||
|
||||
/include/ "juno-sched-energy.dtsi"
|
||||
};
|
||||
|
||||
pmu_a57 {
|
||||
|
|
Loading…
Add table
Reference in a new issue