mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-23 13:36:05 +00:00

Provide six initcall levels for drivers/modules initialize HW controllers or runtime arguments during cold boot. The initcall level cold boot execution order: -MTK_EARLY_PLAT_INIT Call before MMU enabled. -MTK_ARCH_INIT MMU Enabled, arch related init(GiC init, interrupt type registration). -MTK_PLAT_SETUP_0_INIT MTK driver init level 0. -MTK_PLAT_SETUP_1_INIT MTK driver init level 1. -MTK_PLAT_RUNTIME_INIT MTK driver init. After this initcall, TF-A handovers to MTK 2nd bootloader. -MTK_PLAT_BL33_DEFER_INIT MTK 2nd bootloader traps to TF-A before handover to rich OS. This initcall executed in the trap handler(boot_to_kernel). Signed-off-by: Leon Chen <leon.chen@mediatek.com> Change-Id: Icd7fe95372441db73c975ccb6ce77a6c529df1cc
22 lines
686 B
C
22 lines
686 B
C
/*
|
|
* Copyright (c) 2022, MediaTek Inc. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef MTK_INIT_DEF_H
|
|
#define MTK_INIT_DEF_H
|
|
|
|
/*
|
|
* Define init call sections here. _func is for 2nd level expansion, init
|
|
* section enum, and init section name.
|
|
*/
|
|
#define INIT_CALL_TABLE(_func) \
|
|
_func(MTK_INIT_LVL_EARLY_PLAT, .mtk_plat_initcall_, 0) \
|
|
_func(MTK_INIT_LVL_ARCH, .mtk_plat_initcall_, 1) \
|
|
_func(MTK_INIT_LVL_PLAT_SETUP_0, .mtk_plat_initcall_, 2) \
|
|
_func(MTK_INIT_LVL_PLAT_SETUP_1, .mtk_plat_initcall_, 3) \
|
|
_func(MTK_INIT_LVL_PLAT_RUNTIME, .mtk_plat_initcall_, 4) \
|
|
_func(MTK_INIT_LVL_BL33_DEFER, .mtk_plat_initcall_, 5)
|
|
|
|
#endif /* MTK_INIT_DEF_H */
|