From 4925bbb310562c13d4120794a5b161315d57787d Mon Sep 17 00:00:00 2001 From: Maciej Meijer Date: Fri, 28 Feb 2025 09:12:27 +0100 Subject: [PATCH 1/5] [nrf fromlist] mbox: temporary 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. Upstream PR #: 86455 Signed-off-by: Maciej Meijer (cherry picked from commit 3850f2885d51edf9876bca19bdf08a49de7361f8) --- drivers/mbox/mbox_nrf_vevif_task_tx.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/mbox/mbox_nrf_vevif_task_tx.c b/drivers/mbox/mbox_nrf_vevif_task_tx.c index a409ef214b7d..b25db1ace0eb 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 12 struct mbox_vevif_task_tx_conf { NRF_VPR_Type *vpr; @@ -39,6 +41,10 @@ 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)); + k_busy_wait(VEVIF_RETRIGGER_DELAY); + + nrfy_vpr_task_trigger(config->vpr, nrfy_vpr_trigger_task_get(id)); + return 0; } From 6882c3d225807ea1989c77ba837d274e8ec01597 Mon Sep 17 00:00:00 2001 From: Karsten Koenig Date: Wed, 5 Feb 2025 14:04:39 +0100 Subject: [PATCH 2/5] Revert "[nrf noup] moduled: hal_nordic: require nrf-regtool" This reverts commit 8758068d4570a4e34e0da2391144af7d5274e45c. Signed-off-by: Karsten Koenig (cherry picked from commit 5156ca3db2741f009306aaa555c9bb70d9fe8777) --- modules/hal_nordic/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hal_nordic/CMakeLists.txt b/modules/hal_nordic/CMakeLists.txt index 0dd750d457ed..4e3f388b266b 100644 --- a/modules/hal_nordic/CMakeLists.txt +++ b/modules/hal_nordic/CMakeLists.txt @@ -15,7 +15,7 @@ if(CONFIG_NRF_REGTOOL_GENERATE_BICR) list(APPEND nrf_regtool_components GENERATE:BICR) endif() if(DEFINED nrf_regtool_components) - find_package(nrf-regtool 8.0.0 REQUIRED + find_package(nrf-regtool 8.0.0 COMPONENTS ${nrf_regtool_components} PATHS ${CMAKE_CURRENT_LIST_DIR}/nrf-regtool NO_CMAKE_PATH From e997d7041259299d7c10cda8ce28947a250943e8 Mon Sep 17 00:00:00 2001 From: Karsten Koenig Date: Mon, 3 Feb 2025 10:20:24 +0100 Subject: [PATCH 3/5] [nrf fromtree] modules: hal_nordic: bump regtool to 8.1.2 Recent versions fixed issues for EXMIF and TDM pins as well as support for dynamic placement of the ETR buffer. Signed-off-by: Karsten Koenig (cherry picked from commit 5f6a3ebcf5f50885061db050ccacaeeeced7aef3) (cherry picked from commit ca2e76c95f0dba3c32f91006061390312ebb89ca) --- modules/hal_nordic/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hal_nordic/CMakeLists.txt b/modules/hal_nordic/CMakeLists.txt index 4e3f388b266b..e025fb358f60 100644 --- a/modules/hal_nordic/CMakeLists.txt +++ b/modules/hal_nordic/CMakeLists.txt @@ -15,7 +15,7 @@ if(CONFIG_NRF_REGTOOL_GENERATE_BICR) list(APPEND nrf_regtool_components GENERATE:BICR) endif() if(DEFINED nrf_regtool_components) - find_package(nrf-regtool 8.0.0 + find_package(nrf-regtool 8.1.2 COMPONENTS ${nrf_regtool_components} PATHS ${CMAKE_CURRENT_LIST_DIR}/nrf-regtool NO_CMAKE_PATH From 5c0f3eb78a48ce5368506569ba4561e12e20cb9d Mon Sep 17 00:00:00 2001 From: Gerard Marull-Paretas Date: Wed, 30 Oct 2024 16:37:13 +0100 Subject: [PATCH 4/5] [nrf noup] moduled: hal_nordic: require nrf-regtool Upstream not ready yet, revert once applied there. Signed-off-by: Gerard Marull-Paretas Signed-off-by: Karsten Koenig (cherry picked from commit 6384b5876f5b4c4c16a343d396de14d6ce52b4fe) (cherry picked from commit c8aea90f09265465244b6881a5c4a93486c5eef0) --- modules/hal_nordic/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hal_nordic/CMakeLists.txt b/modules/hal_nordic/CMakeLists.txt index e025fb358f60..2c2b08a09f40 100644 --- a/modules/hal_nordic/CMakeLists.txt +++ b/modules/hal_nordic/CMakeLists.txt @@ -15,7 +15,7 @@ if(CONFIG_NRF_REGTOOL_GENERATE_BICR) list(APPEND nrf_regtool_components GENERATE:BICR) endif() if(DEFINED nrf_regtool_components) - find_package(nrf-regtool 8.1.2 + find_package(nrf-regtool 8.1.2 REQUIRED COMPONENTS ${nrf_regtool_components} PATHS ${CMAKE_CURRENT_LIST_DIR}/nrf-regtool NO_CMAKE_PATH From f434ebb1e8b9ebedfe5bf82955570674d157f3cb Mon Sep 17 00:00:00 2001 From: Dong Wang Date: Thu, 2 Jan 2025 13:48:40 +0800 Subject: [PATCH 5/5] [nrf fromtree] kernel: timeout: ensure next timeout is set when aborting the first timeout Ref: NCSDK-31290 This ensures that the system clock is correctly updated when the first timeout is aborted, preventing unexpected early wake-up by the system clock programmed previously. Signed-off-by: Dong Wang (cherry picked from commit dd5f11cb04b834584a6d851fe55a9673e25a5356) (cherry picked from commit 76a46cb2baf310a06bbdb0b1d7d99394ec04a671) --- kernel/timeout.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/timeout.c b/kernel/timeout.c index f751c2f20a57..c18f2e41d06a 100644 --- a/kernel/timeout.c +++ b/kernel/timeout.c @@ -147,8 +147,13 @@ int z_abort_timeout(struct _timeout *to) K_SPINLOCK(&timeout_lock) { if (sys_dnode_is_linked(&to->node)) { + bool is_first = (to == first()); + remove_timeout(to); ret = 0; + if (is_first) { + sys_clock_set_timeout(next_timeout(), false); + } } }