1 /* 2 * Copyright (c) 2021-2024, Arm Limited. All rights reserved. 3 * Copyright (C) 2024-2025 Analog Devices, Inc. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 * 7 */ 8 9 #include "target_cfg.h" 10 #include "tfm_hal_platform.h" 11 #include "tfm_plat_defs.h" 12 13 extern const struct memory_region_limits memory_regions; 14 tfm_hal_platform_init(void)15FIH_RET_TYPE(enum tfm_hal_status_t) tfm_hal_platform_init(void) 16 { 17 enum tfm_plat_err_t plat_err = TFM_PLAT_ERR_SYSTEM_ERR; 18 19 plat_err = system_reset_cfg(); 20 if (plat_err != TFM_PLAT_ERR_SUCCESS) { 21 FIH_RET(fih_int_encode(TFM_HAL_ERROR_GENERIC)); 22 } 23 24 __enable_irq(); 25 #if defined(TFM_SPM_LOG_RAW_ENABLED) && \ 26 !defined(TFM_NS_REG_TEST) && \ 27 !defined(TFM_S_REG_TEST) 28 stdio_init(); 29 #endif 30 31 plat_err = nvic_interrupt_target_state_cfg(); 32 if (plat_err != TFM_PLAT_ERR_SUCCESS) { 33 FIH_RET(fih_int_encode(TFM_HAL_ERROR_GENERIC)); 34 } 35 36 FIH_RET(fih_int_encode(TFM_HAL_SUCCESS)); 37 } 38 tfm_hal_get_ns_VTOR(void)39uint32_t tfm_hal_get_ns_VTOR(void) 40 { 41 return memory_regions.non_secure_code_start; 42 } 43 tfm_hal_get_ns_MSP(void)44uint32_t tfm_hal_get_ns_MSP(void) 45 { 46 return *((uint32_t *)memory_regions.non_secure_code_start); 47 } 48 tfm_hal_get_ns_entry_point(void)49uint32_t tfm_hal_get_ns_entry_point(void) 50 { 51 return *((uint32_t *)(memory_regions.non_secure_code_start + 4)); 52 } 53