Updated description on conditions and assumptions in which the soc_reset_hook is executed. Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
94 lines
3.1 KiB
Plaintext
94 lines
3.1 KiB
Plaintext
# 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
|