1 // SPDX-License-Identifier: BSD-2-Clause
2 /*
3 * Copyright 2024 NXP
4 *
5 * Brief CAAM Secure Memory Hardware Abstraction Layer.
6 */
7
8 #include <caam_common.h>
9 #include <caam_hal_sm.h>
10 #include <kernel/dt.h>
11 #include <libfdt.h>
12
13 static const char *dt_sm_match_table = {
14 "fsl,imx6q-caam-sm",
15 };
16
caam_hal_sm_get_base_dt(void * fdt,vaddr_t * sm_base)17 void caam_hal_sm_get_base_dt(void *fdt, vaddr_t *sm_base)
18 {
19 int node = 0;
20 int ret = 0;
21 size_t size = 0;
22
23 *sm_base = 0;
24
25 node = fdt_node_offset_by_compatible(fdt, 0, dt_sm_match_table);
26
27 if (node < 0) {
28 HAL_TRACE("CAAM Node not found err = 0x%X", node);
29 return;
30 }
31
32 /* Map the device in the system if not already present */
33 ret = dt_map_dev(fdt, node, sm_base, &size, DT_MAP_AUTO);
34 if (ret < 0) {
35 HAL_TRACE("Cannot map node 0x%X", node);
36 return;
37 }
38 }
39