From 982abadd345248cb38aed587d484f5ca0301cbeb Mon Sep 17 00:00:00 2001 From: Maciej Meijer Date: Fri, 28 Feb 2025 09:12:27 +0100 Subject: [PATCH] mbox: workaround for missing ic-msg When a LD sends an ic-msg to SCFW - it happens that sometimes that SCFW does not handle the request. For the moment the problem is solved by sending a second vevif event shortly after the initial request. Signed-off-by: Maciej Meijer --- drivers/mbox/mbox_nrf_vevif_task_tx.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/mbox/mbox_nrf_vevif_task_tx.c b/drivers/mbox/mbox_nrf_vevif_task_tx.c index 3d553d4b484..76da4aa357f 100644 --- a/drivers/mbox/mbox_nrf_vevif_task_tx.c +++ b/drivers/mbox/mbox_nrf_vevif_task_tx.c @@ -5,12 +5,14 @@ #define DT_DRV_COMPAT nordic_nrf_vevif_task_tx +#include #include #include #include #define TASKS_IDX_MAX NRF_VPR_TASKS_TRIGGER_MAX +#define VEVIF_RETRIGGER_DELAY_USEC 12 struct mbox_vevif_task_tx_conf { NRF_VPR_Type *vpr; @@ -39,6 +41,12 @@ static int vevif_task_tx_send(const struct device *dev, uint32_t id, const struc nrfy_vpr_task_trigger(config->vpr, nrfy_vpr_trigger_task_get(id)); +#ifdef CONFIG_SOC_NRF54H20 + k_busy_wait(VEVIF_RETRIGGER_DELAY_USEC); + + nrfy_vpr_task_trigger(config->vpr, nrfy_vpr_trigger_task_get(id)); +#endif /* CONFIG_SOC_NRF54H20 */ + return 0; }