summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Masse <olivier.masse@nxp.com>2021-02-11 11:52:49 +0100
committerlei zhou <lei.zhou@linaro.org>2022-11-28 16:08:06 -0500
commita6a0df986b5f89f2b2072122afba050cbbed897f (patch)
tree015b2f76353f8fbd789e93297b418f399ea5673f
parent79277f26713b30f87ee0fdd5309bba2aaffb829e (diff)
MMIOT-191: Do not prevent VPU to decode in CMA
When Secure Hantro VPU is enabled, allow decoding into non protected memory Signed-off-by: Olivier Masse <olivier.masse@nxp.com>
-rw-r--r--plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c12
-rw-r--r--plat/imx/imx8m/imx8mq/platform.mk4
2 files changed, 13 insertions, 3 deletions
diff --git a/plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c b/plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
index bdb4b2a8b..69e0cfa2e 100644
--- a/plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
+++ b/plat/imx/imx8m/imx8mq/imx8mq_bl31_setup.c
@@ -121,7 +121,6 @@ static void imx8mq_soc_info_init(void)
#if !defined(DECRYPTED_BUFFER_END) && !defined(DECODED_BUFFER_END)
#define RDC_DISABLED
#else
-
static const struct imx_rdc_cfg rdc_cfg[] = {
/* Master domain assignment */
RDC_MDAn(RDC_MDA_A53, DID0 | LCK),
@@ -133,7 +132,13 @@ static const struct imx_rdc_cfg rdc_cfg[] = {
/* peripherals domain permission */
/* memory region */
-#if defined(DECRYPTED_BUFFER_START)
+
+ /*
+ * Need to substact offset 0x40000000 from CPU address when
+ * programming rdc region for i.mx8mq.
+ */
+
+#if defined(DECRYPTED_BUFFER_START) && !defined(CFG_SECURE_HANTRO_VPU)
/* Domain 2 no write access to memory region below decrypted video */
/* Prevent VPU to decode outside secure decoded buffer */
RDC_MEM_REGIONn(2, 0x0, (uint32_t)DECRYPTED_BUFFER_START - IMX_DDR_BASE, 0xC00000EF),
@@ -149,15 +154,16 @@ static const struct imx_rdc_cfg rdc_cfg[] = {
/* Domain 2+3 memory region R/W decoded video */
RDC_MEM_REGIONn(1, (uint32_t)DECODED_BUFFER_START - IMX_DDR_BASE, (uint32_t)DECODED_BUFFER_END - IMX_DDR_BASE, 0xC00000F0),
+#ifndef CFG_SECURE_HANTRO_VPU
/* Domain 2 no write access to memory region above decoded video */
RDC_MEM_REGIONn(3, (uint32_t)DECODED_BUFFER_END - IMX_DDR_BASE, 0x100000000 - IMX_DDR_BASE, 0xC00000EF),
+#endif // CFG_SECURE_HANTRO_VPU
#endif // DECODED_BUFFER_END
/* Sentinel */
{0},
};
-
#endif
diff --git a/plat/imx/imx8m/imx8mq/platform.mk b/plat/imx/imx8m/imx8mq/platform.mk
index 8c1815951..b15ff2ce7 100644
--- a/plat/imx/imx8m/imx8mq/platform.mk
+++ b/plat/imx/imx8m/imx8mq/platform.mk
@@ -101,3 +101,7 @@ ifneq (${DECODED_BUFFER_LEN},)
$(eval $(call add_define,DECODED_BUFFER_LEN))
endif
endif
+
+ifeq (${CFG_SECURE_HANTRO_VPU},y)
+$(eval $(call add_define,CFG_SECURE_HANTRO_VPU))
+endif