diff options
author | Manish Pandey <manish.pandey2@arm.com> | 2023-05-11 11:08:52 +0200 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2023-05-11 11:08:52 +0200 |
commit | 5bfdb732705f964bb8ef09753a2112b65851f476 (patch) | |
tree | adf2eb498578d1d5aa6d92d6d84aed14f24b900e /plat/arm/board/morello | |
parent | a63de43661015b392be1e0827b64a77ae687d8f8 (diff) | |
parent | 02a5bcb0bc3c8596894b6d0ec8c979b330db387a (diff) | |
download | arm-trusted-firmware-5bfdb732705f964bb8ef09753a2112b65851f476.tar.gz |
Merge "fix(morello): add platform-specific power domain functions" into integration
Diffstat (limited to 'plat/arm/board/morello')
-rw-r--r-- | plat/arm/board/morello/morello_bl31_setup.c | 3 | ||||
-rw-r--r-- | plat/arm/board/morello/morello_pm.c | 29 | ||||
-rw-r--r-- | plat/arm/board/morello/morello_private.h | 15 | ||||
-rw-r--r-- | plat/arm/board/morello/platform.mk | 1 |
4 files changed, 48 insertions, 0 deletions
diff --git a/plat/arm/board/morello/morello_bl31_setup.c b/plat/arm/board/morello/morello_bl31_setup.c index cef42f46c..e13a38b32 100644 --- a/plat/arm/board/morello/morello_bl31_setup.c +++ b/plat/arm/board/morello/morello_bl31_setup.c @@ -12,6 +12,7 @@ #include <services/arm_arch_svc.h> #include "morello_def.h" +#include "morello_private.h" #include <platform_def.h> #ifdef TARGET_PLATFORM_SOC @@ -33,6 +34,8 @@ scmi_channel_plat_info_t *plat_css_get_scmi_info(unsigned int channel_id) const plat_psci_ops_t *plat_arm_psci_override_pm_ops(plat_psci_ops_t *ops) { + ops->pwr_domain_off = morello_pwr_domain_off; + ops->pwr_domain_suspend = morello_pwr_domain_suspend; return css_scmi_override_pm_ops(ops); } diff --git a/plat/arm/board/morello/morello_pm.c b/plat/arm/board/morello/morello_pm.c new file mode 100644 index 000000000..dda006eac --- /dev/null +++ b/plat/arm/board/morello/morello_pm.c @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023, Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <lib/psci/psci.h> +#include <plat/arm/common/plat_arm.h> +#include <plat/arm/css/common/css_pm.h> + +#include "morello_private.h" + +/******************************************************************************* + * Morello specific functions called when turning off or suspending a power + * domain. Both additionally disable the GIC redistributor interface as cores + * are disabled to let cluster-PPU state transition to completion when a + * cluster is powered down. + ******************************************************************************/ +void morello_pwr_domain_off(const psci_power_state_t *target_state) +{ + css_pwr_domain_off(target_state); + plat_arm_gic_redistif_off(); +} + +void morello_pwr_domain_suspend(const psci_power_state_t *target_state) +{ + css_pwr_domain_suspend(target_state); + plat_arm_gic_redistif_off(); +} diff --git a/plat/arm/board/morello/morello_private.h b/plat/arm/board/morello/morello_private.h new file mode 100644 index 000000000..ea2fce974 --- /dev/null +++ b/plat/arm/board/morello/morello_private.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2023, Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef MORELLO_PRIVATE_H +#define MORELLO_PRIVATE_H + +#include <lib/psci/psci.h> + +void morello_pwr_domain_off(const psci_power_state_t *target_state); +void morello_pwr_domain_suspend(const psci_power_state_t *target_state); + +#endif /* MORELLO_PRIVATE_H */ diff --git a/plat/arm/board/morello/platform.mk b/plat/arm/board/morello/platform.mk index 0f0cabbad..0ae769338 100644 --- a/plat/arm/board/morello/platform.mk +++ b/plat/arm/board/morello/platform.mk @@ -49,6 +49,7 @@ BL31_SOURCES := ${MORELLO_CPU_SOURCES} \ ${INTERCONNECT_SOURCES} \ ${MORELLO_GIC_SOURCES} \ ${MORELLO_BASE}/morello_bl31_setup.c \ + ${MORELLO_BASE}/morello_pm.c \ ${MORELLO_BASE}/morello_topology.c \ ${MORELLO_BASE}/morello_security.c \ drivers/arm/css/sds/sds.c |