mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 01:54:22 +00:00

Similarly to the memory node in the NS device tree, platform_def already defines all the necessary values to populate the spmc manifest and NS related entries automatically. Use the macros directly so any changes can propagate automatically. The result of this is that TC3 and above get correct secure world manifests automatically. They were previously broken. One "breaking" change is that the FWU region moves. This should have happened previously but it was missed when the secure portion of DRAM was increased, leaving it in secure memory. This was caught when going over the definitions and correlating them should prevent this in the future. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I1415e402be8c70f5e22f28eabddcb53298c57a11
110 lines
2.1 KiB
Text
110 lines
2.1 KiB
Text
/*
|
|
* Copyright (c) 2020-2024, Arm Limited. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
#include <platform_def.h>
|
|
|
|
/ {
|
|
compatible = "arm,ffa-core-manifest-1.0";
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
|
|
attribute {
|
|
spmc_id = <0x8000>;
|
|
maj_ver = <0x1>;
|
|
min_ver = <0x2>;
|
|
exec_state = <0x0>;
|
|
load_address = <0x0 0xfd000000>;
|
|
entrypoint = <0x0 0xfd000000>;
|
|
binary_size = <0x80000>;
|
|
};
|
|
|
|
hafnium:hypervisor {
|
|
compatible = "hafnium,hafnium";
|
|
/* filled in in top level .dts */
|
|
};
|
|
|
|
cpus {
|
|
#address-cells = <0x2>;
|
|
#size-cells = <0x0>;
|
|
|
|
CPU0:cpu@0 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x0>;
|
|
enable-method = "psci";
|
|
};
|
|
|
|
/*
|
|
* SPMC (Hafnium) requires secondary cpu nodes are declared in
|
|
* descending order
|
|
*/
|
|
CPU7:cpu@700 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x700>;
|
|
enable-method = "psci";
|
|
};
|
|
|
|
CPU6:cpu@600 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x600>;
|
|
enable-method = "psci";
|
|
};
|
|
|
|
CPU5:cpu@500 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x500>;
|
|
enable-method = "psci";
|
|
};
|
|
|
|
CPU4:cpu@400 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x400>;
|
|
enable-method = "psci";
|
|
};
|
|
|
|
CPU3:cpu@300 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x300>;
|
|
enable-method = "psci";
|
|
};
|
|
|
|
CPU2:cpu@200 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x200>;
|
|
enable-method = "psci";
|
|
};
|
|
|
|
CPU1:cpu@100 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x100>;
|
|
enable-method = "psci";
|
|
};
|
|
};
|
|
|
|
/* the full secure world range */
|
|
memory@0 {
|
|
device_type = "memory";
|
|
reg = <0x0 TC_TZC_DRAM1_BASE 0x0 TC_TZC_DRAM1_SIZE>,
|
|
<0x0 0xff000000 0x0 0x1000000>;
|
|
};
|
|
|
|
memory@1 {
|
|
device_type = "ns-memory";
|
|
reg =
|
|
#ifdef TS_SP_FW_CONFIG
|
|
<0x0 0x08000000 0x0 0x4000000>,
|
|
#endif /* TS_SP_FW_CONFIG */
|
|
<0x0 TC_NS_DRAM1_BASE 0x0 TC_NS_DRAM1_SIZE>,
|
|
<HI(PLAT_ARM_DRAM2_BASE) LO(PLAT_ARM_DRAM2_BASE)
|
|
HI(TC_NS_DRAM2_SIZE) LO(TC_NS_DRAM2_SIZE)>;
|
|
};
|
|
};
|