soc: intel: move init code from SYS_INIT to hooks

Replace SYS_INIT with SoC hooks and adapt SoC init code

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
Anas Nashif 2024-09-10 09:42:34 -04:00 committed by Henrik Brix Andersen
parent e6506619ca
commit c344771d8b
10 changed files with 14 additions and 25 deletions

View File

@ -15,6 +15,8 @@ config SOC_SERIES_INTEL_ADSP_ACE
select XTENSA_CPU_HAS_HIFI3
select XTENSA_CPU_HAS_HIFI4
select ARCH_HAS_RESERVED_PAGE_FRAMES if MMU
select SOC_LATE_INIT_HOOK
select SOC_EARLY_INIT_HOOK
config SOC_INTEL_COMM_WIDGET
bool "Intel Communication Widget driver"

View File

@ -108,11 +108,11 @@ void soc_mp_init(void)
soc_cpus_active[0] = true;
}
static int host_runtime_get(void)
void soc_late_init_hook(void)
{
return pm_device_runtime_get(INTEL_ADSP_HST_DOMAIN_DEV);
pm_device_runtime_get(INTEL_ADSP_HST_DOMAIN_DEV);
}
SYS_INIT(host_runtime_get, POST_KERNEL, 99);
#ifdef CONFIG_ADSP_IMR_CONTEXT_SAVE
/*

View File

@ -11,6 +11,7 @@ config SOC_SERIES_INTEL_ADSP_CAVS
select ATOMIC_OPERATIONS_ARCH if "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "xcc"
select ARCH_HAS_COHERENCE
select HAS_PM
select SOC_EARLY_INIT_HOOK
config SOC_INTEL_CAVS_V25
select XTENSA_WAITI_BUG

View File

@ -28,5 +28,3 @@ int boot_complete(void)
return 0;
}
SYS_INIT(boot_complete, PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE);

View File

@ -6,6 +6,7 @@
#include <zephyr/init.h>
#include <zephyr/linker/section_tags.h>
extern int boot_complete(void);
extern void power_init(void);
extern void adsp_clock_init(void);
@ -13,8 +14,9 @@ extern void adsp_clock_init(void);
extern void soc_mp_init(void);
#endif
static __imr int soc_init(void)
void soc_early_init_hook(void)
{
(void)boot_complete();
power_init();
#ifdef CONFIG_ADSP_CLOCK
@ -24,8 +26,4 @@ static __imr int soc_init(void)
#if CONFIG_MP_MAX_NUM_CPUS > 1
soc_mp_init();
#endif
return 0;
}
SYS_INIT(soc_init, PRE_KERNEL_1, 99);

View File

@ -13,3 +13,4 @@ config SOC_FAMILY_INTEL_ISH
select INTEL_HAL
select HAS_PM
select HAS_COVERAGE_SUPPORT
select SOC_EARLY_INIT_HOOK

View File

@ -72,11 +72,7 @@ void sys_arch_reboot(int type)
extern void sedi_pm_init(void);
static int ish_sedi_pm_init(void)
void soc_early_init_hook(void)
{
sedi_pm_init();
return 0;
}
SYS_INIT(ish_sedi_pm_init, PRE_KERNEL_2, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);

View File

@ -11,13 +11,9 @@
#include "sedi_driver_hpet.h"
#endif
static int intel_ish_init(void)
void soc_early_init_hook(void)
{
#if defined(CONFIG_HPET_TIMER)
sedi_hpet_set_min_delay(HPET_CMP_MIN_DELAY);
#endif
return 0;
}
SYS_INIT(intel_ish_init, PRE_KERNEL_2, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);

View File

@ -7,3 +7,4 @@ config SOC_SERIES_CYCLONEV
select ARM_AARCH32_MMU
select ARM_ARCH_TIMER_ERRATUM_740657 if ARM_ARCH_TIMER
select ARCH_HAS_RESERVED_PAGE_FRAMES
select SOC_EARLY_INIT_HOOK

View File

@ -70,16 +70,12 @@ const struct arm_mmu_config mmu_config = {
*
* @return 0
*/
static int soc_intel_cyclonev_init(void)
void soc_early_init_hook(void)
{
unsigned int sctlr = __get_SCTLR(); /* modifying some registers prior to initialization */
sctlr &= ~SCTLR_A_Msk;
__set_SCTLR(sctlr);
__set_VBAR(0);
return 0;
}
SYS_INIT(soc_intel_cyclonev_init, PRE_KERNEL_1,
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);
/* EOF */