| # 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 |