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