/* * Copyright (c) 2021 Andes Technology Corporation * * SPDX-License-Identifier: Apache-2.0 */ #include "soc_v5.h" #include #include #ifdef CONFIG_RISCV_SOC_CONTEXT_SAVE /* Exports */ GTEXT(__soc_save_context) GTEXT(__soc_restore_context) SECTION_FUNC(exception.other, __soc_save_context) #ifdef CONFIG_SOC_ANDES_V5_PFT csrr t0, NDS_MXSTATUS #endif #ifdef CONFIG_SOC_ANDES_V5_HWDSP csrr t1, NDS_UCODE #endif #ifdef CONFIG_SOC_ANDES_V5_PFT sw t0, __soc_esf_t_mxstatus_OFFSET(a0) #endif #ifdef CONFIG_SOC_ANDES_V5_HWDSP sw t1, __soc_esf_t_ucode_OFFSET(a0) #endif ret SECTION_FUNC(exception.other, __soc_restore_context) #ifdef CONFIG_SOC_ANDES_V5_PFT lw t0, __soc_esf_t_mxstatus_OFFSET(a0) #endif #ifdef CONFIG_SOC_ANDES_V5_HWDSP lw t1, __soc_esf_t_ucode_OFFSET(a0) #endif #ifdef CONFIG_SOC_ANDES_V5_PFT csrw NDS_MXSTATUS, t0 #endif #ifdef CONFIG_SOC_ANDES_V5_HWDSP csrw NDS_UCODE, t1 #endif ret #endif /* CONFIG_RISCV_SOC_CONTEXT_SAVE */