zephyr/include/zephyr/platform/hooks.h
Yong Cong Sin de347a4e07 init: support per-core init hook
Allow SoC to implement their custom per-core initialization function by
selecting `CONFIG_SOC_PER_CORE_INIT_HOOK` and implement
`soc_per_core_init_hook()`.

Signed-off-by: Maxim Adelman <imax@meta.com>
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2024-11-16 14:04:25 -05:00

82 lines
2.2 KiB
C

/*
* Copyright (c) 2024 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_PLATFORM_PLATFORM_H_
#define ZEPHYR_INCLUDE_PLATFORM_PLATFORM_H_
/**
* @file
* @brief Soc and Board hooks
*
* This header file contains function prototypes for the interfaces between
* zephyr architecture and initialization code and the SoC and board specific logic
* that resides under boards/ and soc/
*
* @note These are all standard soc and board interfaces that are exported from
* soc and board specific logic to OS internal logic. These should never be accessed
* directly from application code but may be freely used within the OS.
*/
/**
* @brief SoC hook executed at the beginning of the reset vector.
*
* This hook is implemented by the SoC and can be used to perform any
* SoC-specific initialization.
*/
void soc_reset_hook(void);
/**
* @brief SoC hook executed after the reset vector.
*
*
* This hook is implemented by the SoC and can be used to perform any
* SoC-specific initialization.
*/
void soc_prep_hook(void);
/*
* @brief SoC hook executed before the kernel and devices are initialized.
*
* This hook is implemented by the SoC and can be used to perform any
* SoC-specific initialization.
*/
void soc_early_init_hook(void);
/*
* @brief SoC hook executed after the kernel and devices are initialized.
*
* This hook is implemented by the SoC and can be used to perform any
* SoC-specific initialization.
*/
void soc_late_init_hook(void);
/**
* @brief SoC per-core initialization
*
* This hook is implemented by the SoC and can be used to perform any
* SoC-specific per-core initialization
*/
void soc_per_core_init_hook(void);
/*
* @brief Board hook executed before the kernel starts.
*
* This is called before the kernel has started. This hook
* is implemented by the board and can be used to perform any board-specific
* initialization.
*/
void board_early_init_hook(void);
/*
* @brief Board hook executed after the kernel starts.
* This is called after the kernel has started, but before the main function is
* called. This hook is implemented by the board and can be used to perform
* any board-specific initialization.
*/
void board_late_init_hook(void);
#endif