xilinx: zynqmp: Enable reset_cpu() in SPL

This commit enables SPL to reset the CPU via PMU-firmware. The usual
reset mechanism requires bl31 to be loaded which may not be the case in
SPL.

Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com>
Link: https://lore.kernel.org/r/20240607092608.712996-2-lukas.funke-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
This commit is contained in:
Lukas Funke
2024-06-07 11:26:08 +02:00
committed by Michal Simek
parent d67558b358
commit 081f3a1991

View File

@@ -285,6 +285,18 @@ int dram_init(void)
#if !CONFIG_IS_ENABLED(SYSRESET)
void reset_cpu(void)
{
if (!IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE)) {
log_warning("reset failed: ZYNQMP_FIRMWARE disabled");
return;
}
/* In case of !CONFIG_ZYNQMP_FIRMWARE the call to 'xilinx_pm_request()'
* will be removed by the compiler due to the early return.
* If CONFIG_ZYNQMP_FIRMWARE is defined in SPL 'xilinx_pm_request()'
* will send command over IPI and requires pmufw to be present.
*/
xilinx_pm_request(PM_RESET_ASSERT, ZYNQMP_PM_RESET_SOFT,
PM_RESET_ACTION_ASSERT, 0, 0, NULL);
}
#endif