1 /*
2 * Copyright (c) 2025 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Note that the function prototypes are taken from the NRFx HAL
7 */
8
9 #include <stdint.h>
10 #include <nrfx.h>
11 #if ( (defined(NRFX_RELEASE_VER_AT_LEAST) && NRFX_RELEASE_VER_AT_LEAST(3,10,0)) )
12 #include "hal/nrf_cracen_cm.h"
13 #include "bs_tracing.h"
14 #include "NHW_CRACEN_CM.h"
15
nrf_cracen_cm_config_indirect_set(NRF_CRACENCORE_Type * p_reg,nrf_cracen_cm_config_indirect_mask_t mask)16 void nrf_cracen_cm_config_indirect_set(NRF_CRACENCORE_Type * p_reg,
17 nrf_cracen_cm_config_indirect_mask_t mask)
18 {
19 p_reg->CRYPTMSTRDMA.CONFIG = (uint32_t)mask;
20 nhw_CRACEN_CM_regw_sideeffects_CONFIG();
21 }
22
nrf_cracen_cm_softreset(NRF_CRACENCORE_Type * p_reg)23 void nrf_cracen_cm_softreset(NRF_CRACENCORE_Type * p_reg)
24 {
25 p_reg->CRYPTMSTRDMA.CONFIG = CRACENCORE_CRYPTMSTRDMA_CONFIG_SOFTRST_Msk;
26 nhw_CRACEN_CM_regw_sideeffects_CONFIG();
27 p_reg->CRYPTMSTRDMA.CONFIG = 0;
28 nhw_CRACEN_CM_regw_sideeffects_CONFIG();
29 }
30
nrf_cracen_cm_start(NRF_CRACENCORE_Type * p_reg)31 void nrf_cracen_cm_start(NRF_CRACENCORE_Type * p_reg)
32 {
33 p_reg->CRYPTMSTRDMA.START = CRACENCORE_CRYPTMSTRDMA_START_STARTFETCH_Msk
34 | CRACENCORE_CRYPTMSTRDMA_START_STARTPUSH_Msk;
35 nhw_CRACEN_CM_regw_sideeffects_START();
36 }
37
nrf_cracen_cm_int_enable(NRF_CRACENCORE_Type * p_reg,uint32_t mask)38 void nrf_cracen_cm_int_enable(NRF_CRACENCORE_Type * p_reg, uint32_t mask)
39 {
40 p_reg->CRYPTMSTRDMA.INTENSET = mask;
41 nhw_CRACEN_CM_regw_sideeffects_INTENSET(0);
42 }
43
nrf_cracen_cm_int_disable(NRF_CRACENCORE_Type * p_reg,uint32_t mask)44 void nrf_cracen_cm_int_disable(NRF_CRACENCORE_Type * p_reg, uint32_t mask)
45 {
46 p_reg->CRYPTMSTRDMA.INTENCLR = mask;
47 nhw_CRACEN_CM_regw_sideeffects_INTENCLR(0);
48 }
49
nrf_cracen_cm_int_clear(NRF_CRACENCORE_Type * p_reg,uint32_t mask)50 void nrf_cracen_cm_int_clear(NRF_CRACENCORE_Type * p_reg, uint32_t mask)
51 {
52 p_reg->CRYPTMSTRDMA.INTSTATCLR = mask;
53 nhw_CRACEN_CM_regw_sideeffects_INTSTARTCLR(0);
54 }
55
56 #endif
57