cpu_ops接口
驱动初始化完成后,cpu的cpu_ops就可以调用这些回调实现psci功能的调用。如下所示,当devicetree中cpu的enable-method设置为psci时,该cpu的cpu_ops将指向cpu_psci_ops。
cpu0: cpu@0 {
...
enable-method = "psci";
…
}
其中cpu_psci_ops的定义如下:
const struct cpu_operations cpu_psci_ops = {
.name = "psci",
.cpu_init = cpu_psci_cpu_init,
.cpu_prepare = cpu_psci_cpu_prepare,
.cpu_boot = cpu_psci_cpu_boot,
#ifdef CONFIG_HOTPLUG_CPU
.cpu_can_disable = cpu_psci_cpu_can_disable,
.cpu_disable = cpu_psci_cpu_disable,
.cpu_die = cpu_psci_cpu_die,
.cpu_kill = cpu_psci_cpu_kill,
#endif
}
如启动cpu的接口为cpu_psci_cpu_boot,它会通过以下流程最终调用psci驱动中的psci_ops函数:
static int cpu_psci_cpu_boot(unsigned int cpu)
{
phys_addr_t pa_secondary_entry = __pa_symbol(function_nocfi(secondary_entry));
int err = psci_ops.cpu_on(cpu_logical_map(cpu), pa_secondary_entry);
if (err)
pr_err("failed to boot CPU%d (%d)n", cpu, err);
return err;
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
内核
+关注
关注
3文章
1359浏览量
40179 -
cpu
+关注
关注
68文章
10798浏览量
210702 -
驱动
+关注
关注
12文章
1816浏览量
85100 -
SMP
+关注
关注
0文章
71浏览量
19608
发布评论请先 登录
相关推荐
ARM电源管理中的PSCI是什么意思呢
今天来看一个电源功耗相关的东西,PSCI(Power State Coordination Interface),翻译一下就是“电源状态协作接口”。从名字就能直观看出来,PSCI是一套电源管理
发表于 04-02 09:45
请教大神qemu模拟cortex-A53运行rt-thread出错怎么解决呢?
出现了No cpu_ops was probed for CPU 1,请问是什么原因,我该怎么配置?感谢各位大佬
发表于 02-15 10:51
OPS常见问题的故障定位思路
,应用编程接口)来开放系统,在基于OPS开发的过程中,可能出现OPS功能配置不生效的现象,本文介绍了OPS常见问题的故障定位思路及基本解决方
CPU 拓扑中的SMP架构
CPU 拓扑用来表示 CPU 在硬件层面的组合方式,本文主要讲解 CPU 拓扑中的 SMP(Symmetric Multi-Processor,对称多处理器系统)
基于ARM架构的PSCI接口规范
本文主要是在ARM架构的不同异常等级上工作的软件之间,提供一个标准的电源管理接口。这些软件,比如Linux、Hypervisor、安全Firmware和可信OS之间必须能够实现互相操作。而这些软件可能由不同厂商提供,本标准就是为这些软件的集成提供便利。
psci电源管理接口可以用于什么场景
psci是arm提供的一套电源管理接口,当前一共包含0.1、0.2和1.0三个版本。它可被用于以下场景:(1)cpu的idle管理 (2)cpu hotplug以及secondary
SMP多核secondary cpu启动流程
secondary cpu启动 由于psci方式启动secondary cpu的流程,除了其所执行的cpu_ops不同之外,其它流程与spin-table方式是相同的,因此我们这里只给
SMP多核启动PSCI代码示例
:qemu平台 - >*psci_ops = 208 static const plat_psci_ops_t plat_qemu_psci_pm_ops = { 209 .cpu
PSCI处理函数代码分析
处理函数根据funid来决定服务,可以看到PSCI_CPU_ON_AARCH64为0xc4000003,这正是设备树中填写的cpu_on属性的id,会委托psci_cpu_on来执行核
开核返回:EL1启动从处理器
许使用psci情况 - > rest_init - > kernel_init - > kernel_init_freeable - > smp_prepare_cpus //准备cpu 对于每个可能的cpu 1.
评论