Skip to content

Commit e24441c

Browse files
committed
[nrf fromlist] cpuconf: Boot the radiocore from the app in soc_late_init_hook
Boot the radiocore from the app in soc_late_init_hook. Upstream PR #: 88908 Signed-off-by: Sebastian Bøe <[email protected]>
1 parent 98d12ca commit e24441c

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

soc/nordic/nrf54h/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ config SOC_SERIES_NRF54HX
88
select HAS_NRFX
99
select HAS_NORDIC_DRIVERS
1010
select SOC_EARLY_INIT_HOOK if ARM
11+
select SOC_LATE_INIT_HOOK if SOC_NRF54H20_CPURAD_ENABLE
1112
select NRF_PLATFORM_HALTIUM
1213

1314
config SOC_NRF54H20_CPUAPP_COMMON
@@ -64,6 +65,14 @@ config SOC_NRF54H20_CPURAD_COMMON
6465
select HAS_PM
6566
select HAS_POWEROFF
6667

68+
config SOC_NRF54H20_CPURAD_ENABLE
69+
bool "Boot the nRF54H20 Radio core"
70+
default y if NRF_802154_SER_HOST
71+
help
72+
This will at application boot time enable clock to the
73+
Radiocore, and also power will be requested to the Radiocore
74+
subsystem. The Radiocore will then start executing instructions.
75+
6776
config SOC_NRF54H20_CPURAD
6877
select SOC_NRF54H20_CPURAD_COMMON
6978

soc/nordic/nrf54h/soc.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <soc/nrfx_coredep.h>
2222
#include <soc_lrcconf.h>
2323
#include <dmm.h>
24+
#include <ironside/se/cpuconf.h>
2425

2526
LOG_MODULE_REGISTER(soc, CONFIG_SOC_LOG_LEVEL);
2627

@@ -150,6 +151,23 @@ void soc_early_init_hook(void)
150151
#endif
151152
}
152153

154+
void soc_late_init_hook(void)
155+
{
156+
#if defined(CONFIG_SOC_NRF54H20_CPURAD_ENABLE)
157+
int err;
158+
159+
/* The msg will be used for communication prior to IPC
160+
* communication being set up. But at this moment no such
161+
* communication is required.
162+
*/
163+
uint8_t *msg = NULL;
164+
size_t msg_size = 0;
165+
166+
err = ironside_se_cpuconf_boot_radiocore(msg, msg_size);
167+
__ASSERT_NO_MSG(err == 0);
168+
#endif
169+
}
170+
153171
void arch_busy_wait(uint32_t time_us)
154172
{
155173
nrfx_coredep_delay_us(time_us);

0 commit comments

Comments
 (0)