/* * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include #include #include /******************************************************************************* * Export the platform handlers via plat_arm_psci_pm_ops. The ARM Standard * platform layer will take care of registering the handlers with PSCI. ******************************************************************************/ static void __dead2 corstone1000_system_reset(void) { uint32_t volatile * const watchdog_ctrl_reg = (uint32_t *) SECURE_WATCHDOG_ADDR_CTRL_REG; uint32_t volatile * const watchdog_val_reg = (uint32_t *) SECURE_WATCHDOG_ADDR_VAL_REG; *(watchdog_val_reg) = SECURE_WATCHDOG_COUNTDOWN_VAL; *watchdog_ctrl_reg = SECURE_WATCHDOG_MASK_ENABLE; while (1) { wfi(); } } plat_psci_ops_t plat_arm_psci_pm_ops = { .system_reset = corstone1000_system_reset, .validate_ns_entrypoint = NULL }; const plat_psci_ops_t *plat_arm_psci_override_pm_ops(plat_psci_ops_t *ops) { ops = &plat_arm_psci_pm_ops; return ops; }