mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 17:44:19 +00:00

To initiate a reset or reboot, the nonsecure OS invokes the PSCI SYSTEM_RESET function from any one core. As per the PSCI specification, it is the responsibility of firmware to implement the system view of the reset or reboot operation. For the platforms supported by CSS, trigger the reset/reboot operation by sending an SGI to rest all CPUs which are online. The CPUs respond to this interrupt by initiating its powerdown sequence. In addition to these changes, fix coding style issues that are not directly related to the code being introduced in this patch. Change-Id: I547253ee28ef7eefa78180d016893671a406bbfa Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
97 lines
3.1 KiB
Makefile
97 lines
3.1 KiB
Makefile
#
|
|
# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
|
|
# By default, SCP images are needed by CSS platforms.
|
|
CSS_LOAD_SCP_IMAGES ?= 1
|
|
|
|
# By default, SCMI driver is disabled for CSS platforms
|
|
CSS_USE_SCMI_SDS_DRIVER ?= 0
|
|
|
|
PLAT_INCLUDES += -Iinclude/plat/arm/css/common/aarch64
|
|
|
|
|
|
PLAT_BL_COMMON_SOURCES += plat/arm/css/common/${ARCH}/css_helpers.S
|
|
|
|
BL1_SOURCES += plat/arm/css/common/css_bl1_setup.c
|
|
|
|
BL2_SOURCES += plat/arm/css/common/css_bl2_setup.c
|
|
|
|
BL2U_SOURCES += plat/arm/css/common/css_bl2u_setup.c
|
|
|
|
BL31_SOURCES += plat/arm/css/common/css_pm.c \
|
|
plat/arm/css/common/css_topology.c
|
|
|
|
ifeq (${CSS_USE_SCMI_SDS_DRIVER},0)
|
|
BL31_SOURCES += drivers/arm/css/mhu/css_mhu.c \
|
|
drivers/arm/css/scp/css_pm_scpi.c \
|
|
drivers/arm/css/scpi/css_scpi.c
|
|
else
|
|
BL31_SOURCES += drivers/arm/css/mhu/css_mhu_doorbell.c \
|
|
drivers/arm/css/scmi/scmi_ap_core_proto.c \
|
|
drivers/arm/css/scmi/scmi_common.c \
|
|
drivers/arm/css/scmi/scmi_pwr_dmn_proto.c \
|
|
drivers/arm/css/scmi/scmi_sys_pwr_proto.c \
|
|
drivers/delay_timer/delay_timer.c \
|
|
drivers/arm/css/scp/css_pm_scmi.c
|
|
endif
|
|
|
|
# Process CSS_LOAD_SCP_IMAGES flag
|
|
$(eval $(call assert_boolean,CSS_LOAD_SCP_IMAGES))
|
|
$(eval $(call add_define,CSS_LOAD_SCP_IMAGES))
|
|
|
|
ifeq (${CSS_LOAD_SCP_IMAGES},1)
|
|
NEED_SCP_BL2 := yes
|
|
ifneq (${TRUSTED_BOARD_BOOT},0)
|
|
$(eval $(call TOOL_ADD_IMG,scp_bl2u,--scp-fwu-cfg,FWU_))
|
|
endif
|
|
|
|
ifeq (${CSS_USE_SCMI_SDS_DRIVER},1)
|
|
BL2U_SOURCES += drivers/arm/css/scp/css_sds.c \
|
|
drivers/arm/css/sds/sds.c
|
|
|
|
BL2_SOURCES += drivers/arm/css/scp/css_sds.c \
|
|
drivers/arm/css/sds/sds.c
|
|
else
|
|
BL2U_SOURCES += drivers/arm/css/mhu/css_mhu.c \
|
|
drivers/arm/css/scp/css_bom_bootloader.c \
|
|
drivers/arm/css/scpi/css_scpi.c
|
|
|
|
BL2_SOURCES += drivers/arm/css/mhu/css_mhu.c \
|
|
drivers/arm/css/scp/css_bom_bootloader.c \
|
|
drivers/arm/css/scpi/css_scpi.c
|
|
# Enable option to detect whether the SCP ROM firmware in use predates version
|
|
# 1.7.0 and therefore, is incompatible.
|
|
CSS_DETECT_PRE_1_7_0_SCP := 1
|
|
|
|
# Process CSS_DETECT_PRE_1_7_0_SCP flag
|
|
$(eval $(call assert_boolean,CSS_DETECT_PRE_1_7_0_SCP))
|
|
$(eval $(call add_define,CSS_DETECT_PRE_1_7_0_SCP))
|
|
endif
|
|
endif
|
|
|
|
ifeq (${CSS_USE_SCMI_SDS_DRIVER},1)
|
|
PLAT_BL_COMMON_SOURCES += drivers/arm/css/sds/${ARCH}/sds_helpers.S
|
|
endif
|
|
|
|
# Process CSS_USE_SCMI_SDS_DRIVER flag
|
|
$(eval $(call assert_boolean,CSS_USE_SCMI_SDS_DRIVER))
|
|
$(eval $(call add_define,CSS_USE_SCMI_SDS_DRIVER))
|
|
|
|
# Process CSS_NON_SECURE_UART flag
|
|
# This undocumented build option is only to enable debug access to the UART
|
|
# from non secure code, which is useful on some platforms.
|
|
# Default (obviously) is off.
|
|
CSS_NON_SECURE_UART := 0
|
|
$(eval $(call assert_boolean,CSS_NON_SECURE_UART))
|
|
$(eval $(call add_define,CSS_NON_SECURE_UART))
|
|
|
|
# Process CSS_SYSTEM_GRACEFUL_RESET flag
|
|
# This build option can be used on CSS platforms that require all the CPUs
|
|
# to execute the CPU specific power down sequence to complete a warm reboot
|
|
# sequence in which only the CPUs are power cycled.
|
|
CSS_SYSTEM_GRACEFUL_RESET := 0
|
|
$(eval $(call add_define,CSS_SYSTEM_GRACEFUL_RESET))
|