blob: 5834330fe82b661ad83d05a6a8faac3d7a82a893 [file] [log] [blame]
# Kernel init hook options
# Copyright (c) 2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
menu "SoC and Board Hooks"
config SOC_EARLY_RESET_HOOK
bool "Run SoC-specific early reset hook"
help
Run a SoC-specific hook early in the reset/startup code (__start).
A custom hook soc_early_reset_hook() will be executed at the beginning
of the architecture-specific startup code, after hardware has been
configured (as required by CONFIG_INIT_ARCH_HW_AT_BOOT) but before
architecture's own resume logic.
Returning from this hook is not mandatory: it can be used to implement
special logic to resume execution in some scenarios (for example, when
a bootloader is used).
The stack pointer register should be considered as not initialized upon
call to this hook. In particular, this means that the hook is NOT allowed
to "push" any data using this stack pointer value. However, the hook may
use an implementation-specific area as stack if desired; in such case,
the original value of the stack pointer needs not to be "restored" before
returning control to the hook's caller.
Additional constraints may be imposed on the hook by the architecture.
config SOC_RESET_HOOK
bool "Run SoC-specific reset hook"
help
Run a SoC-specific hook in the reset/startup code (__start).
A custom hook soc_reset_hook() will be executed near the beginning
of the architecture-specific startup code, after hardware has been
configured (as required by CONFIG_INIT_ARCH_HW_AT_BOOT), a stack
pointer has been loaded and the architecture's own resume logic
has executed (if CONFIG_PM_S2RAM is enabled). Because this hook
runs after the resume logic, it is not called when the system
resumes from a suspend-to-RAM power state.
config SOC_PREP_HOOK
bool "Run early SoC preparation hook"
help
Run an early SoC preparation hook.
A custom hook soc_prep_hook() is executed at the beginning of the
c prep code (prep_c). soc_prep_hook() must be implemented by the SoC.
config SOC_EARLY_INIT_HOOK
bool "Run early SoC hook"
help
Run an early SoC initialization hook.
A custom SoC hook soc_early_init_hook() is executed before the kernel and
devices are initialized
config SOC_LATE_INIT_HOOK
bool "Run late SoC hook"
help
Run a late SoC initialization hook.
A custom SoC hook soc_late_init_hook() is executed after the kernel and
devices are initialized
config SOC_PER_CORE_INIT_HOOK
bool "Run SoC per-core initialization hook"
help
Run an SoC initialization hook for every core
A custom SoC hook soc_per_core_init_hook() is executeds at the end of
arch_kernel_init() for the primary core, and at the end of arch_secondary_cpu_init()
for secondary cores.
config BOARD_EARLY_INIT_HOOK
bool "Run early board hook"
help
Run an early board initialization hook.
A custom board hook board_early_init_hook() is executed before the kernel and
devices are initialized
config BOARD_LATE_INIT_HOOK
bool "Run late board hook"
help
Run a late board initialization hook.
A custom board hook board_late_init_hook() is executed after the kernel and
devices are initialized
endmenu