From a3e5ae96005d07f7455329b7445a64cb5c46fe98 Mon Sep 17 00:00:00 2001 From: wangchengdong Date: Wed, 27 Aug 2025 17:17:13 +0800 Subject: [PATCH] arch/tricore/src/common/tricore_irq.c: add up_affinity_irq Add up_affinity_irq to tricore arch --- arch/tricore/src/common/tricore_irq.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/tricore/src/common/tricore_irq.c b/arch/tricore/src/common/tricore_irq.c index d8ef8019ae..d1fec88568 100644 --- a/arch/tricore/src/common/tricore_irq.c +++ b/arch/tricore/src/common/tricore_irq.c @@ -115,6 +115,29 @@ void up_trigger_irq(int irq, cpu_set_t cpuset) #endif +/**************************************************************************** + * Name: up_affinity_irq + * + * Description: + * Set an IRQ affinity by software. + * + ****************************************************************************/ + +void up_affinity_irq(int irq, cpu_set_t cpuset) +{ + volatile Ifx_SRC_SRCR *src = &SRC_CPU_CPU0_SB + irq; + int irq_prio = src->B.SRPN; + + IfxSrc_disable(src); + + /* Only support interrupt routing mode 0, + * so routing to the first cpu in cpuset. + */ + + IfxSrc_init(src, ffs(cpuset) - 1, irq_prio); + IfxSrc_enable(src); +} + /**************************************************************************** * Name: tricore_ack_irq *