1 /*
2  * Copyright (c) 2023-2024 Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #include "dpe_plat.h"
9 #include "tfm_plat_defs.h"
10 #include "device_definition.h"
11 #include "rse_kmu_slot_ids.h"
12 #include "tfm_crypto_defs.h"
13 #include "tfm_plat_defs.h"
14 
15 #include "sds.h"
16 
17 #define SDS_DPE_CTX_HANDLE_STRUCT_ID    (0x0000000A)
18 
19 TFM_LINK_SET_RO_IN_PARTITION_SECTION("TFM_SP_DPE", "APP-ROT")
dpe_plat_get_rot_cdi_key_id(void)20 psa_key_id_t dpe_plat_get_rot_cdi_key_id(void)
21 {
22     return TFM_BUILTIN_KEY_ID_ROT_CDI;
23 }
24 
25 TFM_LINK_SET_RO_IN_PARTITION_SECTION("TFM_SP_DPE", "APP-ROT")
dpe_plat_get_root_attest_key_id(void)26 psa_key_id_t dpe_plat_get_root_attest_key_id(void)
27 {
28     return TFM_BUILTIN_KEY_ID_IAK;
29 }
30 
31 TFM_LINK_SET_RO_IN_PARTITION_SECTION("TFM_SP_DPE", "APP-ROT")
dpe_plat_share_context_with_ap(int ctx_handle)32 int dpe_plat_share_context_with_ap(int ctx_handle)
33 {
34     enum tfm_plat_err_t ret;
35     struct sds_structure_desc struct_desc = {
36         .id = SDS_DPE_CTX_HANDLE_STRUCT_ID,
37         .size = sizeof(ctx_handle),
38         .payload = &ctx_handle,
39         .finalize = true
40     };
41 
42     ret = request_sds_struct_add(&struct_desc);
43     if (ret != TFM_PLAT_ERR_SUCCESS) {
44         return -1;
45     }
46 
47     return 0;
48 }
49