summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2015-04-21 07:18:34 +0200
committerTom Warren <twarren@nvidia.com>2015-05-13 09:24:15 -0700
commitce416fac3802528702e46663882d67cb8561b4c8 (patch)
tree2dbc146760632b5bfe1d60110838fbeeaeaa8b98
parent91a34ed9b182d796e0364a8fd1e72e3915c4daea (diff)
downloadu-boot-imx-ce416fac3802528702e46663882d67cb8561b4c8.zip
u-boot-imx-ce416fac3802528702e46663882d67cb8561b4c8.tar.gz
u-boot-imx-ce416fac3802528702e46663882d67cb8561b4c8.tar.bz2
ARM: Add board-specific initialization hook for PSCI
Tegra boards will have to initialize power management for the PSCI support this way. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
-rw-r--r--arch/arm/cpu/armv7/virt-v7.c6
-rw-r--r--arch/arm/include/asm/psci.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/virt-v7.c b/arch/arm/cpu/armv7/virt-v7.c
index 4cb8806..db4f6ad 100644
--- a/arch/arm/cpu/armv7/virt-v7.c
+++ b/arch/arm/cpu/armv7/virt-v7.c
@@ -75,6 +75,10 @@ void __weak smp_kick_all_cpus(void)
kick_secondary_cpus_gic(gic_dist_addr);
}
+__weak void psci_board_init(void)
+{
+}
+
int armv7_init_nonsec(void)
{
unsigned int reg;
@@ -112,6 +116,8 @@ int armv7_init_nonsec(void)
for (i = 1; i <= itlinesnr; i++)
writel((unsigned)-1, gic_dist_addr + GICD_IGROUPRn + 4 * i);
+ psci_board_init();
+
/*
* Relocate secure section before any cpu runs in secure ram.
* smp_kick_all_cpus may enable other cores and runs into secure
diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h
index 50a3ca4..128a606 100644
--- a/arch/arm/include/asm/psci.h
+++ b/arch/arm/include/asm/psci.h
@@ -34,6 +34,7 @@
#ifndef __ASSEMBLY__
int psci_update_dt(void *fdt);
+void psci_board_init(void);
#endif /* ! __ASSEMBLY__ */
#endif /* __ARM_PSCI_H__ */