When dynamic shared memory support is enabled in the OP-TEE Trusted
OS, it doesn't mean that the driver supports it, which can confuse
users during debugging. Log a message when dynamic shared memory is
enabled in the driver, to let users know for sure.
Suggested-by: Jerome Forissier <jerome.forissier(a)linaro.org>
Signed-off-by: Victor Chong <victor.chong(a)linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier(a)linaro.org>
---
v2:
* Added patch description
[v1] lore.kernel.org/patchwork/patch/983949/
drivers/tee/optee/core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index e1aafe842d66..cca5c091e55a 100644
--- a/drivers/tee/optee/core.c
+++ b/drivers/tee/optee/core.c
@@ -631,6 +631,9 @@ static struct optee *optee_probe(struct device_node *np)
optee_enable_shm_cache(optee);
+ if (optee->sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM)
+ pr_info("dynamic shared memory is enabled\n");
+
pr_info("initialized driver\n");
return optee;
err:
--
2.17.1
Hello OP-TEE contributors and maintainers,
I have tagged 3.3.0-rc1 today. As usual, any help to run tests on as many
platforms as possible is appreciated. The pull request to collect the
Tested-by's and report any issues is #2552 [1].
Thanks for your continued help and support!
[1] https://github.com/OP-TEE/optee_os/pull/2552
Note: this e-mail is sent to the contacts in optee_os/MAINTAINERS.md.
--
Jerome
From: Volodymyr Babchuk <vlad.babchuk(a)gmail.com>
Hello all,
This is v2 of patch series for OP-TEE mediator support in XEN. Changes from v1:
- Added domctl interface, so now xl decides what domain should work with TEE
- Removed XSM support due to change described above
- Patch with OP-TEE mediator was splited to 7 separate patches
- Removed patch with call_smccc() function. Now this series depend on
Julien Grall's series "xen/arm: SMCCC fixup and improvement" [3]
=====
v1:
This is follow for patch series [1]. There was lots of discussions
for that series and I tried to address all of them in this new patchset.
Currently, I had a working solution for OP-TEE virtualization and it is being
upstreamed right now ([2]). So, I think it is a good time to introduce support
in XEN as well.
This series include generic TEE mediator framework and full-scale OP-TEE mediator
which is working with mentioned chages in OP-TEE. So, multiple domains can
work simultaneously with OP-TEE.
I added XSM support, so now it is possible to control which domains can work
with TEEs. Also I changed way how TEE discovery is done. Now it is very
generic and should support any platform.
[1] https://lists.xenproject.org/archives/html/xen-devel/2017-10/msg01451.html
[2] https://github.com/OP-TEE/optee_os/pull/2370
[3] https://lists.xenproject.org/archives/html/xen-devel/2018-08/msg02138.html
Volodymyr Babchuk (13):
arm: add generic TEE mediator framework
domctl: add tee_op domctl
arm: tee: add OP-TEE header files
optee: add OP-TEE mediator skeleton
optee: add fast calls handling
optee: add domain contexts
optee: add std call handling
optee: add support for RPC SHM buffers
optee: add support for arbitrary shared memory
optee: add support for RPC commands
libxc: add xc_dom_tee_enable(...) function
xl: add "tee" option for xl.cfg
lixl: arm: create optee firmware node in DT if tee=1
MAINTAINERS | 6 +
docs/man/xl.cfg.pod.5.in | 10 +
tools/libxc/include/xenctrl.h | 7 +
tools/libxc/xc_domain.c | 13 +
tools/libxl/libxl_arm.c | 59 +-
tools/libxl/libxl_create.c | 1 +
tools/libxl/libxl_types.idl | 1 +
tools/xl/xl_parse.c | 1 +
xen/arch/arm/Kconfig | 9 +
xen/arch/arm/Makefile | 1 +
xen/arch/arm/domain.c | 4 +
xen/arch/arm/domain_build.c | 4 +
xen/arch/arm/domctl.c | 10 +
xen/arch/arm/setup.c | 1 +
xen/arch/arm/shutdown.c | 1 +
xen/arch/arm/tee/Kconfig | 4 +
xen/arch/arm/tee/Makefile | 2 +
xen/arch/arm/tee/optee.c | 1042 +++++++++++++++++++++++++++++++++++
xen/arch/arm/tee/tee.c | 69 +++
xen/arch/arm/vsmc.c | 5 +
xen/arch/arm/xen.lds.S | 7 +
xen/include/asm-arm/tee/optee_msg.h | 444 +++++++++++++++
xen/include/asm-arm/tee/optee_smc.h | 507 +++++++++++++++++
xen/include/asm-arm/tee/tee.h | 91 +++
xen/include/public/domctl.h | 8 +
25 files changed, 2294 insertions(+), 13 deletions(-)
create mode 100644 xen/arch/arm/tee/Kconfig
create mode 100644 xen/arch/arm/tee/Makefile
create mode 100644 xen/arch/arm/tee/optee.c
create mode 100644 xen/arch/arm/tee/tee.c
create mode 100644 xen/include/asm-arm/tee/optee_msg.h
create mode 100644 xen/include/asm-arm/tee/optee_smc.h
create mode 100644 xen/include/asm-arm/tee/tee.h
--
2.7.4
Add psci features list for query. The list is based on
current implemented psci functions.
Signed-off-by: Jun Nie <jun.nie(a)linaro.org>
---
core/arch/arm/plat-imx/pm/psci.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/core/arch/arm/plat-imx/pm/psci.c b/core/arch/arm/plat-imx/pm/psci.c
index 1ff6e65..89f4839 100644
--- a/core/arch/arm/plat-imx/pm/psci.c
+++ b/core/arch/arm/plat-imx/pm/psci.c
@@ -28,16 +28,27 @@
int psci_features(uint32_t psci_fid)
{
switch (psci_fid) {
+ case PSCI_PSCI_FEATURES:
+ case PSCI_VERSION:
+ case PSCI_CPU_SUSPEND:
+ case PSCI_CPU_OFF:
#ifdef CFG_BOOT_SECONDARY_REQUEST
case PSCI_CPU_ON:
- return 0;
#endif
-
+ case PSCI_AFFINITY_INFO:
+ case PSCI_SYSTEM_OFF:
+ case PSCI_SYSTEM_RESET:
+ return PSCI_RET_SUCCESS;
default:
return PSCI_RET_NOT_SUPPORTED;
}
}
+uint32_t psci_version(void)
+{
+ return PSCI_VERSION_1_0;
+}
+
#ifdef CFG_BOOT_SECONDARY_REQUEST
int psci_cpu_on(uint32_t core_idx, uint32_t entry,
uint32_t context_id)
--
2.7.4
Hi,
The current implementation of tspd_cpu_migrate_info hardcodes the type
information for all platforms via #define TSP_MIGRATE_INFO.
Would it make sense to introduce a weak bl31_plat_cpu_migrate_info call
to either be populated by the platform or defaulted to TSP_MIGRATE_INFO.
I am asking because rcar_gen3 platform has this requirement (not sure
about all the other platforms).
diff --git a/services/spd/tspd/tspd_pm.c b/services/spd/tspd/tspd_pm.c
index 9414c15..c24b5a8 100644
--- a/services/spd/tspd/tspd_pm.c
+++ b/services/spd/tspd/tspd_pm.c
@@ -178,7 +178,7 @@ static void
tspd_cpu_suspend_finish_handler(u_register_t max_off_pwrlvl)
******************************************************************************/
static int32_t tspd_cpu_migrate_info(u_register_t *resident_cpu)
{
- return TSP_MIGRATE_INFO;
+ return bl31_plat_cpu_migrate_info(resident_cpu);
}
thanks
Jorge