diff --git a/plat/imx/imx8m/imx8m_caam.c b/plat/imx/imx8m/imx8m_caam.c index 478005e2e..644572c5a 100644 --- a/plat/imx/imx8m/imx8m_caam.c +++ b/plat/imx/imx8m/imx8m_caam.c @@ -1,13 +1,16 @@ /* - * Copyright (c) 2019, NXP. All rights reserved. + * Copyright (c) 2019-2022 NXP. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ +#include #include #include +#define HAB_JR0_DID U(0x8011) + void imx8m_caam_init(void) { uint32_t sm_cmd; @@ -20,7 +23,12 @@ void imx8m_caam_init(void) mmio_write_32(SM_CMD, sm_cmd); /* config CAAM JRaMID set MID to Cortex A */ - mmio_write_32(CAAM_JR0MID, CAAM_NS_MID); + if (mmio_read_32(CAAM_JR0MID) == HAB_JR0_DID) { + NOTICE("Do not release JR0 to NS as it can be used by HAB"); + } else { + mmio_write_32(CAAM_JR0MID, CAAM_NS_MID); + } + mmio_write_32(CAAM_JR1MID, CAAM_NS_MID); mmio_write_32(CAAM_JR2MID, CAAM_NS_MID);