1 /* 2 * Copyright (c) 2024 Intel Corporation 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef ZEPHYR_INCLUDE_PLATFORM_PLATFORM_H_ 7 #define ZEPHYR_INCLUDE_PLATFORM_PLATFORM_H_ 8 9 /** 10 * @file 11 * @brief Soc and Board hooks 12 * 13 * This header file contains function prototypes for the interfaces between 14 * zephyr architecture and initialization code and the SoC and board specific logic 15 * that resides under boards/ and soc/ 16 * 17 * @note These are all standard soc and board interfaces that are exported from 18 * soc and board specific logic to OS internal logic. These should never be accessed 19 * directly from application code but may be freely used within the OS. 20 */ 21 22 23 /** 24 * @brief SoC hook executed at the beginning of the reset vector. 25 * 26 * This hook is implemented by the SoC and can be used to perform any 27 * SoC-specific initialization. 28 */ 29 void soc_reset_hook(void); 30 31 /** 32 * @brief SoC hook executed after the reset vector. 33 * 34 * This hook is implemented by the SoC and can be used to perform any 35 * SoC-specific initialization. 36 */ 37 void soc_prep_hook(void); 38 39 /** 40 * @brief SoC hook executed before the kernel and devices are initialized. 41 * 42 * This hook is implemented by the SoC and can be used to perform any 43 * SoC-specific initialization. 44 */ 45 void soc_early_init_hook(void); 46 47 /** 48 * @brief SoC hook executed after the kernel and devices are initialized. 49 * 50 * This hook is implemented by the SoC and can be used to perform any 51 * SoC-specific initialization. 52 */ 53 void soc_late_init_hook(void); 54 55 /** 56 * @brief SoC per-core initialization 57 * 58 * This hook is implemented by the SoC and can be used to perform any 59 * SoC-specific per-core initialization 60 */ 61 void soc_per_core_init_hook(void); 62 63 /** 64 * @brief Board hook executed before the kernel starts. 65 * 66 * This is called before the kernel has started. This hook 67 * is implemented by the board and can be used to perform any board-specific 68 * initialization. 69 */ 70 void board_early_init_hook(void); 71 72 /** 73 * @brief Board hook executed after the kernel starts. 74 * 75 * This is called after the kernel has started, but before the main function is 76 * called. This hook is implemented by the board and can be used to perform 77 * any board-specific initialization. 78 */ 79 void board_late_init_hook(void); 80 81 #endif 82