zephyr/include/zephyr/platform/hooks.h
Anas Nashif e260d03686 init: introduce soc and board hooks
Introduce soc and board hooks to replace arch specific code
and replace usages of SYS_INIT for platform initialization.

include/zephyr/platform/hooks.h introduces the hooks to be implemented
by boards and SoCs.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-09-09 10:07:33 +02:00

74 lines
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 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