diff --git a/include/implem/irq.h b/include/implem/irq.h index 575f691..b630a94 100644 --- a/include/implem/irq.h +++ b/include/implem/irq.h @@ -118,7 +118,9 @@ static inline unsigned int rt_irq_get_fc_vector_base() else { #if defined(ARCHI_HAS_CLUSTER) -#if defined(ARCHI_CLUSTER_CTRL_ADDR) +#if defined(ARCHI_CORE_HAS_1_10) + return __builtin_pulp_spr_read(SR_MTVEC) & ~1; +#elif defined(ARCHI_CLUSTER_CTRL_ADDR) return plp_ctrl_bootaddr_get(); #endif #endif @@ -146,7 +148,9 @@ static inline void rt_irq_set_fc_vector_base(unsigned int base) else { #if defined(ARCHI_HAS_CLUSTER) -#if defined(ARCHI_CLUSTER_CTRL_ADDR) +#if defined(ARCHI_CORE_HAS_1_10) + __builtin_pulp_spr_write(SR_MTVEC, base | 1); +#elif defined(ARCHI_CLUSTER_CTRL_ADDR) plp_ctrl_bootaddr_set(base); #endif #endif