Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
070632f9
Commit
070632f9
authored
Aug 04, 2020
by
Manish Pandey
Committed by
TrustedFirmware Code Review
Aug 04, 2020
Browse files
Merge "SPM: build OP-TEE as an S-EL1 Secure Partition" into integration
parents
f0c24e3e
db1ef41a
Changes
7
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
070632f9
...
...
@@ -484,6 +484,10 @@ ifneq (${SPD},none)
$(error
SPMD
with
SPM
at
S-EL2
requires
CTX_INCLUDE_EL2_REGS
option)
endif
endif
ifeq
($(findstring optee_sp,$(ARM_SPMC_MANIFEST_DTS)),optee_sp)
DTC_CPPFLAGS
+=
-DOPTEE_SP_FW_CONFIG
endif
else
# All other SPDs in spd directory
SPD_DIR
:=
spd
...
...
docs/plat/arm/arm-build-options.rst
View file @
070632f9
...
...
@@ -91,6 +91,9 @@ Arm Platform Build Options
platforms. If this option is specified, then the path to the CryptoCell
SBROM library must be specified via ``CCSBROM_LIB_PATH`` flag.
- ``ARM_SPMC_MANIFEST_DTS`` : path to an alternate manifest file used as the
SPMC Core manifest. Valid when ``SPD=spmd`` is selected.
For a better understanding of these options, the Arm development platform memory
map is explained in the :ref:`Firmware Design`.
...
...
fdts/optee_sp_manifest.dts
0 → 100644
View file @
070632f9
/*
* Copyright (c) 2020, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
* This file is a Partition Manifest (PM) for a minimal Secure Partition (SP)
* that has additional optional properties defined.
*
*/
/dts-v1/;
/ {
compatible = "arm,ffa-manifest-1.0";
/* Properties */
description = "op-tee";
ffa-version = <0x00010000>; /* 31:16 - Major, 15:0 - Minor */
uuid = <0x486178e0 0xe7f811e3 0xbc5e0002 0xa5d5c51b>;
id = <1>;
execution-ctx-count = <8>;
exception-level = <2>; /* S-EL1 */
execution-state = <0>; /* AARCH64 */
load-address = <0x6280000>;
entrypoint-offset = <0x1000>;
xlat-granule = <0>; /* 4KiB */
boot-order = <0>;
messaging-method = <0>; /* Direct messaging only */
run-time-model = <1>; /* Run to completion */
/* Boot protocol */
gp-register-num = <0x0>;
};
include/plat/arm/common/fconf_arm_sp_getter.h
View file @
070632f9
...
...
@@ -13,7 +13,7 @@
/* arm_sp getter */
#define arm__sp_getter(prop) arm_sp.prop
#define ARM_SP_MAX_SIZE U(0x
1
0000)
#define ARM_SP_MAX_SIZE U(0x
8
0000)
struct
arm_sp_t
{
unsigned
int
number_of_sp
;
...
...
plat/arm/board/fvp/fdts/fvp_spmc_optee_sp_manifest.dts
0 → 100644
View file @
070632f9
/*
* Copyright (c) 2020, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
/dts-v1/;
#define AFF 00
#include "fvp-defs.dtsi"
#undef POST
#define POST \
};
/ {
compatible = "arm,ffa-core-manifest-1.0";
#address-cells = <2>;
#size-cells = <1>;
attribute {
spmc_id = <0x8000>;
maj_ver = <0x1>;
min_ver = <0x0>;
exec_state = <0x0>;
load_address = <0x0 0x6000000>;
entrypoint = <0x0 0x6000000>;
binary_size = <0x80000>;
};
chosen {
linux,initrd-start = <0>;
linux,initrd-end = <0>;
};
hypervisor {
compatible = "hafnium,hafnium";
vm1 {
is_ffa_partition;
debug_name = "op-tee";
load_address = <0x6280000>;
smc_whitelist = <0xbe000000>;
};
};
cpus {
#address-cells = <0x2>;
#size-cells = <0x0>;
CPU_0
/*
* SPMC(Hafnium) requires secondary core nodes are declared
* in descending order.
*/
CPU_7
CPU_6
CPU_5
CPU_4
CPU_3
CPU_2
CPU_1
};
memory@60000000 {
device_type = "memory";
reg = <0x0 0x6000000 0x2000000>; /* Trusted DRAM */
};
};
plat/arm/board/fvp/fdts/fvp_tb_fw_config.dts
View file @
070632f9
...
...
@@ -75,6 +75,12 @@
secure-partitions {
compatible = "arm,sp";
#ifdef OPTEE_SP_FW_CONFIG
op-tee {
uuid = <0xe0786148 0xe311f8e7 0x02005ebc 0x1bc5d5a5>;
load-address = <0x6280000>;
};
#else
cactus-primary {
uuid = <0x1e67b5b4 0xe14f904a 0x13fb1fb8 0xcbdae1da>;
load-address = <0x7000000>;
...
...
@@ -84,6 +90,7 @@
uuid = <0x092358d1 0xb94723f0 0x64447c82 0xc88f57f5>;
load-address = <0x7100000>;
};
#endif
};
#if COT_DESC_IN_DTB
...
...
plat/arm/board/fvp/platform.mk
View file @
070632f9
...
...
@@ -253,8 +253,13 @@ $(eval $(call TOOL_ADD_PAYLOAD,${FVP_TOS_FW_CONFIG},--tos-fw-config))
endif
ifeq
(${SPD},spmd)
FDT_SOURCES
+=
plat/arm/board/fvp/fdts/
${PLAT}
_spmc_manifest.dts
FVP_TOS_FW_CONFIG
:=
${BUILD_PLAT}
/fdts/
${PLAT}
_spmc_manifest.dtb
ifeq
($(ARM_SPMC_MANIFEST_DTS),)
ARM_SPMC_MANIFEST_DTS
:=
plat/arm/board/fvp/fdts/
${PLAT}
_spmc_manifest.dts
endif
FDT_SOURCES
+=
${ARM_SPMC_MANIFEST_DTS}
FVP_TOS_FW_CONFIG
:=
${BUILD_PLAT}
/fdts/
$(
notdir
$(
basename
${ARM_SPMC_MANIFEST_DTS}
))
.dtb
# Add the TOS_FW_CONFIG to FIP and specify the same to certtool
$(eval
$(call
TOOL_ADD_PAYLOAD,${FVP_TOS_FW_CONFIG},--tos-fw-config))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment