suspend流程分析linux部分

发布时间:2026/7/12 9:29:22

suspend流程分析linux部分 根据设备树arm,psci选择相应驱动最终来到如下程序drivers / firmware / psci / psci.cstatic int psci_0_2_cpu_suspend(u32 state, unsigned long entry_point){return __psci_cpu_suspend(PSCI_FN_NATIVE(0_2, CPU_SUSPEND),state, entry_point);}PSCI_0_2_FN64_CPU_SUSPEND#ifdef CONFIG_64BIT#define PSCI_FN_NATIVE(version, name) PSCI_##version##FN64##name#else#define PSCI_FN_NATIVE(version, name) PSCI_##version##FN##name#endifinvoke_psci_fn(fn, state, entry_point, 0);因为smcinvoke_psci_fn __invoke_psci_fn_smc;经过一些列调用最终来到关键系统调用 arm_smccc_smc(function_id, arg0, arg1, arg2, 0, 0, 0, 0, res);即smc #0 陷入EL3

相关新闻