; enable-method = "psci" ; }; psci { compatible = "arm,psci" ; method = "smc" ; cpu_suspend = 0 xC4000001 >; cpu_off = 0 x84000002 >; cpu_on = 0 xC4000003 >; }; 从这个我们可以获得什" />
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

psci电源管理接口可以用于什么场景

麦辣鸡腿堡 来源:TrustZone 作者:Hcoco 2023-12-05 16:28 次阅读

psci是arm提供的一套电源管理接口,当前一共包含0.1、0.2和1.0三个版本。它可被用于以下场景:(1)cpu的idle管理

(2)cpu hotplug以及secondary cpu启动

(3)系统shutdown和reset

首先,我们先来看下设备树cpu节点对psci的支持:

arch/arm64/boot/dts/xxx.dtsi:
  cpu0: cpu@0 {
                        device_type = "cpu";
                        compatible = "arm,armv8";
                        reg = < 0x0 >;
                        enable-method = "psci";

                };

  psci {
                compatible = "arm,psci";
                method = "smc";
               cpu_suspend = < 0xC4000001 >;
                cpu_off = < 0x84000002 >;
                cpu_on = < 0xC4000003 >;
        };

从这个我们可以获得什么信息呢?

可以看到现在enable-method 属性已经是psci,说明使用的多核启动方式是psci,

下面还有psci节点,用于psci驱动使用,method用于说明调用psci功能使用什么指令,可选有两个smc和hvc。

其实smc, hvc和svc都是从低运行级别向高运行级别请求服务的指令,我们最常用的就是svc指令了,这是实现系统调用的指令。

高级别的运行级别会根据传递过来的参数来决定提供什么样的服务。

smc是用于陷入el3(安全),hvc用于陷入el2(虚拟化, 虚拟化场景中一般通过hvc指令陷入el2来请求唤醒vcpu), svc用于陷入el1(系统)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源管理
    +关注

    关注

    115

    文章

    6154

    浏览量

    144232
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10825

    浏览量

    211146
  • SMP
    SMP
    +关注

    关注

    0

    文章

    71

    浏览量

    19631
  • 设备树
    +关注

    关注

    0

    文章

    38

    浏览量

    3110
收藏 人收藏

    评论

    相关推荐

    由于接口不够,SDIO接口可以用于CPU和FPGA之间进行通信吗

    由于接口不够,SDIO接口可以用于CPU和FPGA之间进行通信吗
    发表于 04-23 10:56

    VCA810可以用于电源放大吗?

    VCA810可以用于电源放大吗》???
    发表于 09-20 15:57

    非中断和非DMA方式可以用于哪些特殊场景

    非中断和非DMA方式可以用于哪些特殊场景
    发表于 11-18 07:16

    ARM电源管理中的PSCI是什么意思呢

    今天来看一个电源功耗相关的东西,PSCI(Power State Coordination Interface),翻译一下就是“电源状态协作接口”。从名字就能直观看出来,
    发表于 04-02 09:45

    sdio接口除了可以用于SD卡的读写,还有什么应用吗?

    sdio接口除了可以用于SD卡的读写,还有什么应用吗?
    发表于 10-24 06:42

    ACPI(高级配置与电源接口)的PC电源管理

    ACPI(Advanced Configuration and Power Interface),即高级配置与电源接口。这种新的能源管理可以通过诸如软件控制"开关"系统,亦可以用Mod
    发表于 06-06 09:30 2774次阅读

    达林顿晶体管除常用于步进电机驱动器外,还可以用于什么?

    达林顿晶体管在以下四个不同领域的应用:电源,高电流开关,音频放大,和模拟电路。 1. 电源 达林顿晶体管可以用于各种不同类型的电源设计中,包括线性和开关型
    的头像 发表于 10-23 09:22 807次阅读

    psci电源管理拓扑结构介绍

    组成了层次化的拓扑结构。 如以下为一块包含2个cluster,每个cluster包含四个core的soc: 由于其中每个core以及每个cluster的电源可以独立地执行开关操作,因此若core0
    的头像 发表于 12-05 16:35 449次阅读
    <b class='flag-5'>psci</b><b class='flag-5'>电源</b><b class='flag-5'>管理</b>拓扑结构介绍

    psci接口规范介绍

    由于psci是由linux内核调用bl31中的安全服务,实现cpu电源管理功能的。因此其软件架构包含三个部分: (1)内核与bl31之间的调用接口规范 (2)内核中的架构 (3)bl3
    的头像 发表于 12-05 16:53 856次阅读

    内核中的psci驱动是什么

    "; ( 2 ) } (1)用于指定psci版本 (2)根据该psci由bl31处理还是hypervisor处理,可以指定其对应的陷入方式。若由bl31处理为smc,若由hypervi
    的头像 发表于 12-05 16:58 661次阅读
    内核中的<b class='flag-5'>psci</b>驱动是什么

    内核中的psci架构cpu_ops接口

    cpu_ops接口 驱动初始化完成后,cpu的cpu_ops就可以调用这些回调实现psci功能的调用。如下所示,当devicetree中cpu的enable-method设置为psci
    的头像 发表于 12-05 17:25 633次阅读

    bl31中的psci架构介绍

    std_svc_setup会在bl31启动流程中被调用,以用于初始化该服务相关的配置。而std_svc_smc_handler为其smc异常处理函数,当内核通过psci接口调用相关服务时,最终将由该函数执行实际的处理流程。 上图
    的头像 发表于 12-05 17:33 983次阅读
    bl31中的<b class='flag-5'>psci</b>架构介绍

    SMP多核启动PSCI代码示例

    1、std_svc_setup (主要关注设置psci操作集)--有服务 std_svc_setup //services/std_svc/std_svc_setup.c - >psci
    的头像 发表于 12-05 17:45 635次阅读

    PSCI处理函数代码分析

    处理函数根据funid来决定服务,可以看到PSCI_CPU_ON_AARCH64为0xc4000003,这正是设备树中填写的cpu_on属性的id,会委托psci_cpu_on来执行核上电任务。下面
    的头像 发表于 12-05 18:08 873次阅读

    人员定位系统都可以用于哪些行业?

    人员定位系统如今很多行业都在使用,可以说它既能保证人员安全又能便于管理,所以成了不少企业单位的必要设备,那么这种系统可以用于哪些行业呢?对于不同的场景,它的功能都发挥了怎样的作用?一起
    的头像 发表于 07-15 11:32 312次阅读
    人员定位系统都<b class='flag-5'>可以用于</b>哪些行业?