summaryrefslogtreecommitdiff
path: root/include/plat/marvell/a8k/common/plat_marvell.h
diff options
context:
space:
mode:
authorOmri Itach <omrii@marvell.com>2017-06-27 11:24:50 +0300
committerKostya Porotchkin <kostap@marvell.com>2017-07-10 11:52:34 +0300
commitb8857ff89a6804250e27f7c1dcf1454a3eaf47c8 (patch)
tree2a4056924ef47d8335c737007b72133dd46247bd /include/plat/marvell/a8k/common/plat_marvell.h
parentd77aeb0e88718f84489e813355127060c33f935d (diff)
ap806: pm: poweroff unused CPUs at early boot stage
The entire boot flow is performed via CPU0, while CPUs1-3 remain unused untill Linux is booted. During this stage, CPU1-3 are kept in reset (not powered off), hence still consuming current and leading to increased SoC temperatures. To avoid unnecessary current consumption, and mainly to reduce SoC temperatures, unused CPUs are powered off (CPU1 in dual-core system, and CPU1-3 in quad-core systems), at early BLE stage, prior to DDR initialization, and powered back on during Linux PSCI calls to a8k_pwr_domain_on, before getting these CPUs out of reset. This patch was tested on Armada 8040 MACCHIATObin, and it leads to ~10-15% reduction of current consumption and SoC temperature in U-Boot. Change-Id: Ic1baeaa89f2806125d8347badcf5b30c13583162 Signed-off-by: Omri Itach <omrii@marvell.com> Reviewed-on: http://vgitil04.il.marvell.com:8080/40869 Reviewed-by: Hanna Hawa <hannah@marvell.com> Tested-by: iSoC Platform CI <ykjenk@marvell.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
Diffstat (limited to 'include/plat/marvell/a8k/common/plat_marvell.h')
-rw-r--r--include/plat/marvell/a8k/common/plat_marvell.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/plat/marvell/a8k/common/plat_marvell.h b/include/plat/marvell/a8k/common/plat_marvell.h
index d6280ed1..dfc1db19 100644
--- a/include/plat/marvell/a8k/common/plat_marvell.h
+++ b/include/plat/marvell/a8k/common/plat_marvell.h
@@ -127,4 +127,5 @@ void marvell_bl1_setup_mpps(void);
const mmap_region_t *plat_marvell_get_mmap(void);
+int plat_marvell_early_cpu_powerdown(void);
#endif /* __PLAT_MARVELL_H__ */