summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvano di Ninno <silvano.dininno@nxp.com>2018-11-22 02:43:41 +0100
committerSilvano di Ninno <silvano.dininno@nxp.com>2018-11-26 09:55:56 +0100
commitc411e20b8bd8bff740683580d095adb853a0452e (patch)
tree5825218db1a0892fbca3b33f4c9a2d894964cc61
parent0b3904b0929a868964a335f8affa6eb1da9043d6 (diff)
TEE-330-3: i.MX8QM: OP-TEE add share memory
Configure OP-TEE Share memory to be accessible by OS. Signed-off-by: Silvano di Ninno <silvano.dininno@nxp.com> (cherry picked from commit b2d0c8530c75bb77450372114229cadd8555780b)
-rw-r--r--plat/imx/imx8qm/imx8qm_bl31_setup.c19
-rw-r--r--plat/imx/imx8qm/include/platform_def.h1
2 files changed, 16 insertions, 4 deletions
diff --git a/plat/imx/imx8qm/imx8qm_bl31_setup.c b/plat/imx/imx8qm/imx8qm_bl31_setup.c
index f0d3cf39..f6434d82 100644
--- a/plat/imx/imx8qm/imx8qm_bl31_setup.c
+++ b/plat/imx/imx8qm/imx8qm_bl31_setup.c
@@ -233,8 +233,14 @@ void mx8_partition_resources(void)
if (err) {
ERROR("Memreg get info failed, %u\n", mr_tee);
} else {
- if ((BL32_LIMIT - 1) < end) {
- err = sc_rm_memreg_alloc(ipc_handle, &mr, BL32_LIMIT , end);
+#ifdef SPD_trusty
+ reg_start = BL32_LIMIT;
+#else
+ /* Allow share memory to be accessible by OS */
+ reg_start = BL32_LIMIT - BL32_SHM_SIZE;
+#endif
+ if ((reg_start -1) < end) {
+ err = sc_rm_memreg_alloc(ipc_handle, &mr, reg_start , end);
if (err) {
ERROR("sc_rm_memreg_alloc failed, 0x%lx -- 0x%lx\n", (sc_faddr_t)BL32_LIMIT, end);
} else {
@@ -283,8 +289,13 @@ void mx8_partition_resources(void)
}
#ifdef TEE_IMX8
if (mr_tee_atf_same) {
- if ((BL32_LIMIT - 1) < end) {
- reg_start = BL32_LIMIT;
+#ifdef SPD_trusty
+ reg_start = BL32_LIMIT;
+#else
+ /* Allow share memory to be accessible by OS */
+ reg_start = BL32_LIMIT - BL32_SHM_SIZE;
+#endif
+ if ((reg_start -1) < end) {
err = sc_rm_memreg_alloc(ipc_handle, &mr, reg_start, end);
if (err) {
ERROR("sc_rm_memreg_alloc failed, 0x%lx -- 0x%lx\n", reg_start, end);
diff --git a/plat/imx/imx8qm/include/platform_def.h b/plat/imx/imx8qm/include/platform_def.h
index a7a41f2f..6add4716 100644
--- a/plat/imx/imx8qm/include/platform_def.h
+++ b/plat/imx/imx8qm/include/platform_def.h
@@ -34,6 +34,7 @@
#ifdef TEE_IMX8
#define BL32_BASE 0xfe000000
#define BL32_SIZE 0x02000000
+#define BL32_SHM_SIZE 0x00400000
#define BL32_LIMIT 0x100000000
#endif