diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/u-boot/arch/arm/cpu/armv8/cpu-dt.c | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/u-boot/arch/arm/cpu/armv8/cpu-dt.c')
-rw-r--r-- | roms/u-boot/arch/arm/cpu/armv8/cpu-dt.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/roms/u-boot/arch/arm/cpu/armv8/cpu-dt.c b/roms/u-boot/arch/arm/cpu/armv8/cpu-dt.c new file mode 100644 index 000000000..61c38b17c --- /dev/null +++ b/roms/u-boot/arch/arm/cpu/armv8/cpu-dt.c @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2016 NXP Semiconductor, Inc. + */ + +#include <common.h> +#include <asm/cache.h> +#include <asm/psci.h> +#include <asm/system.h> +#include <asm/armv8/sec_firmware.h> + +#if CONFIG_IS_ENABLED(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 |