mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-23 18:38:51 +09:00
![Yuantian Tang](/assets/img/avatar_default.png)
PSCI can be used on both multiple and single core socs. Current implementation only allows PSCI to work on multiple core socs. This patch removes this restriction so that PSCI can work on single core socs as well. Signed-off-by: Chenhui Zhao <chenhui.zhao@nxp.com> Signed-off-by: Tang Yuantian <andy.tang@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
34 lines
848 B
C
34 lines
848 B
C
/*
|
|
* Copyright 2016 NXP Semiconductor, Inc.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <asm/psci.h>
|
|
#include <asm/system.h>
|
|
#include <asm/armv8/sec_firmware.h>
|
|
|
|
#ifdef CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT
|
|
int psci_update_dt(void *fdt)
|
|
{
|
|
/*
|
|
* If the PSCI in SEC Firmware didn't work, avoid to update the
|
|
* device node of PSCI. But still return 0 instead of an error
|
|
* number to support detecting PSCI dynamically and then switching
|
|
* the SMP boot method between PSCI and spin-table.
|
|
*/
|
|
if (sec_firmware_support_psci_version() == PSCI_INVALID_VER)
|
|
return 0;
|
|
fdt_psci(fdt);
|
|
|
|
#if defined(CONFIG_ARMV8_PSCI) && !defined(CONFIG_ARMV8_SECURE_BASE)
|
|
/* secure code lives in RAM, keep it alive */
|
|
fdt_add_mem_rsv(fdt, (unsigned long)__secure_start,
|
|
__secure_end - __secure_start);
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
#endif
|